classgrpc_1_1_client_bidi_reactor.html 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.17"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>GRPC C++: grpc::ClientBidiReactor&lt; Request, Response &gt; Class Template Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  19. <div id="titlearea">
  20. <table cellspacing="0" cellpadding="0">
  21. <tbody>
  22. <tr style="height: 56px;">
  23. <td id="projectalign" style="padding-left: 0.5em;">
  24. <div id="projectname">GRPC C++
  25. &#160;<span id="projectnumber">1.36.1</span>
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.8.17 -->
  34. <script type="text/javascript">
  35. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  36. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  37. /* @license-end */
  38. </script>
  39. <script type="text/javascript" src="menudata.js"></script>
  40. <script type="text/javascript" src="menu.js"></script>
  41. <script type="text/javascript">
  42. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  43. $(function() {
  44. initMenu('',true,false,'search.php','Search');
  45. $(document).ready(function() { init_search(); });
  46. });
  47. /* @license-end */</script>
  48. <div id="main-nav"></div>
  49. <!-- window showing the filter options -->
  50. <div id="MSearchSelectWindow"
  51. onmouseover="return searchBox.OnSearchSelectShow()"
  52. onmouseout="return searchBox.OnSearchSelectHide()"
  53. onkeydown="return searchBox.OnSearchSelectKey(event)">
  54. </div>
  55. <!-- iframe showing the search results (closed by default) -->
  56. <div id="MSearchResultsWindow">
  57. <iframe src="javascript:void(0)" frameborder="0"
  58. name="MSearchResults" id="MSearchResults">
  59. </iframe>
  60. </div>
  61. <div id="nav-path" class="navpath">
  62. <ul>
  63. <li class="navelem"><a class="el" href="namespacegrpc.html">grpc</a></li><li class="navelem"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html">ClientBidiReactor</a></li> </ul>
  64. </div>
  65. </div><!-- top -->
  66. <div class="header">
  67. <div class="summary">
  68. <a href="#pub-methods">Public Member Functions</a> &#124;
  69. <a href="#friends">Friends</a> </div>
  70. <div class="headertitle">
  71. <div class="title">grpc::ClientBidiReactor&lt; Request, Response &gt; Class Template Reference</div> </div>
  72. </div><!--header-->
  73. <div class="contents">
  74. <p><em><a class="el" href="classgrpc_1_1_client_bidi_reactor.html" title="ClientBidiReactor is the interface for a bidirectional streaming RPC.">ClientBidiReactor</a></em> is the interface for a bidirectional streaming RPC.
  75. <a href="classgrpc_1_1_client_bidi_reactor.html#details">More...</a></p>
  76. <p><code>#include &lt;<a class="el" href="impl_2codegen_2client__callback_8h_source.html">client_callback.h</a>&gt;</code></p>
  77. <table class="memberdecls">
  78. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  79. Public Member Functions</h2></td></tr>
  80. <tr class="memitem:afe6c450aa06e7b2f5484fc771126bed3"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#afe6c450aa06e7b2f5484fc771126bed3">~ClientBidiReactor</a> ()</td></tr>
  81. <tr class="separator:afe6c450aa06e7b2f5484fc771126bed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  82. <tr class="memitem:a56f0665e201a621d5bfa5b1bf3db4654"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a56f0665e201a621d5bfa5b1bf3db4654">StartCall</a> ()</td></tr>
  83. <tr class="memdesc:a56f0665e201a621d5bfa5b1bf3db4654"><td class="mdescLeft">&#160;</td><td class="mdescRight">Activate the RPC and initiate any reads or writes that have been Start'ed before this call. <a href="classgrpc_1_1_client_bidi_reactor.html#a56f0665e201a621d5bfa5b1bf3db4654">More...</a><br /></td></tr>
  84. <tr class="separator:a56f0665e201a621d5bfa5b1bf3db4654"><td class="memSeparator" colspan="2">&#160;</td></tr>
  85. <tr class="memitem:a511f4e83af63f9569f361a79e9586dce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a511f4e83af63f9569f361a79e9586dce">StartRead</a> (Response *resp)</td></tr>
  86. <tr class="memdesc:a511f4e83af63f9569f361a79e9586dce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiate a read operation (or post it for later initiation if StartCall has not yet been invoked). <a href="classgrpc_1_1_client_bidi_reactor.html#a511f4e83af63f9569f361a79e9586dce">More...</a><br /></td></tr>
  87. <tr class="separator:a511f4e83af63f9569f361a79e9586dce"><td class="memSeparator" colspan="2">&#160;</td></tr>
  88. <tr class="memitem:a3c14129661af38610185a006bbb7eca9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a3c14129661af38610185a006bbb7eca9">StartWrite</a> (const Request *req)</td></tr>
  89. <tr class="memdesc:a3c14129661af38610185a006bbb7eca9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiate a write operation (or post it for later initiation if StartCall has not yet been invoked). <a href="classgrpc_1_1_client_bidi_reactor.html#a3c14129661af38610185a006bbb7eca9">More...</a><br /></td></tr>
  90. <tr class="separator:a3c14129661af38610185a006bbb7eca9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  91. <tr class="memitem:a3aaca1812914a82e582446ba4e0a9f92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a3aaca1812914a82e582446ba4e0a9f92">StartWrite</a> (const Request *req, ::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a> options)</td></tr>
  92. <tr class="memdesc:a3aaca1812914a82e582446ba4e0a9f92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiate/post a write operation with specified options. <a href="classgrpc_1_1_client_bidi_reactor.html#a3aaca1812914a82e582446ba4e0a9f92">More...</a><br /></td></tr>
  93. <tr class="separator:a3aaca1812914a82e582446ba4e0a9f92"><td class="memSeparator" colspan="2">&#160;</td></tr>
  94. <tr class="memitem:a8709dc8bd207e577a6cffdce441612cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a8709dc8bd207e577a6cffdce441612cb">StartWriteLast</a> (const Request *req, ::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a> options)</td></tr>
  95. <tr class="memdesc:a8709dc8bd207e577a6cffdce441612cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initiate/post a write operation with specified options and an indication that this is the last write (like StartWrite and StartWritesDone, merged). <a href="classgrpc_1_1_client_bidi_reactor.html#a8709dc8bd207e577a6cffdce441612cb">More...</a><br /></td></tr>
  96. <tr class="separator:a8709dc8bd207e577a6cffdce441612cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:a43f605fb458e7545718e595868eba3c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a43f605fb458e7545718e595868eba3c8">StartWritesDone</a> ()</td></tr>
  98. <tr class="memdesc:a43f605fb458e7545718e595868eba3c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicate that the RPC will have no more write operations. <a href="classgrpc_1_1_client_bidi_reactor.html#a43f605fb458e7545718e595868eba3c8">More...</a><br /></td></tr>
  99. <tr class="separator:a43f605fb458e7545718e595868eba3c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100. <tr class="memitem:a88c169b6b8d9ea5579d152a86b74582c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a88c169b6b8d9ea5579d152a86b74582c">AddHold</a> ()</td></tr>
  101. <tr class="memdesc:a88c169b6b8d9ea5579d152a86b74582c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Holds are needed if (and only if) this stream has operations that take place on it after StartCall but from outside one of the reactions (OnReadDone, etc). <a href="classgrpc_1_1_client_bidi_reactor.html#a88c169b6b8d9ea5579d152a86b74582c">More...</a><br /></td></tr>
  102. <tr class="separator:a88c169b6b8d9ea5579d152a86b74582c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:a890e44bcd297489ae49c77d0d6c8cc31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a890e44bcd297489ae49c77d0d6c8cc31">AddMultipleHolds</a> (int holds)</td></tr>
  104. <tr class="separator:a890e44bcd297489ae49c77d0d6c8cc31"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105. <tr class="memitem:af6c5597375914b59db43aabef3c92ddb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#af6c5597375914b59db43aabef3c92ddb">RemoveHold</a> ()</td></tr>
  106. <tr class="separator:af6c5597375914b59db43aabef3c92ddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:af38b5c2d3a3737a8ba5940624872e569"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#af38b5c2d3a3737a8ba5940624872e569">OnDone</a> (const ::<a class="el" href="classgrpc_1_1_status.html">grpc::Status</a> &amp;) override</td></tr>
  108. <tr class="memdesc:af38b5c2d3a3737a8ba5940624872e569"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the application that all operations associated with this RPC have completed and all Holds have been removed. <a href="classgrpc_1_1_client_bidi_reactor.html#af38b5c2d3a3737a8ba5940624872e569">More...</a><br /></td></tr>
  109. <tr class="separator:af38b5c2d3a3737a8ba5940624872e569"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. <tr class="memitem:ad37f6df922b0bf95c789fa853d8cf265"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#ad37f6df922b0bf95c789fa853d8cf265">OnReadInitialMetadataDone</a> (bool)</td></tr>
  111. <tr class="memdesc:ad37f6df922b0bf95c789fa853d8cf265"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the application that a read of initial metadata from the server is done. <a href="classgrpc_1_1_client_bidi_reactor.html#ad37f6df922b0bf95c789fa853d8cf265">More...</a><br /></td></tr>
  112. <tr class="separator:ad37f6df922b0bf95c789fa853d8cf265"><td class="memSeparator" colspan="2">&#160;</td></tr>
  113. <tr class="memitem:ad77148d32093f38daeb755e820b70c61"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#ad77148d32093f38daeb755e820b70c61">OnReadDone</a> (bool)</td></tr>
  114. <tr class="memdesc:ad77148d32093f38daeb755e820b70c61"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the application that a StartRead operation completed. <a href="classgrpc_1_1_client_bidi_reactor.html#ad77148d32093f38daeb755e820b70c61">More...</a><br /></td></tr>
  115. <tr class="separator:ad77148d32093f38daeb755e820b70c61"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <tr class="memitem:ad7673b2c6cfb2dbb77655ef6fee6ebc7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#ad7673b2c6cfb2dbb77655ef6fee6ebc7">OnWriteDone</a> (bool)</td></tr>
  117. <tr class="memdesc:ad7673b2c6cfb2dbb77655ef6fee6ebc7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the application that a StartWrite or StartWriteLast operation completed. <a href="classgrpc_1_1_client_bidi_reactor.html#ad7673b2c6cfb2dbb77655ef6fee6ebc7">More...</a><br /></td></tr>
  118. <tr class="separator:ad7673b2c6cfb2dbb77655ef6fee6ebc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:af17ed4c88facea059373383897c2f120"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#af17ed4c88facea059373383897c2f120">OnWritesDoneDone</a> (bool)</td></tr>
  120. <tr class="memdesc:af17ed4c88facea059373383897c2f120"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the application that a StartWritesDone operation completed. <a href="classgrpc_1_1_client_bidi_reactor.html#af17ed4c88facea059373383897c2f120">More...</a><br /></td></tr>
  121. <tr class="separator:af17ed4c88facea059373383897c2f120"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. </table><table class="memberdecls">
  123. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
  124. Friends</h2></td></tr>
  125. <tr class="memitem:a9e889e5582a185bc4aee78b7abaf8108"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_bidi_reactor.html#a9e889e5582a185bc4aee78b7abaf8108">ClientCallbackReaderWriter&lt; Request, Response &gt;</a></td></tr>
  126. <tr class="separator:a9e889e5582a185bc4aee78b7abaf8108"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. </table>
  128. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  129. <div class="textblock"><h3>template&lt;class Request, class Response&gt;<br />
  130. class grpc::ClientBidiReactor&lt; Request, Response &gt;</h3>
  131. <p><em><a class="el" href="classgrpc_1_1_client_bidi_reactor.html" title="ClientBidiReactor is the interface for a bidirectional streaming RPC.">ClientBidiReactor</a></em> is the interface for a bidirectional streaming RPC. </p>
  132. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  133. <a id="afe6c450aa06e7b2f5484fc771126bed3"></a>
  134. <h2 class="memtitle"><span class="permalink"><a href="#afe6c450aa06e7b2f5484fc771126bed3">&#9670;&nbsp;</a></span>~ClientBidiReactor()</h2>
  135. <div class="memitem">
  136. <div class="memproto">
  137. <div class="memtemplate">
  138. template&lt;class Request , class Response &gt; </div>
  139. <table class="mlabels">
  140. <tr>
  141. <td class="mlabels-left">
  142. <table class="memname">
  143. <tr>
  144. <td class="memname">virtual <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::~<a class="el" href="classgrpc_1_1_client_bidi_reactor.html">ClientBidiReactor</a> </td>
  145. <td>(</td>
  146. <td class="paramname"></td><td>)</td>
  147. <td></td>
  148. </tr>
  149. </table>
  150. </td>
  151. <td class="mlabels-right">
  152. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  153. </tr>
  154. </table>
  155. </div><div class="memdoc">
  156. </div>
  157. </div>
  158. <h2 class="groupheader">Member Function Documentation</h2>
  159. <a id="a88c169b6b8d9ea5579d152a86b74582c"></a>
  160. <h2 class="memtitle"><span class="permalink"><a href="#a88c169b6b8d9ea5579d152a86b74582c">&#9670;&nbsp;</a></span>AddHold()</h2>
  161. <div class="memitem">
  162. <div class="memproto">
  163. <div class="memtemplate">
  164. template&lt;class Request , class Response &gt; </div>
  165. <table class="mlabels">
  166. <tr>
  167. <td class="mlabels-left">
  168. <table class="memname">
  169. <tr>
  170. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::AddHold </td>
  171. <td>(</td>
  172. <td class="paramname"></td><td>)</td>
  173. <td></td>
  174. </tr>
  175. </table>
  176. </td>
  177. <td class="mlabels-right">
  178. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  179. </tr>
  180. </table>
  181. </div><div class="memdoc">
  182. <p>Holds are needed if (and only if) this stream has operations that take place on it after StartCall but from outside one of the reactions (OnReadDone, etc). </p>
  183. <p>This is <em>not</em> a common use of the streaming API.</p>
  184. <p>Holds must be added before calling StartCall. If a stream still has a hold in place, its resources will not be destroyed even if the status has already come in from the wire and there are currently no active callbacks outstanding. Similarly, the stream will not call OnDone if there are still holds on it.</p>
  185. <p>For example, if a StartRead or StartWrite operation is going to be initiated from elsewhere in the application, the application should call AddHold or AddMultipleHolds before StartCall. If there is going to be, for example, a read-flow and a write-flow taking place outside the reactions, then call AddMultipleHolds(2) before StartCall. When the application knows that it won't issue any more read operations (such as when a read comes back as not ok), it should issue a <a class="el" href="classgrpc_1_1_client_bidi_reactor.html#af6c5597375914b59db43aabef3c92ddb">RemoveHold()</a>. It should also call <a class="el" href="classgrpc_1_1_client_bidi_reactor.html#af6c5597375914b59db43aabef3c92ddb">RemoveHold()</a> again after it does StartWriteLast or StartWritesDone that indicates that there will be no more write ops. The number of RemoveHold calls must match the total number of AddHold calls plus the number of holds added by AddMultipleHolds. The argument to AddMultipleHolds must be positive. </p>
  186. </div>
  187. </div>
  188. <a id="a890e44bcd297489ae49c77d0d6c8cc31"></a>
  189. <h2 class="memtitle"><span class="permalink"><a href="#a890e44bcd297489ae49c77d0d6c8cc31">&#9670;&nbsp;</a></span>AddMultipleHolds()</h2>
  190. <div class="memitem">
  191. <div class="memproto">
  192. <div class="memtemplate">
  193. template&lt;class Request , class Response &gt; </div>
  194. <table class="mlabels">
  195. <tr>
  196. <td class="mlabels-left">
  197. <table class="memname">
  198. <tr>
  199. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::AddMultipleHolds </td>
  200. <td>(</td>
  201. <td class="paramtype">int&#160;</td>
  202. <td class="paramname"><em>holds</em></td><td>)</td>
  203. <td></td>
  204. </tr>
  205. </table>
  206. </td>
  207. <td class="mlabels-right">
  208. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  209. </tr>
  210. </table>
  211. </div><div class="memdoc">
  212. </div>
  213. </div>
  214. <a id="af38b5c2d3a3737a8ba5940624872e569"></a>
  215. <h2 class="memtitle"><span class="permalink"><a href="#af38b5c2d3a3737a8ba5940624872e569">&#9670;&nbsp;</a></span>OnDone()</h2>
  216. <div class="memitem">
  217. <div class="memproto">
  218. <div class="memtemplate">
  219. template&lt;class Request , class Response &gt; </div>
  220. <table class="mlabels">
  221. <tr>
  222. <td class="mlabels-left">
  223. <table class="memname">
  224. <tr>
  225. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::OnDone </td>
  226. <td>(</td>
  227. <td class="paramtype">const ::<a class="el" href="classgrpc_1_1_status.html">grpc::Status</a> &amp;&#160;</td>
  228. <td class="paramname"></td><td>)</td>
  229. <td></td>
  230. </tr>
  231. </table>
  232. </td>
  233. <td class="mlabels-right">
  234. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span> </td>
  235. </tr>
  236. </table>
  237. </div><div class="memdoc">
  238. <p>Notifies the application that all operations associated with this RPC have completed and all Holds have been removed. </p>
  239. <p>OnDone provides the RPC status outcome for both successful and failed RPCs and will be called in all cases. If it is not called, it indicates an application-level problem (like failure to remove a hold).</p>
  240. <dl class="params"><dt>Parameters</dt><dd>
  241. <table class="params">
  242. <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>The status outcome of this RPC </td></tr>
  243. </table>
  244. </dd>
  245. </dl>
  246. </div>
  247. </div>
  248. <a id="ad77148d32093f38daeb755e820b70c61"></a>
  249. <h2 class="memtitle"><span class="permalink"><a href="#ad77148d32093f38daeb755e820b70c61">&#9670;&nbsp;</a></span>OnReadDone()</h2>
  250. <div class="memitem">
  251. <div class="memproto">
  252. <div class="memtemplate">
  253. template&lt;class Request , class Response &gt; </div>
  254. <table class="mlabels">
  255. <tr>
  256. <td class="mlabels-left">
  257. <table class="memname">
  258. <tr>
  259. <td class="memname">virtual void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::OnReadDone </td>
  260. <td>(</td>
  261. <td class="paramtype">bool&#160;</td>
  262. <td class="paramname"></td><td>)</td>
  263. <td></td>
  264. </tr>
  265. </table>
  266. </td>
  267. <td class="mlabels-right">
  268. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  269. </tr>
  270. </table>
  271. </div><div class="memdoc">
  272. <p>Notifies the application that a StartRead operation completed. </p>
  273. <dl class="params"><dt>Parameters</dt><dd>
  274. <table class="params">
  275. <tr><td class="paramdir">[in]</td><td class="paramname">ok</td><td>Was it successful? If false, no new read/write operation will succeed, and any further Start* should not be called. </td></tr>
  276. </table>
  277. </dd>
  278. </dl>
  279. </div>
  280. </div>
  281. <a id="ad37f6df922b0bf95c789fa853d8cf265"></a>
  282. <h2 class="memtitle"><span class="permalink"><a href="#ad37f6df922b0bf95c789fa853d8cf265">&#9670;&nbsp;</a></span>OnReadInitialMetadataDone()</h2>
  283. <div class="memitem">
  284. <div class="memproto">
  285. <div class="memtemplate">
  286. template&lt;class Request , class Response &gt; </div>
  287. <table class="mlabels">
  288. <tr>
  289. <td class="mlabels-left">
  290. <table class="memname">
  291. <tr>
  292. <td class="memname">virtual void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::OnReadInitialMetadataDone </td>
  293. <td>(</td>
  294. <td class="paramtype">bool&#160;</td>
  295. <td class="paramname"></td><td>)</td>
  296. <td></td>
  297. </tr>
  298. </table>
  299. </td>
  300. <td class="mlabels-right">
  301. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  302. </tr>
  303. </table>
  304. </div><div class="memdoc">
  305. <p>Notifies the application that a read of initial metadata from the server is done. </p>
  306. <p>If the application chooses not to implement this method, it can assume that the initial metadata has been read before the first call of OnReadDone or OnDone.</p>
  307. <dl class="params"><dt>Parameters</dt><dd>
  308. <table class="params">
  309. <tr><td class="paramdir">[in]</td><td class="paramname">ok</td><td>Was the initial metadata read successfully? If false, no new read/write operation will succeed, and any further Start* operations should not be called. </td></tr>
  310. </table>
  311. </dd>
  312. </dl>
  313. </div>
  314. </div>
  315. <a id="ad7673b2c6cfb2dbb77655ef6fee6ebc7"></a>
  316. <h2 class="memtitle"><span class="permalink"><a href="#ad7673b2c6cfb2dbb77655ef6fee6ebc7">&#9670;&nbsp;</a></span>OnWriteDone()</h2>
  317. <div class="memitem">
  318. <div class="memproto">
  319. <div class="memtemplate">
  320. template&lt;class Request , class Response &gt; </div>
  321. <table class="mlabels">
  322. <tr>
  323. <td class="mlabels-left">
  324. <table class="memname">
  325. <tr>
  326. <td class="memname">virtual void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::OnWriteDone </td>
  327. <td>(</td>
  328. <td class="paramtype">bool&#160;</td>
  329. <td class="paramname"></td><td>)</td>
  330. <td></td>
  331. </tr>
  332. </table>
  333. </td>
  334. <td class="mlabels-right">
  335. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  336. </tr>
  337. </table>
  338. </div><div class="memdoc">
  339. <p>Notifies the application that a StartWrite or StartWriteLast operation completed. </p>
  340. <dl class="params"><dt>Parameters</dt><dd>
  341. <table class="params">
  342. <tr><td class="paramdir">[in]</td><td class="paramname">ok</td><td>Was it successful? If false, no new read/write operation will succeed, and any further Start* should not be called. </td></tr>
  343. </table>
  344. </dd>
  345. </dl>
  346. </div>
  347. </div>
  348. <a id="af17ed4c88facea059373383897c2f120"></a>
  349. <h2 class="memtitle"><span class="permalink"><a href="#af17ed4c88facea059373383897c2f120">&#9670;&nbsp;</a></span>OnWritesDoneDone()</h2>
  350. <div class="memitem">
  351. <div class="memproto">
  352. <div class="memtemplate">
  353. template&lt;class Request , class Response &gt; </div>
  354. <table class="mlabels">
  355. <tr>
  356. <td class="mlabels-left">
  357. <table class="memname">
  358. <tr>
  359. <td class="memname">virtual void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::OnWritesDoneDone </td>
  360. <td>(</td>
  361. <td class="paramtype">bool&#160;</td>
  362. <td class="paramname"></td><td>)</td>
  363. <td></td>
  364. </tr>
  365. </table>
  366. </td>
  367. <td class="mlabels-right">
  368. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  369. </tr>
  370. </table>
  371. </div><div class="memdoc">
  372. <p>Notifies the application that a StartWritesDone operation completed. </p>
  373. <p>Note that this is only used on explicit StartWritesDone operations and not for those that are implicitly invoked as part of a StartWriteLast.</p>
  374. <dl class="params"><dt>Parameters</dt><dd>
  375. <table class="params">
  376. <tr><td class="paramdir">[in]</td><td class="paramname">ok</td><td>Was it successful? If false, the application will later see the failure reflected as a bad status in OnDone and no further Start* should be called. </td></tr>
  377. </table>
  378. </dd>
  379. </dl>
  380. </div>
  381. </div>
  382. <a id="af6c5597375914b59db43aabef3c92ddb"></a>
  383. <h2 class="memtitle"><span class="permalink"><a href="#af6c5597375914b59db43aabef3c92ddb">&#9670;&nbsp;</a></span>RemoveHold()</h2>
  384. <div class="memitem">
  385. <div class="memproto">
  386. <div class="memtemplate">
  387. template&lt;class Request , class Response &gt; </div>
  388. <table class="mlabels">
  389. <tr>
  390. <td class="mlabels-left">
  391. <table class="memname">
  392. <tr>
  393. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::RemoveHold </td>
  394. <td>(</td>
  395. <td class="paramname"></td><td>)</td>
  396. <td></td>
  397. </tr>
  398. </table>
  399. </td>
  400. <td class="mlabels-right">
  401. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  402. </tr>
  403. </table>
  404. </div><div class="memdoc">
  405. </div>
  406. </div>
  407. <a id="a56f0665e201a621d5bfa5b1bf3db4654"></a>
  408. <h2 class="memtitle"><span class="permalink"><a href="#a56f0665e201a621d5bfa5b1bf3db4654">&#9670;&nbsp;</a></span>StartCall()</h2>
  409. <div class="memitem">
  410. <div class="memproto">
  411. <div class="memtemplate">
  412. template&lt;class Request , class Response &gt; </div>
  413. <table class="mlabels">
  414. <tr>
  415. <td class="mlabels-left">
  416. <table class="memname">
  417. <tr>
  418. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::StartCall </td>
  419. <td>(</td>
  420. <td class="paramname"></td><td>)</td>
  421. <td></td>
  422. </tr>
  423. </table>
  424. </td>
  425. <td class="mlabels-right">
  426. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  427. </tr>
  428. </table>
  429. </div><div class="memdoc">
  430. <p>Activate the RPC and initiate any reads or writes that have been Start'ed before this call. </p>
  431. <p>All streaming RPCs issued by the client MUST have StartCall invoked on them (even if they are canceled) as this call is the activation of their lifecycle. </p>
  432. </div>
  433. </div>
  434. <a id="a511f4e83af63f9569f361a79e9586dce"></a>
  435. <h2 class="memtitle"><span class="permalink"><a href="#a511f4e83af63f9569f361a79e9586dce">&#9670;&nbsp;</a></span>StartRead()</h2>
  436. <div class="memitem">
  437. <div class="memproto">
  438. <div class="memtemplate">
  439. template&lt;class Request , class Response &gt; </div>
  440. <table class="mlabels">
  441. <tr>
  442. <td class="mlabels-left">
  443. <table class="memname">
  444. <tr>
  445. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::StartRead </td>
  446. <td>(</td>
  447. <td class="paramtype">Response *&#160;</td>
  448. <td class="paramname"><em>resp</em></td><td>)</td>
  449. <td></td>
  450. </tr>
  451. </table>
  452. </td>
  453. <td class="mlabels-right">
  454. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  455. </tr>
  456. </table>
  457. </div><div class="memdoc">
  458. <p>Initiate a read operation (or post it for later initiation if StartCall has not yet been invoked). </p>
  459. <dl class="params"><dt>Parameters</dt><dd>
  460. <table class="params">
  461. <tr><td class="paramdir">[out]</td><td class="paramname">resp</td><td>Where to eventually store the read message. Valid when the library calls OnReadDone </td></tr>
  462. </table>
  463. </dd>
  464. </dl>
  465. </div>
  466. </div>
  467. <a id="a3c14129661af38610185a006bbb7eca9"></a>
  468. <h2 class="memtitle"><span class="permalink"><a href="#a3c14129661af38610185a006bbb7eca9">&#9670;&nbsp;</a></span>StartWrite() <span class="overload">[1/2]</span></h2>
  469. <div class="memitem">
  470. <div class="memproto">
  471. <div class="memtemplate">
  472. template&lt;class Request , class Response &gt; </div>
  473. <table class="mlabels">
  474. <tr>
  475. <td class="mlabels-left">
  476. <table class="memname">
  477. <tr>
  478. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::StartWrite </td>
  479. <td>(</td>
  480. <td class="paramtype">const Request *&#160;</td>
  481. <td class="paramname"><em>req</em></td><td>)</td>
  482. <td></td>
  483. </tr>
  484. </table>
  485. </td>
  486. <td class="mlabels-right">
  487. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  488. </tr>
  489. </table>
  490. </div><div class="memdoc">
  491. <p>Initiate a write operation (or post it for later initiation if StartCall has not yet been invoked). </p>
  492. <dl class="params"><dt>Parameters</dt><dd>
  493. <table class="params">
  494. <tr><td class="paramdir">[in]</td><td class="paramname">req</td><td>The message to be written. The library does not take ownership but the caller must ensure that the message is not deleted or modified until OnWriteDone is called. </td></tr>
  495. </table>
  496. </dd>
  497. </dl>
  498. </div>
  499. </div>
  500. <a id="a3aaca1812914a82e582446ba4e0a9f92"></a>
  501. <h2 class="memtitle"><span class="permalink"><a href="#a3aaca1812914a82e582446ba4e0a9f92">&#9670;&nbsp;</a></span>StartWrite() <span class="overload">[2/2]</span></h2>
  502. <div class="memitem">
  503. <div class="memproto">
  504. <div class="memtemplate">
  505. template&lt;class Request , class Response &gt; </div>
  506. <table class="mlabels">
  507. <tr>
  508. <td class="mlabels-left">
  509. <table class="memname">
  510. <tr>
  511. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::StartWrite </td>
  512. <td>(</td>
  513. <td class="paramtype">const Request *&#160;</td>
  514. <td class="paramname"><em>req</em>, </td>
  515. </tr>
  516. <tr>
  517. <td class="paramkey"></td>
  518. <td></td>
  519. <td class="paramtype">::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a>&#160;</td>
  520. <td class="paramname"><em>options</em>&#160;</td>
  521. </tr>
  522. <tr>
  523. <td></td>
  524. <td>)</td>
  525. <td></td><td></td>
  526. </tr>
  527. </table>
  528. </td>
  529. <td class="mlabels-right">
  530. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  531. </tr>
  532. </table>
  533. </div><div class="memdoc">
  534. <p>Initiate/post a write operation with specified options. </p>
  535. <dl class="params"><dt>Parameters</dt><dd>
  536. <table class="params">
  537. <tr><td class="paramdir">[in]</td><td class="paramname">req</td><td>The message to be written. The library does not take ownership but the caller must ensure that the message is not deleted or modified until OnWriteDone is called. </td></tr>
  538. <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>The <a class="el" href="classgrpc_1_1_write_options.html" title="Per-message write options.">WriteOptions</a> to use for writing this message </td></tr>
  539. </table>
  540. </dd>
  541. </dl>
  542. </div>
  543. </div>
  544. <a id="a8709dc8bd207e577a6cffdce441612cb"></a>
  545. <h2 class="memtitle"><span class="permalink"><a href="#a8709dc8bd207e577a6cffdce441612cb">&#9670;&nbsp;</a></span>StartWriteLast()</h2>
  546. <div class="memitem">
  547. <div class="memproto">
  548. <div class="memtemplate">
  549. template&lt;class Request , class Response &gt; </div>
  550. <table class="mlabels">
  551. <tr>
  552. <td class="mlabels-left">
  553. <table class="memname">
  554. <tr>
  555. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::StartWriteLast </td>
  556. <td>(</td>
  557. <td class="paramtype">const Request *&#160;</td>
  558. <td class="paramname"><em>req</em>, </td>
  559. </tr>
  560. <tr>
  561. <td class="paramkey"></td>
  562. <td></td>
  563. <td class="paramtype">::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a>&#160;</td>
  564. <td class="paramname"><em>options</em>&#160;</td>
  565. </tr>
  566. <tr>
  567. <td></td>
  568. <td>)</td>
  569. <td></td><td></td>
  570. </tr>
  571. </table>
  572. </td>
  573. <td class="mlabels-right">
  574. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  575. </tr>
  576. </table>
  577. </div><div class="memdoc">
  578. <p>Initiate/post a write operation with specified options and an indication that this is the last write (like StartWrite and StartWritesDone, merged). </p>
  579. <p>Note that calling this means that no more calls to StartWrite, StartWriteLast, or StartWritesDone are allowed.</p>
  580. <dl class="params"><dt>Parameters</dt><dd>
  581. <table class="params">
  582. <tr><td class="paramdir">[in]</td><td class="paramname">req</td><td>The message to be written. The library does not take ownership but the caller must ensure that the message is not deleted or modified until OnWriteDone is called. </td></tr>
  583. <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>The <a class="el" href="classgrpc_1_1_write_options.html" title="Per-message write options.">WriteOptions</a> to use for writing this message </td></tr>
  584. </table>
  585. </dd>
  586. </dl>
  587. </div>
  588. </div>
  589. <a id="a43f605fb458e7545718e595868eba3c8"></a>
  590. <h2 class="memtitle"><span class="permalink"><a href="#a43f605fb458e7545718e595868eba3c8">&#9670;&nbsp;</a></span>StartWritesDone()</h2>
  591. <div class="memitem">
  592. <div class="memproto">
  593. <div class="memtemplate">
  594. template&lt;class Request , class Response &gt; </div>
  595. <table class="mlabels">
  596. <tr>
  597. <td class="mlabels-left">
  598. <table class="memname">
  599. <tr>
  600. <td class="memname">void <a class="el" href="classgrpc_1_1_client_bidi_reactor.html">grpc::ClientBidiReactor</a>&lt; Request, Response &gt;::StartWritesDone </td>
  601. <td>(</td>
  602. <td class="paramname"></td><td>)</td>
  603. <td></td>
  604. </tr>
  605. </table>
  606. </td>
  607. <td class="mlabels-right">
  608. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  609. </tr>
  610. </table>
  611. </div><div class="memdoc">
  612. <p>Indicate that the RPC will have no more write operations. </p>
  613. <p>This can only be issued once for a given RPC. This is not required or allowed if StartWriteLast is used since that already has the same implication. Note that calling this means that no more calls to StartWrite, StartWriteLast, or StartWritesDone are allowed. </p>
  614. </div>
  615. </div>
  616. <h2 class="groupheader">Friends And Related Function Documentation</h2>
  617. <a id="a9e889e5582a185bc4aee78b7abaf8108"></a>
  618. <h2 class="memtitle"><span class="permalink"><a href="#a9e889e5582a185bc4aee78b7abaf8108">&#9670;&nbsp;</a></span>ClientCallbackReaderWriter&lt; Request, Response &gt;</h2>
  619. <div class="memitem">
  620. <div class="memproto">
  621. <div class="memtemplate">
  622. template&lt;class Request , class Response &gt; </div>
  623. <table class="mlabels">
  624. <tr>
  625. <td class="mlabels-left">
  626. <table class="memname">
  627. <tr>
  628. <td class="memname">friend class <a class="el" href="classgrpc_1_1_client_callback_reader_writer.html">ClientCallbackReaderWriter</a>&lt; Request, Response &gt;</td>
  629. </tr>
  630. </table>
  631. </td>
  632. <td class="mlabels-right">
  633. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  634. </tr>
  635. </table>
  636. </div><div class="memdoc">
  637. </div>
  638. </div>
  639. <hr/>The documentation for this class was generated from the following file:<ul>
  640. <li>include/grpcpp/impl/codegen/<a class="el" href="impl_2codegen_2client__callback_8h_source.html">client_callback.h</a></li>
  641. </ul>
  642. </div><!-- contents -->
  643. <!-- start footer part -->
  644. <hr class="footer"/><address class="footer"><small>
  645. Generated on Wed Mar 3 2021 19:17:24 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
  646. <img class="footer" src="doxygen.png" alt="doxygen"/>
  647. </a> 1.8.17
  648. </small></address>
  649. </body>
  650. </html>