source-class-Grpc.ServerStreamingCall.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="robots" content="noindex">
  6. <title>File ServerStreamingCall.php</title>
  7. <link rel="stylesheet" href="resources/style.css?e99947befd7bf673c6b43ff75e9e0f170c88a60e">
  8. </head>
  9. <body>
  10. <div id="left">
  11. <div id="menu">
  12. <a href="index.html" title="Overview"><span>Overview</span></a>
  13. <div id="groups">
  14. <h3>Namespaces</h3>
  15. <ul>
  16. <li>
  17. <a href="namespace-Grpc.html">
  18. Grpc </a>
  19. </li>
  20. </ul>
  21. </div>
  22. <hr>
  23. <div id="elements">
  24. <h3>Classes</h3>
  25. <ul>
  26. <li><a href="class-Grpc.AbstractCall.html">Grpc\AbstractCall</a></li>
  27. <li><a href="class-Grpc.BaseStub.html">Grpc\BaseStub</a></li>
  28. <li><a href="class-Grpc.BidiStreamingCall.html">Grpc\BidiStreamingCall</a></li>
  29. <li><a href="class-Grpc.ClientStreamingCall.html">Grpc\ClientStreamingCall</a></li>
  30. <li><a href="class-Grpc.ServerStreamingCall.html">Grpc\ServerStreamingCall</a></li>
  31. <li><a href="class-Grpc.UnaryCall.html">Grpc\UnaryCall</a></li>
  32. </ul>
  33. </div>
  34. </div>
  35. </div>
  36. <div id="splitter"></div>
  37. <div id="right">
  38. <div id="rightInner">
  39. <form id="search">
  40. <input type="hidden" name="cx" value="">
  41. <input type="hidden" name="ie" value="UTF-8">
  42. <input type="text" name="q" class="text" placeholder="Search">
  43. </form>
  44. <div id="navigation">
  45. <ul>
  46. <li>
  47. <a href="index.html" title="Overview"><span>Overview</span></a>
  48. </li>
  49. <li>
  50. <span>Namespace</span> </li>
  51. <li>
  52. <span>Class</span> </li>
  53. </ul>
  54. <ul>
  55. </ul>
  56. <ul>
  57. </ul>
  58. </div>
  59. <pre><code><span id="1" class="l"><a href="#1"> 1: </a><span class="xlang">&lt;?php</span>
  60. </span><span id="2" class="l"><a href="#2"> 2: </a><span class="php-comment">/*
  61. </span></span><span id="3" class="l"><a href="#3"> 3: </a><span class="php-comment"> *
  62. </span></span><span id="4" class="l"><a href="#4"> 4: </a><span class="php-comment"> * Copyright 2015, Google Inc.
  63. </span></span><span id="5" class="l"><a href="#5"> 5: </a><span class="php-comment"> * All rights reserved.
  64. </span></span><span id="6" class="l"><a href="#6"> 6: </a><span class="php-comment"> *
  65. </span></span><span id="7" class="l"><a href="#7"> 7: </a><span class="php-comment"> * Redistribution and use in source and binary forms, with or without
  66. </span></span><span id="8" class="l"><a href="#8"> 8: </a><span class="php-comment"> * modification, are permitted provided that the following conditions are
  67. </span></span><span id="9" class="l"><a href="#9"> 9: </a><span class="php-comment"> * met:
  68. </span></span><span id="10" class="l"><a href="#10"> 10: </a><span class="php-comment"> *
  69. </span></span><span id="11" class="l"><a href="#11"> 11: </a><span class="php-comment"> * * Redistributions of source code must retain the above copyright
  70. </span></span><span id="12" class="l"><a href="#12"> 12: </a><span class="php-comment"> * notice, this list of conditions and the following disclaimer.
  71. </span></span><span id="13" class="l"><a href="#13"> 13: </a><span class="php-comment"> * * Redistributions in binary form must reproduce the above
  72. </span></span><span id="14" class="l"><a href="#14"> 14: </a><span class="php-comment"> * copyright notice, this list of conditions and the following disclaimer
  73. </span></span><span id="15" class="l"><a href="#15"> 15: </a><span class="php-comment"> * in the documentation and/or other materials provided with the
  74. </span></span><span id="16" class="l"><a href="#16"> 16: </a><span class="php-comment"> * distribution.
  75. </span></span><span id="17" class="l"><a href="#17"> 17: </a><span class="php-comment"> * * Neither the name of Google Inc. nor the names of its
  76. </span></span><span id="18" class="l"><a href="#18"> 18: </a><span class="php-comment"> * contributors may be used to endorse or promote products derived from
  77. </span></span><span id="19" class="l"><a href="#19"> 19: </a><span class="php-comment"> * this software without specific prior written permission.
  78. </span></span><span id="20" class="l"><a href="#20"> 20: </a><span class="php-comment"> *
  79. </span></span><span id="21" class="l"><a href="#21"> 21: </a><span class="php-comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  80. </span></span><span id="22" class="l"><a href="#22"> 22: </a><span class="php-comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  81. </span></span><span id="23" class="l"><a href="#23"> 23: </a><span class="php-comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  82. </span></span><span id="24" class="l"><a href="#24"> 24: </a><span class="php-comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  83. </span></span><span id="25" class="l"><a href="#25"> 25: </a><span class="php-comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  84. </span></span><span id="26" class="l"><a href="#26"> 26: </a><span class="php-comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  85. </span></span><span id="27" class="l"><a href="#27"> 27: </a><span class="php-comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  86. </span></span><span id="28" class="l"><a href="#28"> 28: </a><span class="php-comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  87. </span></span><span id="29" class="l"><a href="#29"> 29: </a><span class="php-comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  88. </span></span><span id="30" class="l"><a href="#30"> 30: </a><span class="php-comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  89. </span></span><span id="31" class="l"><a href="#31"> 31: </a><span class="php-comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  90. </span></span><span id="32" class="l"><a href="#32"> 32: </a><span class="php-comment"> *
  91. </span></span><span id="33" class="l"><a href="#33"> 33: </a><span class="php-comment"> */</span>
  92. </span><span id="34" class="l"><a href="#34"> 34: </a>
  93. </span><span id="35" class="l"><a href="#35"> 35: </a><span class="php-keyword1">namespace</span> Grpc;
  94. </span><span id="36" class="l"><a href="#36"> 36: </a>
  95. </span><span id="37" class="l"><a href="#37"> 37: </a><span class="php-comment">/**
  96. </span></span><span id="38" class="l"><a href="#38"> 38: </a><span class="php-comment"> * Represents an active call that sends a single message and then gets a
  97. </span></span><span id="39" class="l"><a href="#39"> 39: </a><span class="php-comment"> * stream of responses.
  98. </span></span><span id="40" class="l"><a href="#40"> 40: </a><span class="php-comment"> */</span>
  99. </span><span id="41" class="l"><a href="#41"> 41: </a><span class="php-keyword1">class</span> ServerStreamingCall <span class="php-keyword1">extends</span> AbstractCall
  100. </span><span id="42" class="l"><a href="#42"> 42: </a>{
  101. </span><span id="43" class="l"><a href="#43"> 43: </a> <span class="php-comment">/**
  102. </span></span><span id="44" class="l"><a href="#44"> 44: </a><span class="php-comment"> * Start the call.
  103. </span></span><span id="45" class="l"><a href="#45"> 45: </a><span class="php-comment"> *
  104. </span></span><span id="46" class="l"><a href="#46"> 46: </a><span class="php-comment"> * @param mixed $data The data to send
  105. </span></span><span id="47" class="l"><a href="#47"> 47: </a><span class="php-comment"> * @param array $metadata Metadata to send with the call, if applicable
  106. </span></span><span id="48" class="l"><a href="#48"> 48: </a><span class="php-comment"> * (optional)
  107. </span></span><span id="49" class="l"><a href="#49"> 49: </a><span class="php-comment"> * @param array $options An array of options, possible keys:
  108. </span></span><span id="50" class="l"><a href="#50"> 50: </a><span class="php-comment"> * 'flags' =&gt; a number (optional)
  109. </span></span><span id="51" class="l"><a href="#51"> 51: </a><span class="php-comment"> */</span>
  110. </span><span id="52" class="l"><a href="#52"> 52: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> start(<span class="php-var">$data</span>, <span class="php-keyword1">array</span> <span class="php-var">$metadata</span> = [], <span class="php-keyword1">array</span> <span class="php-var">$options</span> = [])
  111. </span><span id="53" class="l"><a href="#53"> 53: </a> {
  112. </span><span id="54" class="l"><a href="#54"> 54: </a> <span class="php-var">$message_array</span> = [<span class="php-quote">'message'</span> =&gt; <span class="php-var">$this</span>-&gt;_serializeMessage(<span class="php-var">$data</span>)];
  113. </span><span id="55" class="l"><a href="#55"> 55: </a> <span class="php-keyword1">if</span> (<span class="php-keyword2">array_key_exists</span>(<span class="php-quote">'flags'</span>, <span class="php-var">$options</span>)) {
  114. </span><span id="56" class="l"><a href="#56"> 56: </a> <span class="php-var">$message_array</span>[<span class="php-quote">'flags'</span>] = <span class="php-var">$options</span>[<span class="php-quote">'flags'</span>];
  115. </span><span id="57" class="l"><a href="#57"> 57: </a> }
  116. </span><span id="58" class="l"><a href="#58"> 58: </a> <span class="php-var">$event</span> = <span class="php-var">$this</span>-&gt;call-&gt;startBatch([
  117. </span><span id="59" class="l"><a href="#59"> 59: </a> OP_SEND_INITIAL_METADATA =&gt; <span class="php-var">$metadata</span>,
  118. </span><span id="60" class="l"><a href="#60"> 60: </a> OP_RECV_INITIAL_METADATA =&gt; <span class="php-keyword1">true</span>,
  119. </span><span id="61" class="l"><a href="#61"> 61: </a> OP_SEND_MESSAGE =&gt; <span class="php-var">$message_array</span>,
  120. </span><span id="62" class="l"><a href="#62"> 62: </a> OP_SEND_CLOSE_FROM_CLIENT =&gt; <span class="php-keyword1">true</span>,
  121. </span><span id="63" class="l"><a href="#63"> 63: </a> ]);
  122. </span><span id="64" class="l"><a href="#64"> 64: </a> <span class="php-var">$this</span>-&gt;metadata = <span class="php-var">$event</span>-&gt;metadata;
  123. </span><span id="65" class="l"><a href="#65"> 65: </a> }
  124. </span><span id="66" class="l"><a href="#66"> 66: </a>
  125. </span><span id="67" class="l"><a href="#67"> 67: </a> <span class="php-comment">/**
  126. </span></span><span id="68" class="l"><a href="#68"> 68: </a><span class="php-comment"> * @return mixed An iterator of response values
  127. </span></span><span id="69" class="l"><a href="#69"> 69: </a><span class="php-comment"> */</span>
  128. </span><span id="70" class="l"><a href="#70"> 70: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> responses()
  129. </span><span id="71" class="l"><a href="#71"> 71: </a> {
  130. </span><span id="72" class="l"><a href="#72"> 72: </a> <span class="php-var">$response</span> = <span class="php-var">$this</span>-&gt;call-&gt;startBatch([
  131. </span><span id="73" class="l"><a href="#73"> 73: </a> OP_RECV_MESSAGE =&gt; <span class="php-keyword1">true</span>,
  132. </span><span id="74" class="l"><a href="#74"> 74: </a> ])-&gt;message;
  133. </span><span id="75" class="l"><a href="#75"> 75: </a> <span class="php-keyword1">while</span> (<span class="php-var">$response</span> !== <span class="php-keyword1">null</span>) {
  134. </span><span id="76" class="l"><a href="#76"> 76: </a> yield <span class="php-var">$this</span>-&gt;_deserializeResponse(<span class="php-var">$response</span>);
  135. </span><span id="77" class="l"><a href="#77"> 77: </a> <span class="php-var">$response</span> = <span class="php-var">$this</span>-&gt;call-&gt;startBatch([
  136. </span><span id="78" class="l"><a href="#78"> 78: </a> OP_RECV_MESSAGE =&gt; <span class="php-keyword1">true</span>,
  137. </span><span id="79" class="l"><a href="#79"> 79: </a> ])-&gt;message;
  138. </span><span id="80" class="l"><a href="#80"> 80: </a> }
  139. </span><span id="81" class="l"><a href="#81"> 81: </a> }
  140. </span><span id="82" class="l"><a href="#82"> 82: </a>
  141. </span><span id="83" class="l"><a href="#83"> 83: </a> <span class="php-comment">/**
  142. </span></span><span id="84" class="l"><a href="#84"> 84: </a><span class="php-comment"> * Wait for the server to send the status, and return it.
  143. </span></span><span id="85" class="l"><a href="#85"> 85: </a><span class="php-comment"> *
  144. </span></span><span id="86" class="l"><a href="#86"> 86: </a><span class="php-comment"> * @return \stdClass The status object, with integer $code, string
  145. </span></span><span id="87" class="l"><a href="#87"> 87: </a><span class="php-comment"> * $details, and array $metadata members
  146. </span></span><span id="88" class="l"><a href="#88"> 88: </a><span class="php-comment"> */</span>
  147. </span><span id="89" class="l"><a href="#89"> 89: </a> <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getStatus()
  148. </span><span id="90" class="l"><a href="#90"> 90: </a> {
  149. </span><span id="91" class="l"><a href="#91"> 91: </a> <span class="php-var">$status_event</span> = <span class="php-var">$this</span>-&gt;call-&gt;startBatch([
  150. </span><span id="92" class="l"><a href="#92"> 92: </a> OP_RECV_STATUS_ON_CLIENT =&gt; <span class="php-keyword1">true</span>,
  151. </span><span id="93" class="l"><a href="#93"> 93: </a> ]);
  152. </span><span id="94" class="l"><a href="#94"> 94: </a>
  153. </span><span id="95" class="l"><a href="#95"> 95: </a> <span class="php-var">$this</span>-&gt;trailing_metadata = <span class="php-var">$status_event</span>-&gt;status-&gt;metadata;
  154. </span><span id="96" class="l"><a href="#96"> 96: </a>
  155. </span><span id="97" class="l"><a href="#97"> 97: </a> <span class="php-keyword1">return</span> <span class="php-var">$status_event</span>-&gt;status;
  156. </span><span id="98" class="l"><a href="#98"> 98: </a> }
  157. </span><span id="99" class="l"><a href="#99"> 99: </a>}
  158. </span><span id="100" class="l"><a href="#100">100: </a></span></code></pre>
  159. <div id="footer">
  160. API documentation generated by <a href="http://apigen.org">ApiGen</a>
  161. </div>
  162. </div>
  163. </div>
  164. <script src="resources/combined.js?cd021bc814832c24a7cec5319ea03335bfba1caf"></script>
  165. <script src="elementlist.js?cf93b70b1d193f97eb89fd1473f4f7ebb98e18eb"></script>
  166. </body>
  167. </html>