classgrpc_1_1_completion_queue.html 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956
  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::CompletionQueue Class 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_completion_queue.html">CompletionQueue</a></li> </ul>
  64. </div>
  65. </div><!-- top -->
  66. <div class="header">
  67. <div class="summary">
  68. <a href="#nested-classes">Data Structures</a> &#124;
  69. <a href="#pub-types">Public Types</a> &#124;
  70. <a href="#pub-methods">Public Member Functions</a> &#124;
  71. <a href="#pro-methods">Protected Member Functions</a> &#124;
  72. <a href="#friends">Friends</a> </div>
  73. <div class="headertitle">
  74. <div class="title">grpc::CompletionQueue Class Reference</div> </div>
  75. </div><!--header-->
  76. <div class="contents">
  77. <p>A thin wrapper around <a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> (see src/core/lib/surface/completion_queue.h).
  78. <a href="classgrpc_1_1_completion_queue.html#details">More...</a></p>
  79. <p><code>#include &lt;<a class="el" href="grpcpp_2impl_2codegen_2completion__queue_8h_source.html">completion_queue.h</a>&gt;</code></p>
  80. <table class="memberdecls">
  81. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  82. Public Types</h2></td></tr>
  83. <tr class="memitem:a6227657fb2f29291f80cd092f9baf572"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">NextStatus</a> { <a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572a5d05c1c970154dad10e5f648890c215b">SHUTDOWN</a>,
  84. <a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572a5d8344849fb99341b7edaa9da7b42c08">GOT_EVENT</a>,
  85. <a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572ae88eecb45f91413b425511ee973e2e04">TIMEOUT</a>
  86. }</td></tr>
  87. <tr class="memdesc:a6227657fb2f29291f80cd092f9baf572"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tri-state return for AsyncNext: SHUTDOWN, GOT_EVENT, TIMEOUT. <a href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">More...</a><br /></td></tr>
  88. <tr class="separator:a6227657fb2f29291f80cd092f9baf572"><td class="memSeparator" colspan="2">&#160;</td></tr>
  89. </table><table class="memberdecls">
  90. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  91. Public Member Functions</h2></td></tr>
  92. <tr class="memitem:aea987a15a475923e949934e481fe3566"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#aea987a15a475923e949934e481fe3566">CompletionQueue</a> ()</td></tr>
  93. <tr class="memdesc:aea987a15a475923e949934e481fe3566"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="classgrpc_1_1_completion_queue.html#aea987a15a475923e949934e481fe3566">More...</a><br /></td></tr>
  94. <tr class="separator:aea987a15a475923e949934e481fe3566"><td class="memSeparator" colspan="2">&#160;</td></tr>
  95. <tr class="memitem:a081a954044215a7ca8554da4220fb369"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a081a954044215a7ca8554da4220fb369">CompletionQueue</a> (<a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *take)</td></tr>
  96. <tr class="memdesc:a081a954044215a7ca8554da4220fb369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrap <em>take</em>, taking ownership of the instance. <a href="classgrpc_1_1_completion_queue.html#a081a954044215a7ca8554da4220fb369">More...</a><br /></td></tr>
  97. <tr class="separator:a081a954044215a7ca8554da4220fb369"><td class="memSeparator" colspan="2">&#160;</td></tr>
  98. <tr class="memitem:a776f9e04c58eaf26611d1d4360a055ed"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a776f9e04c58eaf26611d1d4360a055ed">~CompletionQueue</a> () override</td></tr>
  99. <tr class="memdesc:a776f9e04c58eaf26611d1d4360a055ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. Destroys the owned wrapped completion queue / instance. <a href="classgrpc_1_1_completion_queue.html#a776f9e04c58eaf26611d1d4360a055ed">More...</a><br /></td></tr>
  100. <tr class="separator:a776f9e04c58eaf26611d1d4360a055ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
  101. <tr class="memitem:a86d9810ced694e50f7987ac90b9f8c1a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a86d9810ced694e50f7987ac90b9f8c1a">Next</a> (void **tag, bool *ok)</td></tr>
  102. <tr class="memdesc:a86d9810ced694e50f7987ac90b9f8c1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read from the queue, blocking until an event is available or the queue is shutting down. <a href="classgrpc_1_1_completion_queue.html#a86d9810ced694e50f7987ac90b9f8c1a">More...</a><br /></td></tr>
  103. <tr class="separator:a86d9810ced694e50f7987ac90b9f8c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  104. <tr class="memitem:a290ddf3d96e6d1d5886580e60b0602b4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
  105. <tr class="memitem:a290ddf3d96e6d1d5886580e60b0602b4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">NextStatus</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a290ddf3d96e6d1d5886580e60b0602b4">AsyncNext</a> (void **tag, bool *ok, const T &amp;deadline)</td></tr>
  106. <tr class="memdesc:a290ddf3d96e6d1d5886580e60b0602b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read from the queue, blocking up to <em>deadline</em> (or the queue's shutdown). <a href="classgrpc_1_1_completion_queue.html#a290ddf3d96e6d1d5886580e60b0602b4">More...</a><br /></td></tr>
  107. <tr class="separator:a290ddf3d96e6d1d5886580e60b0602b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <tr class="memitem:af935df99ccd14bcfb674e89f0c077a8c"><td class="memTemplParams" colspan="2">template&lt;typename T , typename F &gt; </td></tr>
  109. <tr class="memitem:af935df99ccd14bcfb674e89f0c077a8c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">NextStatus</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#af935df99ccd14bcfb674e89f0c077a8c">DoThenAsyncNext</a> (F &amp;&amp;f, void **tag, bool *ok, const T &amp;deadline)</td></tr>
  110. <tr class="memdesc:af935df99ccd14bcfb674e89f0c077a8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">EXPERIMENTAL First executes <em>F</em>, then reads from the queue, blocking up to <em>deadline</em> (or the queue's shutdown). <a href="classgrpc_1_1_completion_queue.html#af935df99ccd14bcfb674e89f0c077a8c">More...</a><br /></td></tr>
  111. <tr class="separator:af935df99ccd14bcfb674e89f0c077a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  112. <tr class="memitem:a40efddadd9073386fbcb4f46e8325670"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a40efddadd9073386fbcb4f46e8325670">Shutdown</a> ()</td></tr>
  113. <tr class="memdesc:a40efddadd9073386fbcb4f46e8325670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request the shutdown of the queue. <a href="classgrpc_1_1_completion_queue.html#a40efddadd9073386fbcb4f46e8325670">More...</a><br /></td></tr>
  114. <tr class="separator:a40efddadd9073386fbcb4f46e8325670"><td class="memSeparator" colspan="2">&#160;</td></tr>
  115. <tr class="memitem:a999c317e716d1e74aca2eb050912302b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a999c317e716d1e74aca2eb050912302b">cq</a> ()</td></tr>
  116. <tr class="memdesc:a999c317e716d1e74aca2eb050912302b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <em>raw</em> pointer to the underlying <em>grpc_completion_queue</em> instance. <a href="classgrpc_1_1_completion_queue.html#a999c317e716d1e74aca2eb050912302b">More...</a><br /></td></tr>
  117. <tr class="separator:a999c317e716d1e74aca2eb050912302b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. </table><table class="memberdecls">
  119. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
  120. Protected Member Functions</h2></td></tr>
  121. <tr class="memitem:abf1d4810de32ca2cc2c14c591b41d2cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#abf1d4810de32ca2cc2c14c591b41d2cd">CompletionQueue</a> (const <a class="el" href="structgrpc__completion__queue__attributes.html">grpc_completion_queue_attributes</a> &amp;attributes)</td></tr>
  122. <tr class="memdesc:abf1d4810de32ca2cc2c14c591b41d2cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Private constructor of <a class="el" href="classgrpc_1_1_completion_queue.html" title="A thin wrapper around grpc_completion_queue (see src/core/lib/surface/completion_queue....">CompletionQueue</a> only visible to friend classes. <a href="classgrpc_1_1_completion_queue.html#abf1d4810de32ca2cc2c14c591b41d2cd">More...</a><br /></td></tr>
  123. <tr class="separator:abf1d4810de32ca2cc2c14c591b41d2cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  124. </table><table class="memberdecls">
  125. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
  126. Friends</h2></td></tr>
  127. <tr class="memitem:af10736c7196b316823aa62e3e15f92f0"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#af10736c7196b316823aa62e3e15f92f0">::grpc::ServerBuilder</a></td></tr>
  128. <tr class="separator:af10736c7196b316823aa62e3e15f92f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <tr class="memitem:a8c3fa4c066981aae114e41c3f9340144"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a8c3fa4c066981aae114e41c3f9340144">::grpc::Server</a></td></tr>
  130. <tr class="separator:a8c3fa4c066981aae114e41c3f9340144"><td class="memSeparator" colspan="2">&#160;</td></tr>
  131. <tr class="memitem:ade499098cc91745c1c87147d7a7fb7bf"><td class="memTemplParams" colspan="2">template&lt;class R &gt; </td></tr>
  132. <tr class="memitem:ade499098cc91745c1c87147d7a7fb7bf"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#ade499098cc91745c1c87147d7a7fb7bf">::grpc::ClientReader</a></td></tr>
  133. <tr class="separator:ade499098cc91745c1c87147d7a7fb7bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:a4498fada67d531d99a8642f47d746544"><td class="memTemplParams" colspan="2">template&lt;class W &gt; </td></tr>
  135. <tr class="memitem:a4498fada67d531d99a8642f47d746544"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a4498fada67d531d99a8642f47d746544">::grpc::ClientWriter</a></td></tr>
  136. <tr class="separator:a4498fada67d531d99a8642f47d746544"><td class="memSeparator" colspan="2">&#160;</td></tr>
  137. <tr class="memitem:a6d5659aa24edba057895be774e2752ec"><td class="memTemplParams" colspan="2">template&lt;class W , class R &gt; </td></tr>
  138. <tr class="memitem:a6d5659aa24edba057895be774e2752ec"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a6d5659aa24edba057895be774e2752ec">::grpc::ClientReaderWriter</a></td></tr>
  139. <tr class="separator:a6d5659aa24edba057895be774e2752ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:a4f20e2d049342ae00242bbc8021a44bd"><td class="memTemplParams" colspan="2">template&lt;class R &gt; </td></tr>
  141. <tr class="memitem:a4f20e2d049342ae00242bbc8021a44bd"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a4f20e2d049342ae00242bbc8021a44bd">::grpc::ServerReader</a></td></tr>
  142. <tr class="separator:a4f20e2d049342ae00242bbc8021a44bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  143. <tr class="memitem:a2f2dfa831a62c43ad5647a45080488e3"><td class="memTemplParams" colspan="2">template&lt;class W &gt; </td></tr>
  144. <tr class="memitem:a2f2dfa831a62c43ad5647a45080488e3"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a2f2dfa831a62c43ad5647a45080488e3">::grpc::ServerWriter</a></td></tr>
  145. <tr class="separator:a2f2dfa831a62c43ad5647a45080488e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  146. <tr class="memitem:a81fd5fb92dd22dced55726c389f3ea29"><td class="memTemplParams" colspan="2">template&lt;class W , class R &gt; </td></tr>
  147. <tr class="memitem:a81fd5fb92dd22dced55726c389f3ea29"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a81fd5fb92dd22dced55726c389f3ea29">::grpc::internal::ServerReaderWriterBody</a></td></tr>
  148. <tr class="separator:a81fd5fb92dd22dced55726c389f3ea29"><td class="memSeparator" colspan="2">&#160;</td></tr>
  149. <tr class="memitem:aee2bfad715a7c61f2839cdc9b5be6ef5"><td class="memTemplParams" colspan="2">template&lt;class ServiceType , class RequestType , class ResponseType &gt; </td></tr>
  150. <tr class="memitem:aee2bfad715a7c61f2839cdc9b5be6ef5"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#aee2bfad715a7c61f2839cdc9b5be6ef5">::grpc::internal::ClientStreamingHandler</a></td></tr>
  151. <tr class="separator:aee2bfad715a7c61f2839cdc9b5be6ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:abba72ec6d1dbf06ecb1bf48e1c916c48"><td class="memTemplParams" colspan="2">template&lt;class ServiceType , class RequestType , class ResponseType &gt; </td></tr>
  153. <tr class="memitem:abba72ec6d1dbf06ecb1bf48e1c916c48"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#abba72ec6d1dbf06ecb1bf48e1c916c48">::grpc::internal::ServerStreamingHandler</a></td></tr>
  154. <tr class="separator:abba72ec6d1dbf06ecb1bf48e1c916c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. <tr class="memitem:a65ae6d263727d1e67e811969f909212b"><td class="memTemplParams" colspan="2">template&lt;class Streamer , bool WriteNeeded&gt; </td></tr>
  156. <tr class="memitem:a65ae6d263727d1e67e811969f909212b"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a65ae6d263727d1e67e811969f909212b">::grpc::internal::TemplatedBidiStreamingHandler</a></td></tr>
  157. <tr class="separator:a65ae6d263727d1e67e811969f909212b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  158. <tr class="memitem:a388eaf44b2f41899396d4b5b05cf857c"><td class="memTemplParams" colspan="2">template&lt;::grpc::StatusCode code&gt; </td></tr>
  159. <tr class="memitem:a388eaf44b2f41899396d4b5b05cf857c"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a388eaf44b2f41899396d4b5b05cf857c">::grpc::internal::ErrorMethodHandler</a></td></tr>
  160. <tr class="separator:a388eaf44b2f41899396d4b5b05cf857c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  161. <tr class="memitem:af420713498b8e97412e927c1d617b2ba"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#af420713498b8e97412e927c1d617b2ba">::grpc::ServerContextBase</a></td></tr>
  162. <tr class="separator:af420713498b8e97412e927c1d617b2ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. <tr class="memitem:a8edbec79fc5ad7456e57c0f513451e2f"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a8edbec79fc5ad7456e57c0f513451e2f">::grpc::ServerInterface</a></td></tr>
  164. <tr class="separator:a8edbec79fc5ad7456e57c0f513451e2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165. <tr class="memitem:ad26a823fee699f97244d581f400fe39a"><td class="memTemplParams" colspan="2">template&lt;class InputMessage , class OutputMessage &gt; </td></tr>
  166. <tr class="memitem:ad26a823fee699f97244d581f400fe39a"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#ad26a823fee699f97244d581f400fe39a">::grpc::internal::BlockingUnaryCallImpl</a></td></tr>
  167. <tr class="separator:ad26a823fee699f97244d581f400fe39a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:a82418631373400a3f110c97c937a9533"><td class="memItemLeft" align="right" valign="top">class&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a82418631373400a3f110c97c937a9533">::grpc::Channel</a></td></tr>
  169. <tr class="separator:a82418631373400a3f110c97c937a9533"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. <tr class="memitem:a560fa0fe4346e5487f19cd7403071aca"><td class="memTemplParams" colspan="2">template&lt;class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 &gt; </td></tr>
  171. <tr class="memitem:a560fa0fe4346e5487f19cd7403071aca"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a560fa0fe4346e5487f19cd7403071aca">::grpc::internal::CallOpSet</a></td></tr>
  172. <tr class="separator:a560fa0fe4346e5487f19cd7403071aca"><td class="memSeparator" colspan="2">&#160;</td></tr>
  173. </table>
  174. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  175. <div class="textblock"><p>A thin wrapper around <a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> (see src/core/lib/surface/completion_queue.h). </p>
  176. <p>See <a class="el" href="md_doc_cpp_perf_notes.html">C++ Performance Notes</a> for notes on best practices for high performance servers. </p>
  177. </div><h2 class="groupheader">Member Enumeration Documentation</h2>
  178. <a id="a6227657fb2f29291f80cd092f9baf572"></a>
  179. <h2 class="memtitle"><span class="permalink"><a href="#a6227657fb2f29291f80cd092f9baf572">&#9670;&nbsp;</a></span>NextStatus</h2>
  180. <div class="memitem">
  181. <div class="memproto">
  182. <table class="memname">
  183. <tr>
  184. <td class="memname">enum <a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">grpc::CompletionQueue::NextStatus</a></td>
  185. </tr>
  186. </table>
  187. </div><div class="memdoc">
  188. <p>Tri-state return for AsyncNext: SHUTDOWN, GOT_EVENT, TIMEOUT. </p>
  189. <table class="fieldtable">
  190. <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6227657fb2f29291f80cd092f9baf572a5d05c1c970154dad10e5f648890c215b"></a>SHUTDOWN&#160;</td><td class="fielddoc"><p>The completion queue has been shutdown and fully-drained. </p>
  191. </td></tr>
  192. <tr><td class="fieldname"><a id="a6227657fb2f29291f80cd092f9baf572a5d8344849fb99341b7edaa9da7b42c08"></a>GOT_EVENT&#160;</td><td class="fielddoc"><p>Got a new event; <em>tag</em> will be filled in with its associated value; <em>ok</em> indicating its success. </p>
  193. </td></tr>
  194. <tr><td class="fieldname"><a id="a6227657fb2f29291f80cd092f9baf572ae88eecb45f91413b425511ee973e2e04"></a>TIMEOUT&#160;</td><td class="fielddoc"><p>deadline was reached. </p>
  195. </td></tr>
  196. </table>
  197. </div>
  198. </div>
  199. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  200. <a id="aea987a15a475923e949934e481fe3566"></a>
  201. <h2 class="memtitle"><span class="permalink"><a href="#aea987a15a475923e949934e481fe3566">&#9670;&nbsp;</a></span>CompletionQueue() <span class="overload">[1/3]</span></h2>
  202. <div class="memitem">
  203. <div class="memproto">
  204. <table class="mlabels">
  205. <tr>
  206. <td class="mlabels-left">
  207. <table class="memname">
  208. <tr>
  209. <td class="memname">grpc::CompletionQueue::CompletionQueue </td>
  210. <td>(</td>
  211. <td class="paramname"></td><td>)</td>
  212. <td></td>
  213. </tr>
  214. </table>
  215. </td>
  216. <td class="mlabels-right">
  217. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  218. </tr>
  219. </table>
  220. </div><div class="memdoc">
  221. <p>Default constructor. </p>
  222. <p>Implicitly creates a <em>grpc_completion_queue</em> instance. </p>
  223. </div>
  224. </div>
  225. <a id="a081a954044215a7ca8554da4220fb369"></a>
  226. <h2 class="memtitle"><span class="permalink"><a href="#a081a954044215a7ca8554da4220fb369">&#9670;&nbsp;</a></span>CompletionQueue() <span class="overload">[2/3]</span></h2>
  227. <div class="memitem">
  228. <div class="memproto">
  229. <table class="mlabels">
  230. <tr>
  231. <td class="mlabels-left">
  232. <table class="memname">
  233. <tr>
  234. <td class="memname">grpc::CompletionQueue::CompletionQueue </td>
  235. <td>(</td>
  236. <td class="paramtype"><a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *&#160;</td>
  237. <td class="paramname"><em>take</em></td><td>)</td>
  238. <td></td>
  239. </tr>
  240. </table>
  241. </td>
  242. <td class="mlabels-right">
  243. <span class="mlabels"><span class="mlabel">explicit</span></span> </td>
  244. </tr>
  245. </table>
  246. </div><div class="memdoc">
  247. <p>Wrap <em>take</em>, taking ownership of the instance. </p>
  248. <dl class="params"><dt>Parameters</dt><dd>
  249. <table class="params">
  250. <tr><td class="paramname">take</td><td>The completion queue instance to wrap. Ownership is taken. </td></tr>
  251. </table>
  252. </dd>
  253. </dl>
  254. </div>
  255. </div>
  256. <a id="a776f9e04c58eaf26611d1d4360a055ed"></a>
  257. <h2 class="memtitle"><span class="permalink"><a href="#a776f9e04c58eaf26611d1d4360a055ed">&#9670;&nbsp;</a></span>~CompletionQueue()</h2>
  258. <div class="memitem">
  259. <div class="memproto">
  260. <table class="mlabels">
  261. <tr>
  262. <td class="mlabels-left">
  263. <table class="memname">
  264. <tr>
  265. <td class="memname">grpc::CompletionQueue::~CompletionQueue </td>
  266. <td>(</td>
  267. <td class="paramname"></td><td>)</td>
  268. <td></td>
  269. </tr>
  270. </table>
  271. </td>
  272. <td class="mlabels-right">
  273. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span> </td>
  274. </tr>
  275. </table>
  276. </div><div class="memdoc">
  277. <p>Destructor. Destroys the owned wrapped completion queue / instance. </p>
  278. </div>
  279. </div>
  280. <a id="abf1d4810de32ca2cc2c14c591b41d2cd"></a>
  281. <h2 class="memtitle"><span class="permalink"><a href="#abf1d4810de32ca2cc2c14c591b41d2cd">&#9670;&nbsp;</a></span>CompletionQueue() <span class="overload">[3/3]</span></h2>
  282. <div class="memitem">
  283. <div class="memproto">
  284. <table class="mlabels">
  285. <tr>
  286. <td class="mlabels-left">
  287. <table class="memname">
  288. <tr>
  289. <td class="memname">grpc::CompletionQueue::CompletionQueue </td>
  290. <td>(</td>
  291. <td class="paramtype">const <a class="el" href="structgrpc__completion__queue__attributes.html">grpc_completion_queue_attributes</a> &amp;&#160;</td>
  292. <td class="paramname"><em>attributes</em></td><td>)</td>
  293. <td></td>
  294. </tr>
  295. </table>
  296. </td>
  297. <td class="mlabels-right">
  298. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">protected</span></span> </td>
  299. </tr>
  300. </table>
  301. </div><div class="memdoc">
  302. <p>Private constructor of <a class="el" href="classgrpc_1_1_completion_queue.html" title="A thin wrapper around grpc_completion_queue (see src/core/lib/surface/completion_queue....">CompletionQueue</a> only visible to friend classes. </p>
  303. </div>
  304. </div>
  305. <h2 class="groupheader">Member Function Documentation</h2>
  306. <a id="a290ddf3d96e6d1d5886580e60b0602b4"></a>
  307. <h2 class="memtitle"><span class="permalink"><a href="#a290ddf3d96e6d1d5886580e60b0602b4">&#9670;&nbsp;</a></span>AsyncNext()</h2>
  308. <div class="memitem">
  309. <div class="memproto">
  310. <div class="memtemplate">
  311. template&lt;typename T &gt; </div>
  312. <table class="mlabels">
  313. <tr>
  314. <td class="mlabels-left">
  315. <table class="memname">
  316. <tr>
  317. <td class="memname"><a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">NextStatus</a> grpc::CompletionQueue::AsyncNext </td>
  318. <td>(</td>
  319. <td class="paramtype">void **&#160;</td>
  320. <td class="paramname"><em>tag</em>, </td>
  321. </tr>
  322. <tr>
  323. <td class="paramkey"></td>
  324. <td></td>
  325. <td class="paramtype">bool *&#160;</td>
  326. <td class="paramname"><em>ok</em>, </td>
  327. </tr>
  328. <tr>
  329. <td class="paramkey"></td>
  330. <td></td>
  331. <td class="paramtype">const T &amp;&#160;</td>
  332. <td class="paramname"><em>deadline</em>&#160;</td>
  333. </tr>
  334. <tr>
  335. <td></td>
  336. <td>)</td>
  337. <td></td><td></td>
  338. </tr>
  339. </table>
  340. </td>
  341. <td class="mlabels-right">
  342. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  343. </tr>
  344. </table>
  345. </div><div class="memdoc">
  346. <p>Read from the queue, blocking up to <em>deadline</em> (or the queue's shutdown). </p>
  347. <p>Both <em>tag</em> and <em>ok</em> are updated upon success (if an event is available within the <em>deadline</em>). A <em>tag</em> points to an arbitrary location usually employed to uniquely identify an event.</p>
  348. <dl class="params"><dt>Parameters</dt><dd>
  349. <table class="params">
  350. <tr><td class="paramdir">[out]</td><td class="paramname">tag</td><td>Upon success, updated to point to the event's tag. </td></tr>
  351. <tr><td class="paramdir">[out]</td><td class="paramname">ok</td><td>Upon success, true if a successful event, false otherwise See documentation for <a class="el" href="classgrpc_1_1_completion_queue.html#a86d9810ced694e50f7987ac90b9f8c1a" title="Read from the queue, blocking until an event is available or the queue is shutting down.">CompletionQueue::Next</a> for explanation of ok </td></tr>
  352. <tr><td class="paramdir">[in]</td><td class="paramname">deadline</td><td>How long to block in wait for an event.</td></tr>
  353. </table>
  354. </dd>
  355. </dl>
  356. <dl class="section return"><dt>Returns</dt><dd>The type of event read. </dd></dl>
  357. </div>
  358. </div>
  359. <a id="a999c317e716d1e74aca2eb050912302b"></a>
  360. <h2 class="memtitle"><span class="permalink"><a href="#a999c317e716d1e74aca2eb050912302b">&#9670;&nbsp;</a></span>cq()</h2>
  361. <div class="memitem">
  362. <div class="memproto">
  363. <table class="mlabels">
  364. <tr>
  365. <td class="mlabels-left">
  366. <table class="memname">
  367. <tr>
  368. <td class="memname"><a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a>* grpc::CompletionQueue::cq </td>
  369. <td>(</td>
  370. <td class="paramname"></td><td>)</td>
  371. <td></td>
  372. </tr>
  373. </table>
  374. </td>
  375. <td class="mlabels-right">
  376. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  377. </tr>
  378. </table>
  379. </div><div class="memdoc">
  380. <p>Returns a <em>raw</em> pointer to the underlying <em>grpc_completion_queue</em> instance. </p>
  381. <dl class="section warning"><dt>Warning</dt><dd>Remember that the returned instance is owned. No transfer of owership is performed. </dd></dl>
  382. </div>
  383. </div>
  384. <a id="af935df99ccd14bcfb674e89f0c077a8c"></a>
  385. <h2 class="memtitle"><span class="permalink"><a href="#af935df99ccd14bcfb674e89f0c077a8c">&#9670;&nbsp;</a></span>DoThenAsyncNext()</h2>
  386. <div class="memitem">
  387. <div class="memproto">
  388. <div class="memtemplate">
  389. template&lt;typename T , typename F &gt; </div>
  390. <table class="mlabels">
  391. <tr>
  392. <td class="mlabels-left">
  393. <table class="memname">
  394. <tr>
  395. <td class="memname"><a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">NextStatus</a> grpc::CompletionQueue::DoThenAsyncNext </td>
  396. <td>(</td>
  397. <td class="paramtype">F &amp;&amp;&#160;</td>
  398. <td class="paramname"><em>f</em>, </td>
  399. </tr>
  400. <tr>
  401. <td class="paramkey"></td>
  402. <td></td>
  403. <td class="paramtype">void **&#160;</td>
  404. <td class="paramname"><em>tag</em>, </td>
  405. </tr>
  406. <tr>
  407. <td class="paramkey"></td>
  408. <td></td>
  409. <td class="paramtype">bool *&#160;</td>
  410. <td class="paramname"><em>ok</em>, </td>
  411. </tr>
  412. <tr>
  413. <td class="paramkey"></td>
  414. <td></td>
  415. <td class="paramtype">const T &amp;&#160;</td>
  416. <td class="paramname"><em>deadline</em>&#160;</td>
  417. </tr>
  418. <tr>
  419. <td></td>
  420. <td>)</td>
  421. <td></td><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>EXPERIMENTAL First executes <em>F</em>, then reads from the queue, blocking up to <em>deadline</em> (or the queue's shutdown). </p>
  431. <p>Both <em>tag</em> and <em>ok</em> are updated upon success (if an event is available within the <em>deadline</em>). A <em>tag</em> points to an arbitrary location usually employed to uniquely identify an event.</p>
  432. <dl class="params"><dt>Parameters</dt><dd>
  433. <table class="params">
  434. <tr><td class="paramdir">[in]</td><td class="paramname">f</td><td>Function to execute before calling AsyncNext on this queue. </td></tr>
  435. <tr><td class="paramdir">[out]</td><td class="paramname">tag</td><td>Upon success, updated to point to the event's tag. </td></tr>
  436. <tr><td class="paramdir">[out]</td><td class="paramname">ok</td><td>Upon success, true if read a regular event, false otherwise. </td></tr>
  437. <tr><td class="paramdir">[in]</td><td class="paramname">deadline</td><td>How long to block in wait for an event.</td></tr>
  438. </table>
  439. </dd>
  440. </dl>
  441. <dl class="section return"><dt>Returns</dt><dd>The type of event read. </dd></dl>
  442. </div>
  443. </div>
  444. <a id="a86d9810ced694e50f7987ac90b9f8c1a"></a>
  445. <h2 class="memtitle"><span class="permalink"><a href="#a86d9810ced694e50f7987ac90b9f8c1a">&#9670;&nbsp;</a></span>Next()</h2>
  446. <div class="memitem">
  447. <div class="memproto">
  448. <table class="mlabels">
  449. <tr>
  450. <td class="mlabels-left">
  451. <table class="memname">
  452. <tr>
  453. <td class="memname">bool grpc::CompletionQueue::Next </td>
  454. <td>(</td>
  455. <td class="paramtype">void **&#160;</td>
  456. <td class="paramname"><em>tag</em>, </td>
  457. </tr>
  458. <tr>
  459. <td class="paramkey"></td>
  460. <td></td>
  461. <td class="paramtype">bool *&#160;</td>
  462. <td class="paramname"><em>ok</em>&#160;</td>
  463. </tr>
  464. <tr>
  465. <td></td>
  466. <td>)</td>
  467. <td></td><td></td>
  468. </tr>
  469. </table>
  470. </td>
  471. <td class="mlabels-right">
  472. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  473. </tr>
  474. </table>
  475. </div><div class="memdoc">
  476. <p>Read from the queue, blocking until an event is available or the queue is shutting down. </p>
  477. <dl class="params"><dt>Parameters</dt><dd>
  478. <table class="params">
  479. <tr><td class="paramdir">[out]</td><td class="paramname">tag</td><td>Updated to point to the read event's tag. </td></tr>
  480. <tr><td class="paramdir">[out]</td><td class="paramname">ok</td><td>true if read a successful event, false otherwise.</td></tr>
  481. </table>
  482. </dd>
  483. </dl>
  484. <p>Note that each tag sent to the completion queue (through RPC operations or alarms) will be delivered out of the completion queue by a call to Next (or a related method), regardless of whether the operation succeeded or not. Success here means that this operation completed in the normal valid manner.</p>
  485. <p>Server-side RPC request: <em>ok</em> indicates that the RPC has indeed been started. If it is false, the server has been Shutdown before this particular call got matched to an incoming RPC.</p>
  486. <p>Client-side StartCall/RPC invocation: <em>ok</em> indicates that the RPC is going to go to the wire. If it is false, it not going to the wire. This would happen if the channel is either permanently broken or transiently broken but with the fail-fast option. (Note that async unary RPCs don't post a CQ tag at this point, nor do client-streaming or bidi-streaming RPCs that have the initial metadata corked option set.)</p>
  487. <p>Client-side Write, Client-side WritesDone, Server-side Write, Server-side Finish, Server-side SendInitialMetadata (which is typically included in Write or Finish when not done explicitly): <em>ok</em> means that the data/metadata/status/etc is going to go to the wire. If it is false, it not going to the wire because the call is already dead (i.e., canceled, deadline expired, other side dropped the channel, etc).</p>
  488. <p>Client-side Read, Server-side Read, Client-side RecvInitialMetadata (which is typically included in Read if not done explicitly): <em>ok</em> indicates whether there is a valid message that got read. If not, you know that there are certainly no more messages that can ever be read from this stream. For the client-side operations, this only happens because the call is dead. For the server-sider operation, though, this could happen because the client has done a WritesDone already.</p>
  489. <p>Client-side Finish: <em>ok</em> should always be true</p>
  490. <p>Server-side AsyncNotifyWhenDone: <em>ok</em> should always be true</p>
  491. <p><a class="el" href="classgrpc_1_1_alarm.html">Alarm</a>: <em>ok</em> is true if it expired, false if it was canceled</p>
  492. <dl class="section return"><dt>Returns</dt><dd>true if got an event, false if the queue is fully drained and shut down. </dd></dl>
  493. </div>
  494. </div>
  495. <a id="a40efddadd9073386fbcb4f46e8325670"></a>
  496. <h2 class="memtitle"><span class="permalink"><a href="#a40efddadd9073386fbcb4f46e8325670">&#9670;&nbsp;</a></span>Shutdown()</h2>
  497. <div class="memitem">
  498. <div class="memproto">
  499. <table class="memname">
  500. <tr>
  501. <td class="memname">void grpc::CompletionQueue::Shutdown </td>
  502. <td>(</td>
  503. <td class="paramname"></td><td>)</td>
  504. <td></td>
  505. </tr>
  506. </table>
  507. </div><div class="memdoc">
  508. <p>Request the shutdown of the queue. </p>
  509. <dl class="section warning"><dt>Warning</dt><dd>This method must be called at some point if this completion queue is accessed with Next or AsyncNext. <em>Next</em> will not return false until this method has been called and all pending tags have been drained. (Likewise for <em>AsyncNext</em> returning <em>NextStatus::SHUTDOWN</em> .) Only once either one of these methods does that (that is, once the queue has been <em>drained</em>) can an instance of this class be destroyed. Also note that applications must ensure that no work is enqueued on this completion queue after this method is called. </dd></dl>
  510. </div>
  511. </div>
  512. <h2 class="groupheader">Friends And Related Function Documentation</h2>
  513. <a id="a82418631373400a3f110c97c937a9533"></a>
  514. <h2 class="memtitle"><span class="permalink"><a href="#a82418631373400a3f110c97c937a9533">&#9670;&nbsp;</a></span>::grpc::Channel</h2>
  515. <div class="memitem">
  516. <div class="memproto">
  517. <table class="mlabels">
  518. <tr>
  519. <td class="mlabels-left">
  520. <table class="memname">
  521. <tr>
  522. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_channel.html">grpc::Channel</a></td>
  523. </tr>
  524. </table>
  525. </td>
  526. <td class="mlabels-right">
  527. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  528. </tr>
  529. </table>
  530. </div><div class="memdoc">
  531. </div>
  532. </div>
  533. <a id="ade499098cc91745c1c87147d7a7fb7bf"></a>
  534. <h2 class="memtitle"><span class="permalink"><a href="#ade499098cc91745c1c87147d7a7fb7bf">&#9670;&nbsp;</a></span>::grpc::ClientReader</h2>
  535. <div class="memitem">
  536. <div class="memproto">
  537. <div class="memtemplate">
  538. template&lt;class R &gt; </div>
  539. <table class="mlabels">
  540. <tr>
  541. <td class="mlabels-left">
  542. <table class="memname">
  543. <tr>
  544. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_client_reader.html">grpc::ClientReader</a></td>
  545. </tr>
  546. </table>
  547. </td>
  548. <td class="mlabels-right">
  549. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  550. </tr>
  551. </table>
  552. </div><div class="memdoc">
  553. </div>
  554. </div>
  555. <a id="a6d5659aa24edba057895be774e2752ec"></a>
  556. <h2 class="memtitle"><span class="permalink"><a href="#a6d5659aa24edba057895be774e2752ec">&#9670;&nbsp;</a></span>::grpc::ClientReaderWriter</h2>
  557. <div class="memitem">
  558. <div class="memproto">
  559. <div class="memtemplate">
  560. template&lt;class W , class R &gt; </div>
  561. <table class="mlabels">
  562. <tr>
  563. <td class="mlabels-left">
  564. <table class="memname">
  565. <tr>
  566. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a></td>
  567. </tr>
  568. </table>
  569. </td>
  570. <td class="mlabels-right">
  571. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  572. </tr>
  573. </table>
  574. </div><div class="memdoc">
  575. </div>
  576. </div>
  577. <a id="a4498fada67d531d99a8642f47d746544"></a>
  578. <h2 class="memtitle"><span class="permalink"><a href="#a4498fada67d531d99a8642f47d746544">&#9670;&nbsp;</a></span>::grpc::ClientWriter</h2>
  579. <div class="memitem">
  580. <div class="memproto">
  581. <div class="memtemplate">
  582. template&lt;class W &gt; </div>
  583. <table class="mlabels">
  584. <tr>
  585. <td class="mlabels-left">
  586. <table class="memname">
  587. <tr>
  588. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_client_writer.html">grpc::ClientWriter</a></td>
  589. </tr>
  590. </table>
  591. </td>
  592. <td class="mlabels-right">
  593. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  594. </tr>
  595. </table>
  596. </div><div class="memdoc">
  597. </div>
  598. </div>
  599. <a id="ad26a823fee699f97244d581f400fe39a"></a>
  600. <h2 class="memtitle"><span class="permalink"><a href="#ad26a823fee699f97244d581f400fe39a">&#9670;&nbsp;</a></span>::grpc::internal::BlockingUnaryCallImpl</h2>
  601. <div class="memitem">
  602. <div class="memproto">
  603. <div class="memtemplate">
  604. template&lt;class InputMessage , class OutputMessage &gt; </div>
  605. <table class="mlabels">
  606. <tr>
  607. <td class="mlabels-left">
  608. <table class="memname">
  609. <tr>
  610. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_blocking_unary_call_impl.html">grpc::internal::BlockingUnaryCallImpl</a></td>
  611. </tr>
  612. </table>
  613. </td>
  614. <td class="mlabels-right">
  615. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  616. </tr>
  617. </table>
  618. </div><div class="memdoc">
  619. </div>
  620. </div>
  621. <a id="a560fa0fe4346e5487f19cd7403071aca"></a>
  622. <h2 class="memtitle"><span class="permalink"><a href="#a560fa0fe4346e5487f19cd7403071aca">&#9670;&nbsp;</a></span>::grpc::internal::CallOpSet</h2>
  623. <div class="memitem">
  624. <div class="memproto">
  625. <div class="memtemplate">
  626. template&lt;class Op1 , class Op2 , class Op3 , class Op4 , class Op5 , class Op6 &gt; </div>
  627. <table class="mlabels">
  628. <tr>
  629. <td class="mlabels-left">
  630. <table class="memname">
  631. <tr>
  632. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_call_op_set.html">grpc::internal::CallOpSet</a></td>
  633. </tr>
  634. </table>
  635. </td>
  636. <td class="mlabels-right">
  637. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  638. </tr>
  639. </table>
  640. </div><div class="memdoc">
  641. </div>
  642. </div>
  643. <a id="aee2bfad715a7c61f2839cdc9b5be6ef5"></a>
  644. <h2 class="memtitle"><span class="permalink"><a href="#aee2bfad715a7c61f2839cdc9b5be6ef5">&#9670;&nbsp;</a></span>::grpc::internal::ClientStreamingHandler</h2>
  645. <div class="memitem">
  646. <div class="memproto">
  647. <div class="memtemplate">
  648. template&lt;class ServiceType , class RequestType , class ResponseType &gt; </div>
  649. <table class="mlabels">
  650. <tr>
  651. <td class="mlabels-left">
  652. <table class="memname">
  653. <tr>
  654. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_client_streaming_handler.html">grpc::internal::ClientStreamingHandler</a></td>
  655. </tr>
  656. </table>
  657. </td>
  658. <td class="mlabels-right">
  659. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  660. </tr>
  661. </table>
  662. </div><div class="memdoc">
  663. </div>
  664. </div>
  665. <a id="a388eaf44b2f41899396d4b5b05cf857c"></a>
  666. <h2 class="memtitle"><span class="permalink"><a href="#a388eaf44b2f41899396d4b5b05cf857c">&#9670;&nbsp;</a></span>::grpc::internal::ErrorMethodHandler</h2>
  667. <div class="memitem">
  668. <div class="memproto">
  669. <div class="memtemplate">
  670. template&lt;::grpc::StatusCode code&gt; </div>
  671. <table class="mlabels">
  672. <tr>
  673. <td class="mlabels-left">
  674. <table class="memname">
  675. <tr>
  676. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_error_method_handler.html">grpc::internal::ErrorMethodHandler</a></td>
  677. </tr>
  678. </table>
  679. </td>
  680. <td class="mlabels-right">
  681. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  682. </tr>
  683. </table>
  684. </div><div class="memdoc">
  685. </div>
  686. </div>
  687. <a id="a81fd5fb92dd22dced55726c389f3ea29"></a>
  688. <h2 class="memtitle"><span class="permalink"><a href="#a81fd5fb92dd22dced55726c389f3ea29">&#9670;&nbsp;</a></span>::grpc::internal::ServerReaderWriterBody</h2>
  689. <div class="memitem">
  690. <div class="memproto">
  691. <div class="memtemplate">
  692. template&lt;class W , class R &gt; </div>
  693. <table class="mlabels">
  694. <tr>
  695. <td class="mlabels-left">
  696. <table class="memname">
  697. <tr>
  698. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_server_reader_writer_body.html">grpc::internal::ServerReaderWriterBody</a></td>
  699. </tr>
  700. </table>
  701. </td>
  702. <td class="mlabels-right">
  703. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  704. </tr>
  705. </table>
  706. </div><div class="memdoc">
  707. </div>
  708. </div>
  709. <a id="abba72ec6d1dbf06ecb1bf48e1c916c48"></a>
  710. <h2 class="memtitle"><span class="permalink"><a href="#abba72ec6d1dbf06ecb1bf48e1c916c48">&#9670;&nbsp;</a></span>::grpc::internal::ServerStreamingHandler</h2>
  711. <div class="memitem">
  712. <div class="memproto">
  713. <div class="memtemplate">
  714. template&lt;class ServiceType , class RequestType , class ResponseType &gt; </div>
  715. <table class="mlabels">
  716. <tr>
  717. <td class="mlabels-left">
  718. <table class="memname">
  719. <tr>
  720. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_server_streaming_handler.html">grpc::internal::ServerStreamingHandler</a></td>
  721. </tr>
  722. </table>
  723. </td>
  724. <td class="mlabels-right">
  725. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  726. </tr>
  727. </table>
  728. </div><div class="memdoc">
  729. </div>
  730. </div>
  731. <a id="a65ae6d263727d1e67e811969f909212b"></a>
  732. <h2 class="memtitle"><span class="permalink"><a href="#a65ae6d263727d1e67e811969f909212b">&#9670;&nbsp;</a></span>::grpc::internal::TemplatedBidiStreamingHandler</h2>
  733. <div class="memitem">
  734. <div class="memproto">
  735. <div class="memtemplate">
  736. template&lt;class Streamer , bool WriteNeeded&gt; </div>
  737. <table class="mlabels">
  738. <tr>
  739. <td class="mlabels-left">
  740. <table class="memname">
  741. <tr>
  742. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_templated_bidi_streaming_handler.html">grpc::internal::TemplatedBidiStreamingHandler</a></td>
  743. </tr>
  744. </table>
  745. </td>
  746. <td class="mlabels-right">
  747. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  748. </tr>
  749. </table>
  750. </div><div class="memdoc">
  751. </div>
  752. </div>
  753. <a id="a8c3fa4c066981aae114e41c3f9340144"></a>
  754. <h2 class="memtitle"><span class="permalink"><a href="#a8c3fa4c066981aae114e41c3f9340144">&#9670;&nbsp;</a></span>::grpc::Server</h2>
  755. <div class="memitem">
  756. <div class="memproto">
  757. <table class="mlabels">
  758. <tr>
  759. <td class="mlabels-left">
  760. <table class="memname">
  761. <tr>
  762. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server.html">grpc::Server</a></td>
  763. </tr>
  764. </table>
  765. </td>
  766. <td class="mlabels-right">
  767. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  768. </tr>
  769. </table>
  770. </div><div class="memdoc">
  771. </div>
  772. </div>
  773. <a id="af10736c7196b316823aa62e3e15f92f0"></a>
  774. <h2 class="memtitle"><span class="permalink"><a href="#af10736c7196b316823aa62e3e15f92f0">&#9670;&nbsp;</a></span>::grpc::ServerBuilder</h2>
  775. <div class="memitem">
  776. <div class="memproto">
  777. <table class="mlabels">
  778. <tr>
  779. <td class="mlabels-left">
  780. <table class="memname">
  781. <tr>
  782. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_builder.html">grpc::ServerBuilder</a></td>
  783. </tr>
  784. </table>
  785. </td>
  786. <td class="mlabels-right">
  787. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  788. </tr>
  789. </table>
  790. </div><div class="memdoc">
  791. </div>
  792. </div>
  793. <a id="af420713498b8e97412e927c1d617b2ba"></a>
  794. <h2 class="memtitle"><span class="permalink"><a href="#af420713498b8e97412e927c1d617b2ba">&#9670;&nbsp;</a></span>::grpc::ServerContextBase</h2>
  795. <div class="memitem">
  796. <div class="memproto">
  797. <table class="mlabels">
  798. <tr>
  799. <td class="mlabels-left">
  800. <table class="memname">
  801. <tr>
  802. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_context_base.html">grpc::ServerContextBase</a></td>
  803. </tr>
  804. </table>
  805. </td>
  806. <td class="mlabels-right">
  807. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  808. </tr>
  809. </table>
  810. </div><div class="memdoc">
  811. </div>
  812. </div>
  813. <a id="a8edbec79fc5ad7456e57c0f513451e2f"></a>
  814. <h2 class="memtitle"><span class="permalink"><a href="#a8edbec79fc5ad7456e57c0f513451e2f">&#9670;&nbsp;</a></span>::grpc::ServerInterface</h2>
  815. <div class="memitem">
  816. <div class="memproto">
  817. <table class="mlabels">
  818. <tr>
  819. <td class="mlabels-left">
  820. <table class="memname">
  821. <tr>
  822. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_interface.html">grpc::ServerInterface</a></td>
  823. </tr>
  824. </table>
  825. </td>
  826. <td class="mlabels-right">
  827. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  828. </tr>
  829. </table>
  830. </div><div class="memdoc">
  831. </div>
  832. </div>
  833. <a id="a4f20e2d049342ae00242bbc8021a44bd"></a>
  834. <h2 class="memtitle"><span class="permalink"><a href="#a4f20e2d049342ae00242bbc8021a44bd">&#9670;&nbsp;</a></span>::grpc::ServerReader</h2>
  835. <div class="memitem">
  836. <div class="memproto">
  837. <div class="memtemplate">
  838. template&lt;class R &gt; </div>
  839. <table class="mlabels">
  840. <tr>
  841. <td class="mlabels-left">
  842. <table class="memname">
  843. <tr>
  844. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_reader.html">grpc::ServerReader</a></td>
  845. </tr>
  846. </table>
  847. </td>
  848. <td class="mlabels-right">
  849. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  850. </tr>
  851. </table>
  852. </div><div class="memdoc">
  853. </div>
  854. </div>
  855. <a id="a2f2dfa831a62c43ad5647a45080488e3"></a>
  856. <h2 class="memtitle"><span class="permalink"><a href="#a2f2dfa831a62c43ad5647a45080488e3">&#9670;&nbsp;</a></span>::grpc::ServerWriter</h2>
  857. <div class="memitem">
  858. <div class="memproto">
  859. <div class="memtemplate">
  860. template&lt;class W &gt; </div>
  861. <table class="mlabels">
  862. <tr>
  863. <td class="mlabels-left">
  864. <table class="memname">
  865. <tr>
  866. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_writer.html">grpc::ServerWriter</a></td>
  867. </tr>
  868. </table>
  869. </td>
  870. <td class="mlabels-right">
  871. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  872. </tr>
  873. </table>
  874. </div><div class="memdoc">
  875. </div>
  876. </div>
  877. <hr/>The documentation for this class was generated from the following file:<ul>
  878. <li>include/grpcpp/impl/codegen/<a class="el" href="grpcpp_2impl_2codegen_2completion__queue_8h_source.html">completion_queue.h</a></li>
  879. </ul>
  880. </div><!-- contents -->
  881. <!-- start footer part -->
  882. <hr class="footer"/><address class="footer"><small>
  883. Generated on Wed Mar 3 2021 19:17:24 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
  884. <img class="footer" src="doxygen.png" alt="doxygen"/>
  885. </a> 1.8.17
  886. </small></address>
  887. </body>
  888. </html>