classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  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.13"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>GRPC C++: grpc::experimental::ServerCallbackRpcController 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.22.0</span>
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.8.13 -->
  34. <script type="text/javascript">
  35. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  36. </script>
  37. <script type="text/javascript" src="menudata.js"></script>
  38. <script type="text/javascript" src="menu.js"></script>
  39. <script type="text/javascript">
  40. $(function() {
  41. initMenu('',true,false,'search.php','Search');
  42. $(document).ready(function() { init_search(); });
  43. });
  44. </script>
  45. <div id="main-nav"></div>
  46. <!-- window showing the filter options -->
  47. <div id="MSearchSelectWindow"
  48. onmouseover="return searchBox.OnSearchSelectShow()"
  49. onmouseout="return searchBox.OnSearchSelectHide()"
  50. onkeydown="return searchBox.OnSearchSelectKey(event)">
  51. </div>
  52. <!-- iframe showing the search results (closed by default) -->
  53. <div id="MSearchResultsWindow">
  54. <iframe src="javascript:void(0)" frameborder="0"
  55. name="MSearchResults" id="MSearchResults">
  56. </iframe>
  57. </div>
  58. <div id="nav-path" class="navpath">
  59. <ul>
  60. <li class="navelem"><a class="el" href="namespacegrpc.html">grpc</a></li><li class="navelem"><a class="el" href="namespacegrpc_1_1experimental.html">experimental</a></li><li class="navelem"><a class="el" href="classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html">ServerCallbackRpcController</a></li> </ul>
  61. </div>
  62. </div><!-- top -->
  63. <div class="header">
  64. <div class="summary">
  65. <a href="#pub-methods">Public Member Functions</a> </div>
  66. <div class="headertitle">
  67. <div class="title">grpc::experimental::ServerCallbackRpcController Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
  68. </div><!--header-->
  69. <div class="contents">
  70. <p><code>#include &lt;<a class="el" href="impl_2codegen_2server__callback_8h_source.html">server_callback.h</a>&gt;</code></p>
  71. <table class="memberdecls">
  72. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  73. Public Member Functions</h2></td></tr>
  74. <tr class="memitem:a54d215fbfdcc98abf4a871bdb5262e2c"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html#a54d215fbfdcc98abf4a871bdb5262e2c">~ServerCallbackRpcController</a> ()=default</td></tr>
  75. <tr class="separator:a54d215fbfdcc98abf4a871bdb5262e2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  76. <tr class="memitem:a9babb0b7e6943ea6477d684cd1261ddc"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html#a9babb0b7e6943ea6477d684cd1261ddc">Finish</a> (<a class="el" href="classgrpc_1_1_status.html">Status</a> s)=0</td></tr>
  77. <tr class="separator:a9babb0b7e6943ea6477d684cd1261ddc"><td class="memSeparator" colspan="2">&#160;</td></tr>
  78. <tr class="memitem:aae47dc9b51d25654f3bc5bf36e91c91d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html#aae47dc9b51d25654f3bc5bf36e91c91d">SendInitialMetadata</a> (std::function&lt; void(bool)&gt;)=0</td></tr>
  79. <tr class="separator:aae47dc9b51d25654f3bc5bf36e91c91d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  80. <tr class="memitem:a9940a869da7f30cdae6dbe47bcbad53d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html#a9940a869da7f30cdae6dbe47bcbad53d">SetCancelCallback</a> (std::function&lt; void()&gt; callback)=0</td></tr>
  81. <tr class="memdesc:a9940a869da7f30cdae6dbe47bcbad53d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SetCancelCallback passes in a callback to be called when the RPC is canceled for whatever reason (streaming calls have OnCancel instead). <a href="#a9940a869da7f30cdae6dbe47bcbad53d">More...</a><br /></td></tr>
  82. <tr class="separator:a9940a869da7f30cdae6dbe47bcbad53d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  83. <tr class="memitem:a89949141e05b78997dc86c4e33962621"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html#a89949141e05b78997dc86c4e33962621">ClearCancelCallback</a> ()=0</td></tr>
  84. <tr class="separator:a89949141e05b78997dc86c4e33962621"><td class="memSeparator" colspan="2">&#160;</td></tr>
  85. <tr class="memitem:a4bc084be1aeee4efa3641cd0bcadc061"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgrpc_1_1experimental_1_1_rpc_allocator_state.html">RpcAllocatorState</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_server_callback_rpc_controller.html#a4bc084be1aeee4efa3641cd0bcadc061">GetRpcAllocatorState</a> ()=0</td></tr>
  86. <tr class="separator:a4bc084be1aeee4efa3641cd0bcadc061"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. </table>
  88. <h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  89. <a id="a54d215fbfdcc98abf4a871bdb5262e2c"></a>
  90. <h2 class="memtitle"><span class="permalink"><a href="#a54d215fbfdcc98abf4a871bdb5262e2c">&#9670;&nbsp;</a></span>~ServerCallbackRpcController()</h2>
  91. <div class="memitem">
  92. <div class="memproto">
  93. <table class="mlabels">
  94. <tr>
  95. <td class="mlabels-left">
  96. <table class="memname">
  97. <tr>
  98. <td class="memname">virtual grpc::experimental::ServerCallbackRpcController::~ServerCallbackRpcController </td>
  99. <td>(</td>
  100. <td class="paramname"></td><td>)</td>
  101. <td></td>
  102. </tr>
  103. </table>
  104. </td>
  105. <td class="mlabels-right">
  106. <span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td>
  107. </tr>
  108. </table>
  109. </div><div class="memdoc">
  110. </div>
  111. </div>
  112. <h2 class="groupheader">Member Function Documentation</h2>
  113. <a id="a89949141e05b78997dc86c4e33962621"></a>
  114. <h2 class="memtitle"><span class="permalink"><a href="#a89949141e05b78997dc86c4e33962621">&#9670;&nbsp;</a></span>ClearCancelCallback()</h2>
  115. <div class="memitem">
  116. <div class="memproto">
  117. <table class="mlabels">
  118. <tr>
  119. <td class="mlabels-left">
  120. <table class="memname">
  121. <tr>
  122. <td class="memname">virtual void grpc::experimental::ServerCallbackRpcController::ClearCancelCallback </td>
  123. <td>(</td>
  124. <td class="paramname"></td><td>)</td>
  125. <td></td>
  126. </tr>
  127. </table>
  128. </td>
  129. <td class="mlabels-right">
  130. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  131. </tr>
  132. </table>
  133. </div><div class="memdoc">
  134. </div>
  135. </div>
  136. <a id="a9babb0b7e6943ea6477d684cd1261ddc"></a>
  137. <h2 class="memtitle"><span class="permalink"><a href="#a9babb0b7e6943ea6477d684cd1261ddc">&#9670;&nbsp;</a></span>Finish()</h2>
  138. <div class="memitem">
  139. <div class="memproto">
  140. <table class="mlabels">
  141. <tr>
  142. <td class="mlabels-left">
  143. <table class="memname">
  144. <tr>
  145. <td class="memname">virtual void grpc::experimental::ServerCallbackRpcController::Finish </td>
  146. <td>(</td>
  147. <td class="paramtype"><a class="el" href="classgrpc_1_1_status.html">Status</a>&#160;</td>
  148. <td class="paramname"><em>s</em></td><td>)</td>
  149. <td></td>
  150. </tr>
  151. </table>
  152. </td>
  153. <td class="mlabels-right">
  154. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  155. </tr>
  156. </table>
  157. </div><div class="memdoc">
  158. </div>
  159. </div>
  160. <a id="a4bc084be1aeee4efa3641cd0bcadc061"></a>
  161. <h2 class="memtitle"><span class="permalink"><a href="#a4bc084be1aeee4efa3641cd0bcadc061">&#9670;&nbsp;</a></span>GetRpcAllocatorState()</h2>
  162. <div class="memitem">
  163. <div class="memproto">
  164. <table class="mlabels">
  165. <tr>
  166. <td class="mlabels-left">
  167. <table class="memname">
  168. <tr>
  169. <td class="memname">virtual <a class="el" href="classgrpc_1_1experimental_1_1_rpc_allocator_state.html">RpcAllocatorState</a>* grpc::experimental::ServerCallbackRpcController::GetRpcAllocatorState </td>
  170. <td>(</td>
  171. <td class="paramname"></td><td>)</td>
  172. <td></td>
  173. </tr>
  174. </table>
  175. </td>
  176. <td class="mlabels-right">
  177. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  178. </tr>
  179. </table>
  180. </div><div class="memdoc">
  181. </div>
  182. </div>
  183. <a id="aae47dc9b51d25654f3bc5bf36e91c91d"></a>
  184. <h2 class="memtitle"><span class="permalink"><a href="#aae47dc9b51d25654f3bc5bf36e91c91d">&#9670;&nbsp;</a></span>SendInitialMetadata()</h2>
  185. <div class="memitem">
  186. <div class="memproto">
  187. <table class="mlabels">
  188. <tr>
  189. <td class="mlabels-left">
  190. <table class="memname">
  191. <tr>
  192. <td class="memname">virtual void grpc::experimental::ServerCallbackRpcController::SendInitialMetadata </td>
  193. <td>(</td>
  194. <td class="paramtype">std::function&lt; void(bool)&gt;&#160;</td>
  195. <td class="paramname"></td><td>)</td>
  196. <td></td>
  197. </tr>
  198. </table>
  199. </td>
  200. <td class="mlabels-right">
  201. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  202. </tr>
  203. </table>
  204. </div><div class="memdoc">
  205. </div>
  206. </div>
  207. <a id="a9940a869da7f30cdae6dbe47bcbad53d"></a>
  208. <h2 class="memtitle"><span class="permalink"><a href="#a9940a869da7f30cdae6dbe47bcbad53d">&#9670;&nbsp;</a></span>SetCancelCallback()</h2>
  209. <div class="memitem">
  210. <div class="memproto">
  211. <table class="mlabels">
  212. <tr>
  213. <td class="mlabels-left">
  214. <table class="memname">
  215. <tr>
  216. <td class="memname">virtual void grpc::experimental::ServerCallbackRpcController::SetCancelCallback </td>
  217. <td>(</td>
  218. <td class="paramtype">std::function&lt; void()&gt;&#160;</td>
  219. <td class="paramname"><em>callback</em></td><td>)</td>
  220. <td></td>
  221. </tr>
  222. </table>
  223. </td>
  224. <td class="mlabels-right">
  225. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  226. </tr>
  227. </table>
  228. </div><div class="memdoc">
  229. <p>SetCancelCallback passes in a callback to be called when the RPC is canceled for whatever reason (streaming calls have OnCancel instead). </p>
  230. <p>This is an advanced and uncommon use with several important restrictions. This function may not be called more than once on the same RPC.</p>
  231. <p>If code calls SetCancelCallback on an RPC, it must also call ClearCancelCallback before calling Finish on the RPC controller. That method makes sure that no cancellation callback is executed for this RPC beyond the point of its return. ClearCancelCallback may be called even if SetCancelCallback was not called for this RPC, and it may be called multiple times. It <em>must</em> be called if SetCancelCallback was called for this RPC.</p>
  232. <p>The callback should generally be lightweight and nonblocking and primarily concerned with clearing application state related to the RPC or causing operations (such as cancellations) to happen on dependent RPCs.</p>
  233. <p>If the RPC is already canceled at the time that SetCancelCallback is called, the callback is invoked immediately.</p>
  234. <p>The cancellation callback may be executed concurrently with the method handler that invokes it but will certainly not issue or execute after the return of ClearCancelCallback. If ClearCancelCallback is invoked while the callback is already executing, the callback will complete its execution before ClearCancelCallback takes effect.</p>
  235. <p>To preserve the orderings described above, the callback may be called under a lock that is also used for ClearCancelCallback and <a class="el" href="classgrpc__impl_1_1_server_context.html#ac0fe2a9425b18b724f910adbe0e3c17a" title="IsCancelled is always safe to call when using sync or callback API. ">ServerContext::IsCancelled</a>, so the callback CANNOT call either of those operations on this RPC or any other function that causes those operations to be called before the callback completes. </p>
  236. </div>
  237. </div>
  238. <hr/>The documentation for this class was generated from the following file:<ul>
  239. <li>include/grpcpp/impl/codegen/<a class="el" href="impl_2codegen_2server__callback_8h_source.html">server_callback.h</a></li>
  240. </ul>
  241. </div><!-- contents -->
  242. <!-- start footer part -->
  243. <hr class="footer"/><address class="footer"><small>
  244. Generated on Wed Jul 3 2019 14:51:27 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
  245. <img class="footer" src="doxygen.png" alt="doxygen"/>
  246. </a> 1.8.13
  247. </small></address>
  248. </body>
  249. </html>