classgrpc_1_1_completion_queue.html 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.6"/>
  7. <title>GRPC C++: grpc::CompletionQueue Class Reference</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="dynsections.js"></script>
  11. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  12. <script type="text/javascript" src="search/search.js"></script>
  13. <script type="text/javascript">
  14. $(document).ready(function() { searchBox.OnSelectItem(0); });
  15. </script>
  16. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  17. </head>
  18. <body>
  19. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  20. <div id="titlearea">
  21. <table cellspacing="0" cellpadding="0">
  22. <tbody>
  23. <tr style="height: 56px;">
  24. <td style="padding-left: 0.5em;">
  25. <div id="projectname">GRPC C++
  26. &#160;<span id="projectnumber">1.3.0</span>
  27. </div>
  28. </td>
  29. </tr>
  30. </tbody>
  31. </table>
  32. </div>
  33. <!-- end header part -->
  34. <!-- Generated by Doxygen 1.8.6 -->
  35. <script type="text/javascript">
  36. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  37. </script>
  38. <div id="navrow1" class="tabs">
  39. <ul class="tablist">
  40. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  41. <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
  42. <li><a href="modules.html"><span>Modules</span></a></li>
  43. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  44. <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  45. <li><a href="files.html"><span>Files</span></a></li>
  46. <li>
  47. <div id="MSearchBox" class="MSearchBoxInactive">
  48. <span class="left">
  49. <img id="MSearchSelect" src="search/mag_sel.png"
  50. onmouseover="return searchBox.OnSearchSelectShow()"
  51. onmouseout="return searchBox.OnSearchSelectHide()"
  52. alt=""/>
  53. <input type="text" id="MSearchField" value="Search" accesskey="S"
  54. onfocus="searchBox.OnSearchFieldFocus(true)"
  55. onblur="searchBox.OnSearchFieldFocus(false)"
  56. onkeyup="searchBox.OnSearchFieldChange(event)"/>
  57. </span><span class="right">
  58. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  59. </span>
  60. </div>
  61. </li>
  62. </ul>
  63. </div>
  64. <div id="navrow2" class="tabs2">
  65. <ul class="tablist">
  66. <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
  67. <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
  68. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  69. <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
  70. </ul>
  71. </div>
  72. <!-- window showing the filter options -->
  73. <div id="MSearchSelectWindow"
  74. onmouseover="return searchBox.OnSearchSelectShow()"
  75. onmouseout="return searchBox.OnSearchSelectHide()"
  76. onkeydown="return searchBox.OnSearchSelectKey(event)">
  77. <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(12)"><span class="SelectionMark">&#160;</span>Pages</a></div>
  78. <!-- iframe showing the search results (closed by default) -->
  79. <div id="MSearchResultsWindow">
  80. <iframe src="javascript:void(0)" frameborder="0"
  81. name="MSearchResults" id="MSearchResults">
  82. </iframe>
  83. </div>
  84. <div id="nav-path" class="navpath">
  85. <ul>
  86. <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>
  87. </div>
  88. </div><!-- top -->
  89. <div class="header">
  90. <div class="summary">
  91. <a href="#pub-types">Public Types</a> &#124;
  92. <a href="#pub-methods">Public Member Functions</a> &#124;
  93. <a href="#friends">Friends</a> </div>
  94. <div class="headertitle">
  95. <div class="title">grpc::CompletionQueue Class Reference</div> </div>
  96. </div><!--header-->
  97. <div class="contents">
  98. <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).
  99. <a href="classgrpc_1_1_completion_queue.html#details">More...</a></p>
  100. <p><code>#include &lt;<a class="el" href="impl_2codegen_2completion__queue_8h_source.html">completion_queue.h</a>&gt;</code></p>
  101. <table class="memberdecls">
  102. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
  103. Public Types</h2></td></tr>
  104. <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>,
  105. <a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572a5d8344849fb99341b7edaa9da7b42c08">GOT_EVENT</a>,
  106. <a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572ae88eecb45f91413b425511ee973e2e04">TIMEOUT</a>
  107. }</td></tr>
  108. <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>
  109. <tr class="separator:a6227657fb2f29291f80cd092f9baf572"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. </table><table class="memberdecls">
  111. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  112. Public Member Functions</h2></td></tr>
  113. <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>
  114. <tr class="memdesc:aea987a15a475923e949934e481fe3566"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <a href="#aea987a15a475923e949934e481fe3566">More...</a><br/></td></tr>
  115. <tr class="separator:aea987a15a475923e949934e481fe3566"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. <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>
  117. <tr class="memdesc:a081a954044215a7ca8554da4220fb369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wrap <em>take</em>, taking ownership of the instance. <a href="#a081a954044215a7ca8554da4220fb369">More...</a><br/></td></tr>
  118. <tr class="separator:a081a954044215a7ca8554da4220fb369"><td class="memSeparator" colspan="2">&#160;</td></tr>
  119. <tr class="memitem:aac07e9da5148c779cac51e1bf948c282"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#aac07e9da5148c779cac51e1bf948c282">~CompletionQueue</a> ()</td></tr>
  120. <tr class="memdesc:aac07e9da5148c779cac51e1bf948c282"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. Destroys the owned wrapped completion queue / instance. <a href="#aac07e9da5148c779cac51e1bf948c282">More...</a><br/></td></tr>
  121. <tr class="separator:aac07e9da5148c779cac51e1bf948c282"><td class="memSeparator" colspan="2">&#160;</td></tr>
  122. <tr class="memitem:a290ddf3d96e6d1d5886580e60b0602b4"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
  123. <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>
  124. <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="#a290ddf3d96e6d1d5886580e60b0602b4">More...</a><br/></td></tr>
  125. <tr class="separator:a290ddf3d96e6d1d5886580e60b0602b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. <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>
  127. <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="#a86d9810ced694e50f7987ac90b9f8c1a">More...</a><br/></td></tr>
  128. <tr class="separator:a86d9810ced694e50f7987ac90b9f8c1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <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>
  130. <tr class="memdesc:a40efddadd9073386fbcb4f46e8325670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request the shutdown of the queue. <a href="#a40efddadd9073386fbcb4f46e8325670">More...</a><br/></td></tr>
  131. <tr class="separator:a40efddadd9073386fbcb4f46e8325670"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <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>
  133. <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="#a999c317e716d1e74aca2eb050912302b">More...</a><br/></td></tr>
  134. <tr class="separator:a999c317e716d1e74aca2eb050912302b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. <tr class="memitem:a169dd094e1347297a168750b4cb592b8"><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#a169dd094e1347297a168750b4cb592b8">InitialAvalanching</a> ()</td></tr>
  136. <tr class="memdesc:a169dd094e1347297a168750b4cb592b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manage state of avalanching operations : completion queue tags that trigger other completion queue operations. <a href="#a169dd094e1347297a168750b4cb592b8">More...</a><br/></td></tr>
  137. <tr class="separator:a169dd094e1347297a168750b4cb592b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:a43a587573c1575511cd0df4101e8f065"><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#a43a587573c1575511cd0df4101e8f065">RegisterAvalanching</a> ()</td></tr>
  139. <tr class="separator:a43a587573c1575511cd0df4101e8f065"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:ab198302d64bdf815ece389a44fdd931f"><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#ab198302d64bdf815ece389a44fdd931f">CompleteAvalanching</a> ()</td></tr>
  141. <tr class="separator:ab198302d64bdf815ece389a44fdd931f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. </table><table class="memberdecls">
  143. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
  144. Friends</h2></td></tr>
  145. <tr class="memitem:ade499098cc91745c1c87147d7a7fb7bf"><td class="memTemplParams" colspan="2">template&lt;class R &gt; </td></tr>
  146. <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>
  147. <tr class="separator:ade499098cc91745c1c87147d7a7fb7bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:a4498fada67d531d99a8642f47d746544"><td class="memTemplParams" colspan="2">template&lt;class W &gt; </td></tr>
  149. <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>
  150. <tr class="separator:a4498fada67d531d99a8642f47d746544"><td class="memSeparator" colspan="2">&#160;</td></tr>
  151. <tr class="memitem:a6d5659aa24edba057895be774e2752ec"><td class="memTemplParams" colspan="2">template&lt;class W , class R &gt; </td></tr>
  152. <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>
  153. <tr class="separator:a6d5659aa24edba057895be774e2752ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
  154. <tr class="memitem:a4f20e2d049342ae00242bbc8021a44bd"><td class="memTemplParams" colspan="2">template&lt;class R &gt; </td></tr>
  155. <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>
  156. <tr class="separator:a4f20e2d049342ae00242bbc8021a44bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  157. <tr class="memitem:a2f2dfa831a62c43ad5647a45080488e3"><td class="memTemplParams" colspan="2">template&lt;class W &gt; </td></tr>
  158. <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>
  159. <tr class="separator:a2f2dfa831a62c43ad5647a45080488e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
  160. <tr class="memitem:a81fd5fb92dd22dced55726c389f3ea29"><td class="memTemplParams" colspan="2">template&lt;class W , class R &gt; </td></tr>
  161. <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>
  162. <tr class="separator:a81fd5fb92dd22dced55726c389f3ea29"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. <tr class="memitem:a76b9bb18b02084e9eaa8c9b99c668676"><td class="memTemplParams" colspan="2">template&lt;class ServiceType , class RequestType , class ResponseType &gt; </td></tr>
  164. <tr class="memitem:a76b9bb18b02084e9eaa8c9b99c668676"><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#a76b9bb18b02084e9eaa8c9b99c668676">RpcMethodHandler</a></td></tr>
  165. <tr class="separator:a76b9bb18b02084e9eaa8c9b99c668676"><td class="memSeparator" colspan="2">&#160;</td></tr>
  166. <tr class="memitem:ae11583f8aab976055b1feae895d7e12a"><td class="memTemplParams" colspan="2">template&lt;class ServiceType , class RequestType , class ResponseType &gt; </td></tr>
  167. <tr class="memitem:ae11583f8aab976055b1feae895d7e12a"><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#ae11583f8aab976055b1feae895d7e12a">ClientStreamingHandler</a></td></tr>
  168. <tr class="separator:ae11583f8aab976055b1feae895d7e12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  169. <tr class="memitem:ac2a23a31e1f8f09e2e51f09e7f50ba0c"><td class="memTemplParams" colspan="2">template&lt;class ServiceType , class RequestType , class ResponseType &gt; </td></tr>
  170. <tr class="memitem:ac2a23a31e1f8f09e2e51f09e7f50ba0c"><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#ac2a23a31e1f8f09e2e51f09e7f50ba0c">ServerStreamingHandler</a></td></tr>
  171. <tr class="separator:ac2a23a31e1f8f09e2e51f09e7f50ba0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. <tr class="memitem:a1c8a1d8a93da1dda2eb939d947694a24"><td class="memTemplParams" colspan="2">template&lt;class Streamer , bool WriteNeeded&gt; </td></tr>
  173. <tr class="memitem:a1c8a1d8a93da1dda2eb939d947694a24"><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#a1c8a1d8a93da1dda2eb939d947694a24">TemplatedBidiStreamingHandler</a></td></tr>
  174. <tr class="separator:a1c8a1d8a93da1dda2eb939d947694a24"><td class="memSeparator" colspan="2">&#160;</td></tr>
  175. <tr class="memitem:aeb2b23ecdb6db8b8d7e194a8e0ef5d6f"><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#aeb2b23ecdb6db8b8d7e194a8e0ef5d6f">UnknownMethodHandler</a></td></tr>
  176. <tr class="separator:aeb2b23ecdb6db8b8d7e194a8e0ef5d6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <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>
  178. <tr class="separator:a8c3fa4c066981aae114e41c3f9340144"><td class="memSeparator" colspan="2">&#160;</td></tr>
  179. <tr class="memitem:a6c5b4f4c66d254f341915982a17aac95"><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#a6c5b4f4c66d254f341915982a17aac95">::grpc::ServerContext</a></td></tr>
  180. <tr class="separator:a6c5b4f4c66d254f341915982a17aac95"><td class="memSeparator" colspan="2">&#160;</td></tr>
  181. <tr class="memitem:a4aac0a120f3498d1151460ef89ce8446"><td class="memTemplParams" colspan="2">template&lt;class InputMessage , class OutputMessage &gt; </td></tr>
  182. <tr class="memitem:a4aac0a120f3498d1151460ef89ce8446"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_status.html">Status</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_completion_queue.html#a4aac0a120f3498d1151460ef89ce8446">BlockingUnaryCall</a> (<a class="el" href="classgrpc_1_1_channel_interface.html">ChannelInterface</a> *channel, const <a class="el" href="classgrpc_1_1_rpc_method.html">RpcMethod</a> &amp;method, <a class="el" href="classgrpc_1_1_client_context.html">ClientContext</a> *context, const InputMessage &amp;request, OutputMessage *result)</td></tr>
  183. <tr class="separator:a4aac0a120f3498d1151460ef89ce8446"><td class="memSeparator" colspan="2">&#160;</td></tr>
  184. </table>
  185. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  186. <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>
  187. <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>
  188. </div><h2 class="groupheader">Member Enumeration Documentation</h2>
  189. <a class="anchor" id="a6227657fb2f29291f80cd092f9baf572"></a>
  190. <div class="memitem">
  191. <div class="memproto">
  192. <table class="memname">
  193. <tr>
  194. <td class="memname">enum <a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">grpc::CompletionQueue::NextStatus</a></td>
  195. </tr>
  196. </table>
  197. </div><div class="memdoc">
  198. <p>Tri-state return for AsyncNext: SHUTDOWN, GOT_EVENT, TIMEOUT. </p>
  199. <table class="fieldtable">
  200. <tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a6227657fb2f29291f80cd092f9baf572a5d05c1c970154dad10e5f648890c215b"></a>SHUTDOWN</em>&#160;</td><td class="fielddoc">
  201. <p>The completion queue has been shutdown. </p>
  202. </td></tr>
  203. <tr><td class="fieldname"><em><a class="anchor" id="a6227657fb2f29291f80cd092f9baf572a5d8344849fb99341b7edaa9da7b42c08"></a>GOT_EVENT</em>&#160;</td><td class="fielddoc">
  204. <p>Got a new event; <em>tag</em> will be filled in with its associated value; <em>ok</em> indicating its success. </p>
  205. </td></tr>
  206. <tr><td class="fieldname"><em><a class="anchor" id="a6227657fb2f29291f80cd092f9baf572ae88eecb45f91413b425511ee973e2e04"></a>TIMEOUT</em>&#160;</td><td class="fielddoc">
  207. <p>deadline was reached. </p>
  208. </td></tr>
  209. </table>
  210. </div>
  211. </div>
  212. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  213. <a class="anchor" id="aea987a15a475923e949934e481fe3566"></a>
  214. <div class="memitem">
  215. <div class="memproto">
  216. <table class="mlabels">
  217. <tr>
  218. <td class="mlabels-left">
  219. <table class="memname">
  220. <tr>
  221. <td class="memname">grpc::CompletionQueue::CompletionQueue </td>
  222. <td>(</td>
  223. <td class="paramname"></td><td>)</td>
  224. <td></td>
  225. </tr>
  226. </table>
  227. </td>
  228. <td class="mlabels-right">
  229. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  230. </tr>
  231. </table>
  232. </div><div class="memdoc">
  233. <p>Default constructor. </p>
  234. <p>Implicitly creates a <em>grpc_completion_queue</em> instance. </p>
  235. </div>
  236. </div>
  237. <a class="anchor" id="a081a954044215a7ca8554da4220fb369"></a>
  238. <div class="memitem">
  239. <div class="memproto">
  240. <table class="mlabels">
  241. <tr>
  242. <td class="mlabels-left">
  243. <table class="memname">
  244. <tr>
  245. <td class="memname">grpc::CompletionQueue::CompletionQueue </td>
  246. <td>(</td>
  247. <td class="paramtype"><a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *&#160;</td>
  248. <td class="paramname"><em>take</em></td><td>)</td>
  249. <td></td>
  250. </tr>
  251. </table>
  252. </td>
  253. <td class="mlabels-right">
  254. <span class="mlabels"><span class="mlabel">explicit</span></span> </td>
  255. </tr>
  256. </table>
  257. </div><div class="memdoc">
  258. <p>Wrap <em>take</em>, taking ownership of the instance. </p>
  259. <dl class="params"><dt>Parameters</dt><dd>
  260. <table class="params">
  261. <tr><td class="paramname">take</td><td>The completion queue instance to wrap. Ownership is taken. </td></tr>
  262. </table>
  263. </dd>
  264. </dl>
  265. </div>
  266. </div>
  267. <a class="anchor" id="aac07e9da5148c779cac51e1bf948c282"></a>
  268. <div class="memitem">
  269. <div class="memproto">
  270. <table class="mlabels">
  271. <tr>
  272. <td class="mlabels-left">
  273. <table class="memname">
  274. <tr>
  275. <td class="memname">grpc::CompletionQueue::~CompletionQueue </td>
  276. <td>(</td>
  277. <td class="paramname"></td><td>)</td>
  278. <td></td>
  279. </tr>
  280. </table>
  281. </td>
  282. <td class="mlabels-right">
  283. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  284. </tr>
  285. </table>
  286. </div><div class="memdoc">
  287. <p>Destructor. Destroys the owned wrapped completion queue / instance. </p>
  288. </div>
  289. </div>
  290. <h2 class="groupheader">Member Function Documentation</h2>
  291. <a class="anchor" id="a290ddf3d96e6d1d5886580e60b0602b4"></a>
  292. <div class="memitem">
  293. <div class="memproto">
  294. <div class="memtemplate">
  295. template&lt;typename T &gt; </div>
  296. <table class="mlabels">
  297. <tr>
  298. <td class="mlabels-left">
  299. <table class="memname">
  300. <tr>
  301. <td class="memname"><a class="el" href="classgrpc_1_1_completion_queue.html#a6227657fb2f29291f80cd092f9baf572">NextStatus</a> grpc::CompletionQueue::AsyncNext </td>
  302. <td>(</td>
  303. <td class="paramtype">void **&#160;</td>
  304. <td class="paramname"><em>tag</em>, </td>
  305. </tr>
  306. <tr>
  307. <td class="paramkey"></td>
  308. <td></td>
  309. <td class="paramtype">bool *&#160;</td>
  310. <td class="paramname"><em>ok</em>, </td>
  311. </tr>
  312. <tr>
  313. <td class="paramkey"></td>
  314. <td></td>
  315. <td class="paramtype">const T &amp;&#160;</td>
  316. <td class="paramname"><em>deadline</em>&#160;</td>
  317. </tr>
  318. <tr>
  319. <td></td>
  320. <td>)</td>
  321. <td></td><td></td>
  322. </tr>
  323. </table>
  324. </td>
  325. <td class="mlabels-right">
  326. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  327. </tr>
  328. </table>
  329. </div><div class="memdoc">
  330. <p>Read from the queue, blocking up to <em>deadline</em> (or the queue's shutdown). </p>
  331. <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>
  332. <dl class="params"><dt>Parameters</dt><dd>
  333. <table class="params">
  334. <tr><td class="paramname">tag[out]</td><td>Upon sucess, updated to point to the event's tag. </td></tr>
  335. <tr><td class="paramname">ok[out]</td><td>Upon sucess, true if read a regular event, false otherwise. </td></tr>
  336. <tr><td class="paramname">deadline[in]</td><td>How long to block in wait for an event.</td></tr>
  337. </table>
  338. </dd>
  339. </dl>
  340. <dl class="section return"><dt>Returns</dt><dd>The type of event read. </dd></dl>
  341. </div>
  342. </div>
  343. <a class="anchor" id="ab198302d64bdf815ece389a44fdd931f"></a>
  344. <div class="memitem">
  345. <div class="memproto">
  346. <table class="memname">
  347. <tr>
  348. <td class="memname">void grpc::CompletionQueue::CompleteAvalanching </td>
  349. <td>(</td>
  350. <td class="paramname"></td><td>)</td>
  351. <td></td>
  352. </tr>
  353. </table>
  354. </div><div class="memdoc">
  355. </div>
  356. </div>
  357. <a class="anchor" id="a999c317e716d1e74aca2eb050912302b"></a>
  358. <div class="memitem">
  359. <div class="memproto">
  360. <table class="mlabels">
  361. <tr>
  362. <td class="mlabels-left">
  363. <table class="memname">
  364. <tr>
  365. <td class="memname"><a class="el" href="grpc__types_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a>* grpc::CompletionQueue::cq </td>
  366. <td>(</td>
  367. <td class="paramname"></td><td>)</td>
  368. <td></td>
  369. </tr>
  370. </table>
  371. </td>
  372. <td class="mlabels-right">
  373. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  374. </tr>
  375. </table>
  376. </div><div class="memdoc">
  377. <p>Returns a <em>raw</em> pointer to the underlying <em>grpc_completion_queue</em> instance. </p>
  378. <dl class="section warning"><dt>Warning</dt><dd>Remember that the returned instance is owned. No transfer of owership is performed. </dd></dl>
  379. </div>
  380. </div>
  381. <a class="anchor" id="a169dd094e1347297a168750b4cb592b8"></a>
  382. <div class="memitem">
  383. <div class="memproto">
  384. <table class="mlabels">
  385. <tr>
  386. <td class="mlabels-left">
  387. <table class="memname">
  388. <tr>
  389. <td class="memname">void grpc::CompletionQueue::InitialAvalanching </td>
  390. <td>(</td>
  391. <td class="paramname"></td><td>)</td>
  392. <td></td>
  393. </tr>
  394. </table>
  395. </td>
  396. <td class="mlabels-right">
  397. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  398. </tr>
  399. </table>
  400. </div><div class="memdoc">
  401. <p>Manage state of avalanching operations : completion queue tags that trigger other completion queue operations. </p>
  402. <p>The underlying core completion queue should not really shutdown until all avalanching operations have been finalized. Note that we maintain the requirement that an avalanche registration must take place before CQ shutdown (which must be maintained elsehwere) </p>
  403. </div>
  404. </div>
  405. <a class="anchor" id="a86d9810ced694e50f7987ac90b9f8c1a"></a>
  406. <div class="memitem">
  407. <div class="memproto">
  408. <table class="mlabels">
  409. <tr>
  410. <td class="mlabels-left">
  411. <table class="memname">
  412. <tr>
  413. <td class="memname">bool grpc::CompletionQueue::Next </td>
  414. <td>(</td>
  415. <td class="paramtype">void **&#160;</td>
  416. <td class="paramname"><em>tag</em>, </td>
  417. </tr>
  418. <tr>
  419. <td class="paramkey"></td>
  420. <td></td>
  421. <td class="paramtype">bool *&#160;</td>
  422. <td class="paramname"><em>ok</em>&#160;</td>
  423. </tr>
  424. <tr>
  425. <td></td>
  426. <td>)</td>
  427. <td></td><td></td>
  428. </tr>
  429. </table>
  430. </td>
  431. <td class="mlabels-right">
  432. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  433. </tr>
  434. </table>
  435. </div><div class="memdoc">
  436. <p>Read from the queue, blocking until an event is available or the queue is shutting down. </p>
  437. <dl class="params"><dt>Parameters</dt><dd>
  438. <table class="params">
  439. <tr><td class="paramname">tag[out]</td><td>Updated to point to the read event's tag. </td></tr>
  440. <tr><td class="paramname">ok[out]</td><td>true if read a regular event, false otherwise.</td></tr>
  441. </table>
  442. </dd>
  443. </dl>
  444. <dl class="section return"><dt>Returns</dt><dd>true if read a regular event, false if the queue is shutting down. </dd></dl>
  445. </div>
  446. </div>
  447. <a class="anchor" id="a43a587573c1575511cd0df4101e8f065"></a>
  448. <div class="memitem">
  449. <div class="memproto">
  450. <table class="mlabels">
  451. <tr>
  452. <td class="mlabels-left">
  453. <table class="memname">
  454. <tr>
  455. <td class="memname">void grpc::CompletionQueue::RegisterAvalanching </td>
  456. <td>(</td>
  457. <td class="paramname"></td><td>)</td>
  458. <td></td>
  459. </tr>
  460. </table>
  461. </td>
  462. <td class="mlabels-right">
  463. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  464. </tr>
  465. </table>
  466. </div><div class="memdoc">
  467. </div>
  468. </div>
  469. <a class="anchor" id="a40efddadd9073386fbcb4f46e8325670"></a>
  470. <div class="memitem">
  471. <div class="memproto">
  472. <table class="memname">
  473. <tr>
  474. <td class="memname">void grpc::CompletionQueue::Shutdown </td>
  475. <td>(</td>
  476. <td class="paramname"></td><td>)</td>
  477. <td></td>
  478. </tr>
  479. </table>
  480. </div><div class="memdoc">
  481. <p>Request the shutdown of the queue. </p>
  482. <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. Once invoked, <em>Next</em> will start to return false and <em>AsyncNext</em> will return <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. </dd></dl>
  483. </div>
  484. </div>
  485. <h2 class="groupheader">Friends And Related Function Documentation</h2>
  486. <a class="anchor" id="ade499098cc91745c1c87147d7a7fb7bf"></a>
  487. <div class="memitem">
  488. <div class="memproto">
  489. <div class="memtemplate">
  490. template&lt;class R &gt; </div>
  491. <table class="mlabels">
  492. <tr>
  493. <td class="mlabels-left">
  494. <table class="memname">
  495. <tr>
  496. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_client_reader.html">grpc::ClientReader</a></td>
  497. </tr>
  498. </table>
  499. </td>
  500. <td class="mlabels-right">
  501. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  502. </tr>
  503. </table>
  504. </div><div class="memdoc">
  505. </div>
  506. </div>
  507. <a class="anchor" id="a6d5659aa24edba057895be774e2752ec"></a>
  508. <div class="memitem">
  509. <div class="memproto">
  510. <div class="memtemplate">
  511. template&lt;class W , class R &gt; </div>
  512. <table class="mlabels">
  513. <tr>
  514. <td class="mlabels-left">
  515. <table class="memname">
  516. <tr>
  517. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a></td>
  518. </tr>
  519. </table>
  520. </td>
  521. <td class="mlabels-right">
  522. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  523. </tr>
  524. </table>
  525. </div><div class="memdoc">
  526. </div>
  527. </div>
  528. <a class="anchor" id="a4498fada67d531d99a8642f47d746544"></a>
  529. <div class="memitem">
  530. <div class="memproto">
  531. <div class="memtemplate">
  532. template&lt;class W &gt; </div>
  533. <table class="mlabels">
  534. <tr>
  535. <td class="mlabels-left">
  536. <table class="memname">
  537. <tr>
  538. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_client_writer.html">grpc::ClientWriter</a></td>
  539. </tr>
  540. </table>
  541. </td>
  542. <td class="mlabels-right">
  543. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  544. </tr>
  545. </table>
  546. </div><div class="memdoc">
  547. </div>
  548. </div>
  549. <a class="anchor" id="a81fd5fb92dd22dced55726c389f3ea29"></a>
  550. <div class="memitem">
  551. <div class="memproto">
  552. <div class="memtemplate">
  553. template&lt;class W , class R &gt; </div>
  554. <table class="mlabels">
  555. <tr>
  556. <td class="mlabels-left">
  557. <table class="memname">
  558. <tr>
  559. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1internal_1_1_server_reader_writer_body.html">grpc::internal::ServerReaderWriterBody</a></td>
  560. </tr>
  561. </table>
  562. </td>
  563. <td class="mlabels-right">
  564. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  565. </tr>
  566. </table>
  567. </div><div class="memdoc">
  568. </div>
  569. </div>
  570. <a class="anchor" id="a8c3fa4c066981aae114e41c3f9340144"></a>
  571. <div class="memitem">
  572. <div class="memproto">
  573. <table class="mlabels">
  574. <tr>
  575. <td class="mlabels-left">
  576. <table class="memname">
  577. <tr>
  578. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server.html">grpc::Server</a></td>
  579. </tr>
  580. </table>
  581. </td>
  582. <td class="mlabels-right">
  583. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  584. </tr>
  585. </table>
  586. </div><div class="memdoc">
  587. </div>
  588. </div>
  589. <a class="anchor" id="a6c5b4f4c66d254f341915982a17aac95"></a>
  590. <div class="memitem">
  591. <div class="memproto">
  592. <table class="mlabels">
  593. <tr>
  594. <td class="mlabels-left">
  595. <table class="memname">
  596. <tr>
  597. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_context.html">grpc::ServerContext</a></td>
  598. </tr>
  599. </table>
  600. </td>
  601. <td class="mlabels-right">
  602. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  603. </tr>
  604. </table>
  605. </div><div class="memdoc">
  606. </div>
  607. </div>
  608. <a class="anchor" id="a4f20e2d049342ae00242bbc8021a44bd"></a>
  609. <div class="memitem">
  610. <div class="memproto">
  611. <div class="memtemplate">
  612. template&lt;class R &gt; </div>
  613. <table class="mlabels">
  614. <tr>
  615. <td class="mlabels-left">
  616. <table class="memname">
  617. <tr>
  618. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_reader.html">grpc::ServerReader</a></td>
  619. </tr>
  620. </table>
  621. </td>
  622. <td class="mlabels-right">
  623. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  624. </tr>
  625. </table>
  626. </div><div class="memdoc">
  627. </div>
  628. </div>
  629. <a class="anchor" id="a2f2dfa831a62c43ad5647a45080488e3"></a>
  630. <div class="memitem">
  631. <div class="memproto">
  632. <div class="memtemplate">
  633. template&lt;class W &gt; </div>
  634. <table class="mlabels">
  635. <tr>
  636. <td class="mlabels-left">
  637. <table class="memname">
  638. <tr>
  639. <td class="memname">friend class ::<a class="el" href="classgrpc_1_1_server_writer.html">grpc::ServerWriter</a></td>
  640. </tr>
  641. </table>
  642. </td>
  643. <td class="mlabels-right">
  644. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  645. </tr>
  646. </table>
  647. </div><div class="memdoc">
  648. </div>
  649. </div>
  650. <a class="anchor" id="a4aac0a120f3498d1151460ef89ce8446"></a>
  651. <div class="memitem">
  652. <div class="memproto">
  653. <div class="memtemplate">
  654. template&lt;class InputMessage , class OutputMessage &gt; </div>
  655. <table class="mlabels">
  656. <tr>
  657. <td class="mlabels-left">
  658. <table class="memname">
  659. <tr>
  660. <td class="memname"><a class="el" href="classgrpc_1_1_status.html">Status</a> BlockingUnaryCall </td>
  661. <td>(</td>
  662. <td class="paramtype"><a class="el" href="classgrpc_1_1_channel_interface.html">ChannelInterface</a> *&#160;</td>
  663. <td class="paramname"><em>channel</em>, </td>
  664. </tr>
  665. <tr>
  666. <td class="paramkey"></td>
  667. <td></td>
  668. <td class="paramtype">const <a class="el" href="classgrpc_1_1_rpc_method.html">RpcMethod</a> &amp;&#160;</td>
  669. <td class="paramname"><em>method</em>, </td>
  670. </tr>
  671. <tr>
  672. <td class="paramkey"></td>
  673. <td></td>
  674. <td class="paramtype"><a class="el" href="classgrpc_1_1_client_context.html">ClientContext</a> *&#160;</td>
  675. <td class="paramname"><em>context</em>, </td>
  676. </tr>
  677. <tr>
  678. <td class="paramkey"></td>
  679. <td></td>
  680. <td class="paramtype">const InputMessage &amp;&#160;</td>
  681. <td class="paramname"><em>request</em>, </td>
  682. </tr>
  683. <tr>
  684. <td class="paramkey"></td>
  685. <td></td>
  686. <td class="paramtype">OutputMessage *&#160;</td>
  687. <td class="paramname"><em>result</em>&#160;</td>
  688. </tr>
  689. <tr>
  690. <td></td>
  691. <td>)</td>
  692. <td></td><td></td>
  693. </tr>
  694. </table>
  695. </td>
  696. <td class="mlabels-right">
  697. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  698. </tr>
  699. </table>
  700. </div><div class="memdoc">
  701. </div>
  702. </div>
  703. <a class="anchor" id="ae11583f8aab976055b1feae895d7e12a"></a>
  704. <div class="memitem">
  705. <div class="memproto">
  706. <div class="memtemplate">
  707. template&lt;class ServiceType , class RequestType , class ResponseType &gt; </div>
  708. <table class="mlabels">
  709. <tr>
  710. <td class="mlabels-left">
  711. <table class="memname">
  712. <tr>
  713. <td class="memname">friend class <a class="el" href="classgrpc_1_1_client_streaming_handler.html">ClientStreamingHandler</a></td>
  714. </tr>
  715. </table>
  716. </td>
  717. <td class="mlabels-right">
  718. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  719. </tr>
  720. </table>
  721. </div><div class="memdoc">
  722. </div>
  723. </div>
  724. <a class="anchor" id="a76b9bb18b02084e9eaa8c9b99c668676"></a>
  725. <div class="memitem">
  726. <div class="memproto">
  727. <div class="memtemplate">
  728. template&lt;class ServiceType , class RequestType , class ResponseType &gt; </div>
  729. <table class="mlabels">
  730. <tr>
  731. <td class="mlabels-left">
  732. <table class="memname">
  733. <tr>
  734. <td class="memname">friend class <a class="el" href="classgrpc_1_1_rpc_method_handler.html">RpcMethodHandler</a></td>
  735. </tr>
  736. </table>
  737. </td>
  738. <td class="mlabels-right">
  739. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  740. </tr>
  741. </table>
  742. </div><div class="memdoc">
  743. </div>
  744. </div>
  745. <a class="anchor" id="ac2a23a31e1f8f09e2e51f09e7f50ba0c"></a>
  746. <div class="memitem">
  747. <div class="memproto">
  748. <div class="memtemplate">
  749. template&lt;class ServiceType , class RequestType , class ResponseType &gt; </div>
  750. <table class="mlabels">
  751. <tr>
  752. <td class="mlabels-left">
  753. <table class="memname">
  754. <tr>
  755. <td class="memname">friend class <a class="el" href="classgrpc_1_1_server_streaming_handler.html">ServerStreamingHandler</a></td>
  756. </tr>
  757. </table>
  758. </td>
  759. <td class="mlabels-right">
  760. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  761. </tr>
  762. </table>
  763. </div><div class="memdoc">
  764. </div>
  765. </div>
  766. <a class="anchor" id="a1c8a1d8a93da1dda2eb939d947694a24"></a>
  767. <div class="memitem">
  768. <div class="memproto">
  769. <div class="memtemplate">
  770. template&lt;class Streamer , bool WriteNeeded&gt; </div>
  771. <table class="mlabels">
  772. <tr>
  773. <td class="mlabels-left">
  774. <table class="memname">
  775. <tr>
  776. <td class="memname">friend class <a class="el" href="classgrpc_1_1_templated_bidi_streaming_handler.html">TemplatedBidiStreamingHandler</a></td>
  777. </tr>
  778. </table>
  779. </td>
  780. <td class="mlabels-right">
  781. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  782. </tr>
  783. </table>
  784. </div><div class="memdoc">
  785. </div>
  786. </div>
  787. <a class="anchor" id="aeb2b23ecdb6db8b8d7e194a8e0ef5d6f"></a>
  788. <div class="memitem">
  789. <div class="memproto">
  790. <table class="mlabels">
  791. <tr>
  792. <td class="mlabels-left">
  793. <table class="memname">
  794. <tr>
  795. <td class="memname">friend class <a class="el" href="classgrpc_1_1_unknown_method_handler.html">UnknownMethodHandler</a></td>
  796. </tr>
  797. </table>
  798. </td>
  799. <td class="mlabels-right">
  800. <span class="mlabels"><span class="mlabel">friend</span></span> </td>
  801. </tr>
  802. </table>
  803. </div><div class="memdoc">
  804. </div>
  805. </div>
  806. <hr/>The documentation for this class was generated from the following file:<ul>
  807. <li>include/grpc++/impl/codegen/<a class="el" href="impl_2codegen_2completion__queue_8h_source.html">completion_queue.h</a></li>
  808. </ul>
  809. </div><!-- contents -->
  810. <!-- start footer part -->
  811. <hr class="footer"/><address class="footer"><small>
  812. Generated on Thu Apr 27 2017 17:26:13 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
  813. <img class="footer" src="doxygen.png" alt="doxygen"/>
  814. </a> 1.8.6
  815. </small></address>
  816. </body>
  817. </html>