classgrpc_1_1experimental_1_1_interceptor_batch_methods.html 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725
  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::experimental::InterceptorBatchMethods 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="namespacegrpc_1_1experimental.html">experimental</a></li><li class="navelem"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html">InterceptorBatchMethods</a></li> </ul>
  64. </div>
  65. </div><!-- top -->
  66. <div class="header">
  67. <div class="summary">
  68. <a href="#pub-methods">Public Member Functions</a> </div>
  69. <div class="headertitle">
  70. <div class="title">grpc::experimental::InterceptorBatchMethods Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
  71. </div><!--header-->
  72. <div class="contents">
  73. <p>Class that is passed as an argument to the <em>Intercept</em> method of the application's <em><a class="el" href="classgrpc_1_1experimental_1_1_interceptor.html" title="Interface for an interceptor.">Interceptor</a></em> interface implementation.
  74. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#details">More...</a></p>
  75. <p><code>#include &lt;<a class="el" href="impl_2codegen_2interceptor_8h_source.html">interceptor.h</a>&gt;</code></p>
  76. <table class="memberdecls">
  77. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  78. Public Member Functions</h2></td></tr>
  79. <tr class="memitem:a55f28c464881763e44c003ad945395a5"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a55f28c464881763e44c003ad945395a5">~InterceptorBatchMethods</a> ()</td></tr>
  80. <tr class="separator:a55f28c464881763e44c003ad945395a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  81. <tr class="memitem:a68758f2d57120220e53bcc6ad1bc8c71"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a68758f2d57120220e53bcc6ad1bc8c71">QueryInterceptionHookPoint</a> (<a class="el" href="namespacegrpc_1_1experimental.html#a03d3481b2c4146f53e90966d4a0fd8a1">InterceptionHookPoints</a> type)=0</td></tr>
  82. <tr class="memdesc:a68758f2d57120220e53bcc6ad1bc8c71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Determine whether the current batch has an interception hook point of type <em>type</em>. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a68758f2d57120220e53bcc6ad1bc8c71">More...</a><br /></td></tr>
  83. <tr class="separator:a68758f2d57120220e53bcc6ad1bc8c71"><td class="memSeparator" colspan="2">&#160;</td></tr>
  84. <tr class="memitem:a640e84ae950a57b875b38de6ef9d87fe"><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_interceptor_batch_methods.html#a640e84ae950a57b875b38de6ef9d87fe">Proceed</a> ()=0</td></tr>
  85. <tr class="memdesc:a640e84ae950a57b875b38de6ef9d87fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal that the interceptor is done intercepting the current batch of the RPC. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a640e84ae950a57b875b38de6ef9d87fe">More...</a><br /></td></tr>
  86. <tr class="separator:a640e84ae950a57b875b38de6ef9d87fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
  87. <tr class="memitem:aea0a9629eb5c5aa8760d5a02fd2ef37f"><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_interceptor_batch_methods.html#aea0a9629eb5c5aa8760d5a02fd2ef37f">Hijack</a> ()=0</td></tr>
  88. <tr class="memdesc:aea0a9629eb5c5aa8760d5a02fd2ef37f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicate that the interceptor has hijacked the RPC (only valid if the batch contains send_initial_metadata on the client side). <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#aea0a9629eb5c5aa8760d5a02fd2ef37f">More...</a><br /></td></tr>
  89. <tr class="separator:aea0a9629eb5c5aa8760d5a02fd2ef37f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  90. <tr class="memitem:a1fa1f2c7437b6d49ef68af8e772625e4"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgrpc_1_1_byte_buffer.html">ByteBuffer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a1fa1f2c7437b6d49ef68af8e772625e4">GetSerializedSendMessage</a> ()=0</td></tr>
  91. <tr class="memdesc:a1fa1f2c7437b6d49ef68af8e772625e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Send Message Methods GetSerializedSendMessage and GetSendMessage/ModifySendMessage are the available methods to view and modify the request payload. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a1fa1f2c7437b6d49ef68af8e772625e4">More...</a><br /></td></tr>
  92. <tr class="separator:a1fa1f2c7437b6d49ef68af8e772625e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  93. <tr class="memitem:a416033d4bab32f333d54f3da9a21b68b"><td class="memItemLeft" align="right" valign="top">virtual const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a416033d4bab32f333d54f3da9a21b68b">GetSendMessage</a> ()=0</td></tr>
  94. <tr class="memdesc:a416033d4bab32f333d54f3da9a21b68b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a non-modifiable pointer to the non-serialized form of the message to be sent. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a416033d4bab32f333d54f3da9a21b68b">More...</a><br /></td></tr>
  95. <tr class="separator:a416033d4bab32f333d54f3da9a21b68b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  96. <tr class="memitem:a6be8b4eecdd2ddf3913369dd3b275d43"><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_interceptor_batch_methods.html#a6be8b4eecdd2ddf3913369dd3b275d43">ModifySendMessage</a> (const void *message)=0</td></tr>
  97. <tr class="memdesc:a6be8b4eecdd2ddf3913369dd3b275d43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrites the message to be sent with <em>message</em>. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a6be8b4eecdd2ddf3913369dd3b275d43">More...</a><br /></td></tr>
  98. <tr class="separator:a6be8b4eecdd2ddf3913369dd3b275d43"><td class="memSeparator" colspan="2">&#160;</td></tr>
  99. <tr class="memitem:a9381ac548c5ac6ae17af025f9261f9ef"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a9381ac548c5ac6ae17af025f9261f9ef">GetSendMessageStatus</a> ()=0</td></tr>
  100. <tr class="memdesc:a9381ac548c5ac6ae17af025f9261f9ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the SEND MESSAGE op succeeded. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a9381ac548c5ac6ae17af025f9261f9ef">More...</a><br /></td></tr>
  101. <tr class="separator:a9381ac548c5ac6ae17af025f9261f9ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
  102. <tr class="memitem:a82e59b73b516366438ee6c01d4198d4b"><td class="memItemLeft" align="right" valign="top">virtual std::multimap&lt; std::string, std::string &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a82e59b73b516366438ee6c01d4198d4b">GetSendInitialMetadata</a> ()=0</td></tr>
  103. <tr class="memdesc:a82e59b73b516366438ee6c01d4198d4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a modifiable multimap of the initial metadata to be sent. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a82e59b73b516366438ee6c01d4198d4b">More...</a><br /></td></tr>
  104. <tr class="separator:a82e59b73b516366438ee6c01d4198d4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105. <tr class="memitem:a2792ab543f8b46262ee6e69289b436ab"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgrpc_1_1_status.html">Status</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a2792ab543f8b46262ee6e69289b436ab">GetSendStatus</a> ()=0</td></tr>
  106. <tr class="memdesc:a2792ab543f8b46262ee6e69289b436ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status to be sent. Valid for PRE_SEND_STATUS interceptions. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a2792ab543f8b46262ee6e69289b436ab">More...</a><br /></td></tr>
  107. <tr class="separator:a2792ab543f8b46262ee6e69289b436ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108. <tr class="memitem:a541b5d8a424e703d562a32c27488ccf2"><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_interceptor_batch_methods.html#a541b5d8a424e703d562a32c27488ccf2">ModifySendStatus</a> (const <a class="el" href="classgrpc_1_1_status.html">Status</a> &amp;status)=0</td></tr>
  109. <tr class="memdesc:a541b5d8a424e703d562a32c27488ccf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Overwrites the status with <em>status</em>. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a541b5d8a424e703d562a32c27488ccf2">More...</a><br /></td></tr>
  110. <tr class="separator:a541b5d8a424e703d562a32c27488ccf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  111. <tr class="memitem:a22943cffc568734c939df8157b10f4f9"><td class="memItemLeft" align="right" valign="top">virtual std::multimap&lt; std::string, std::string &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a22943cffc568734c939df8157b10f4f9">GetSendTrailingMetadata</a> ()=0</td></tr>
  112. <tr class="memdesc:a22943cffc568734c939df8157b10f4f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a modifiable multimap of the trailing metadata to be sent. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a22943cffc568734c939df8157b10f4f9">More...</a><br /></td></tr>
  113. <tr class="separator:a22943cffc568734c939df8157b10f4f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  114. <tr class="memitem:a3b267515d6afd29afadba454aa913505"><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_interceptor_batch_methods.html#a3b267515d6afd29afadba454aa913505">GetRecvMessage</a> ()=0</td></tr>
  115. <tr class="memdesc:a3b267515d6afd29afadba454aa913505"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the modifiable received message. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a3b267515d6afd29afadba454aa913505">More...</a><br /></td></tr>
  116. <tr class="separator:a3b267515d6afd29afadba454aa913505"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117. <tr class="memitem:a8f123307653591e63ded55d8cea9ad8b"><td class="memItemLeft" align="right" valign="top">virtual std::multimap&lt; <a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a>, <a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a8f123307653591e63ded55d8cea9ad8b">GetRecvInitialMetadata</a> ()=0</td></tr>
  118. <tr class="memdesc:a8f123307653591e63ded55d8cea9ad8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a modifiable multimap of the received initial metadata. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a8f123307653591e63ded55d8cea9ad8b">More...</a><br /></td></tr>
  119. <tr class="separator:a8f123307653591e63ded55d8cea9ad8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  120. <tr class="memitem:ac60304da4f2c2737bcc259bac19e858d"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgrpc_1_1_status.html">Status</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#ac60304da4f2c2737bcc259bac19e858d">GetRecvStatus</a> ()=0</td></tr>
  121. <tr class="memdesc:ac60304da4f2c2737bcc259bac19e858d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a modifiable view of the received status on PRE_RECV_STATUS and POST_RECV_STATUS interceptions; nullptr if not valid. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#ac60304da4f2c2737bcc259bac19e858d">More...</a><br /></td></tr>
  122. <tr class="separator:ac60304da4f2c2737bcc259bac19e858d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  123. <tr class="memitem:a661e6372647f1639783b046d728599fa"><td class="memItemLeft" align="right" valign="top">virtual std::multimap&lt; <a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a>, <a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a> &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a661e6372647f1639783b046d728599fa">GetRecvTrailingMetadata</a> ()=0</td></tr>
  124. <tr class="memdesc:a661e6372647f1639783b046d728599fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a modifiable multimap of the received trailing metadata on PRE_RECV_STATUS and POST_RECV_STATUS interceptions; nullptr if not valid. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a661e6372647f1639783b046d728599fa">More...</a><br /></td></tr>
  125. <tr class="separator:a661e6372647f1639783b046d728599fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. <tr class="memitem:a993f12c0d1a9e5dce038b66c58728e82"><td class="memItemLeft" align="right" valign="top">virtual std::unique_ptr&lt; <a class="el" href="classgrpc_1_1_channel_interface.html">ChannelInterface</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a993f12c0d1a9e5dce038b66c58728e82">GetInterceptedChannel</a> ()=0</td></tr>
  127. <tr class="memdesc:a993f12c0d1a9e5dce038b66c58728e82"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets an intercepted channel. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a993f12c0d1a9e5dce038b66c58728e82">More...</a><br /></td></tr>
  128. <tr class="separator:a993f12c0d1a9e5dce038b66c58728e82"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129. <tr class="memitem:a4d26f52897117e3ea5b6c609a3d4bf91"><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_interceptor_batch_methods.html#a4d26f52897117e3ea5b6c609a3d4bf91">FailHijackedRecvMessage</a> ()=0</td></tr>
  130. <tr class="memdesc:a4d26f52897117e3ea5b6c609a3d4bf91"><td class="mdescLeft">&#160;</td><td class="mdescRight">On a hijacked RPC, an interceptor can decide to fail a PRE_RECV_MESSAGE op. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a4d26f52897117e3ea5b6c609a3d4bf91">More...</a><br /></td></tr>
  131. <tr class="separator:a4d26f52897117e3ea5b6c609a3d4bf91"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132. <tr class="memitem:a7c129ea7ec110d1c9f5e1c7b8f274fe7"><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_interceptor_batch_methods.html#a7c129ea7ec110d1c9f5e1c7b8f274fe7">FailHijackedSendMessage</a> ()=0</td></tr>
  133. <tr class="memdesc:a7c129ea7ec110d1c9f5e1c7b8f274fe7"><td class="mdescLeft">&#160;</td><td class="mdescRight">On a hijacked RPC/ to-be hijacked RPC, this can be called to fail a SEND MESSAGE op. <a href="classgrpc_1_1experimental_1_1_interceptor_batch_methods.html#a7c129ea7ec110d1c9f5e1c7b8f274fe7">More...</a><br /></td></tr>
  134. <tr class="separator:a7c129ea7ec110d1c9f5e1c7b8f274fe7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135. </table>
  136. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  137. <div class="textblock"><p>Class that is passed as an argument to the <em>Intercept</em> method of the application's <em><a class="el" href="classgrpc_1_1experimental_1_1_interceptor.html" title="Interface for an interceptor.">Interceptor</a></em> interface implementation. </p>
  138. <p>It has five purposes:</p><ol type="1">
  139. <li>Indicate which hook points are present at a specific interception</li>
  140. <li>Allow an interceptor to inform the library that an RPC should continue to the next stage of its processing (which may be another interceptor or the main path of the library)</li>
  141. <li>Allow an interceptor to hijack the processing of the RPC (only for client-side RPCs with PRE_SEND_INITIAL_METADATA) so that it does not proceed with normal processing beyond that stage</li>
  142. <li>Access the relevant fields of an RPC at each interception point</li>
  143. <li>Set some fields of an RPC at each interception point, when possible </li>
  144. </ol>
  145. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  146. <a id="a55f28c464881763e44c003ad945395a5"></a>
  147. <h2 class="memtitle"><span class="permalink"><a href="#a55f28c464881763e44c003ad945395a5">&#9670;&nbsp;</a></span>~InterceptorBatchMethods()</h2>
  148. <div class="memitem">
  149. <div class="memproto">
  150. <table class="mlabels">
  151. <tr>
  152. <td class="mlabels-left">
  153. <table class="memname">
  154. <tr>
  155. <td class="memname">virtual grpc::experimental::InterceptorBatchMethods::~InterceptorBatchMethods </td>
  156. <td>(</td>
  157. <td class="paramname"></td><td>)</td>
  158. <td></td>
  159. </tr>
  160. </table>
  161. </td>
  162. <td class="mlabels-right">
  163. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  164. </tr>
  165. </table>
  166. </div><div class="memdoc">
  167. </div>
  168. </div>
  169. <h2 class="groupheader">Member Function Documentation</h2>
  170. <a id="a4d26f52897117e3ea5b6c609a3d4bf91"></a>
  171. <h2 class="memtitle"><span class="permalink"><a href="#a4d26f52897117e3ea5b6c609a3d4bf91">&#9670;&nbsp;</a></span>FailHijackedRecvMessage()</h2>
  172. <div class="memitem">
  173. <div class="memproto">
  174. <table class="mlabels">
  175. <tr>
  176. <td class="mlabels-left">
  177. <table class="memname">
  178. <tr>
  179. <td class="memname">virtual void grpc::experimental::InterceptorBatchMethods::FailHijackedRecvMessage </td>
  180. <td>(</td>
  181. <td class="paramname"></td><td>)</td>
  182. <td></td>
  183. </tr>
  184. </table>
  185. </td>
  186. <td class="mlabels-right">
  187. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  188. </tr>
  189. </table>
  190. </div><div class="memdoc">
  191. <p>On a hijacked RPC, an interceptor can decide to fail a PRE_RECV_MESSAGE op. </p>
  192. <p>This would be a signal to the reader that there will be no more messages, or the stream has failed or been cancelled. </p>
  193. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a52b92d9e8e32f32ce97b4a8f235f595d">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a858b697d346ec52019f43b4beaa64f5b">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  194. </div>
  195. </div>
  196. <a id="a7c129ea7ec110d1c9f5e1c7b8f274fe7"></a>
  197. <h2 class="memtitle"><span class="permalink"><a href="#a7c129ea7ec110d1c9f5e1c7b8f274fe7">&#9670;&nbsp;</a></span>FailHijackedSendMessage()</h2>
  198. <div class="memitem">
  199. <div class="memproto">
  200. <table class="mlabels">
  201. <tr>
  202. <td class="mlabels-left">
  203. <table class="memname">
  204. <tr>
  205. <td class="memname">virtual void grpc::experimental::InterceptorBatchMethods::FailHijackedSendMessage </td>
  206. <td>(</td>
  207. <td class="paramname"></td><td>)</td>
  208. <td></td>
  209. </tr>
  210. </table>
  211. </td>
  212. <td class="mlabels-right">
  213. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  214. </tr>
  215. </table>
  216. </div><div class="memdoc">
  217. <p>On a hijacked RPC/ to-be hijacked RPC, this can be called to fail a SEND MESSAGE op. </p>
  218. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a08cd8fac7808b9a392a5382a13e8e01e">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#aba5ce9ff94d19be8152dfca04dfd8c9c">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  219. </div>
  220. </div>
  221. <a id="a993f12c0d1a9e5dce038b66c58728e82"></a>
  222. <h2 class="memtitle"><span class="permalink"><a href="#a993f12c0d1a9e5dce038b66c58728e82">&#9670;&nbsp;</a></span>GetInterceptedChannel()</h2>
  223. <div class="memitem">
  224. <div class="memproto">
  225. <table class="mlabels">
  226. <tr>
  227. <td class="mlabels-left">
  228. <table class="memname">
  229. <tr>
  230. <td class="memname">virtual std::unique_ptr&lt;<a class="el" href="classgrpc_1_1_channel_interface.html">ChannelInterface</a>&gt; grpc::experimental::InterceptorBatchMethods::GetInterceptedChannel </td>
  231. <td>(</td>
  232. <td class="paramname"></td><td>)</td>
  233. <td></td>
  234. </tr>
  235. </table>
  236. </td>
  237. <td class="mlabels-right">
  238. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  239. </tr>
  240. </table>
  241. </div><div class="memdoc">
  242. <p>Gets an intercepted channel. </p>
  243. <p>When a call is started on this interceptor, only interceptors after the current interceptor are created from the factory objects registered with the channel. This allows calls to be started from interceptors without infinite regress through the interceptor list. </p>
  244. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a5103bca2f3826d43182436e3e736bd7b">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a1e23ff14548292c4ae13e383d0232800">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  245. </div>
  246. </div>
  247. <a id="a8f123307653591e63ded55d8cea9ad8b"></a>
  248. <h2 class="memtitle"><span class="permalink"><a href="#a8f123307653591e63ded55d8cea9ad8b">&#9670;&nbsp;</a></span>GetRecvInitialMetadata()</h2>
  249. <div class="memitem">
  250. <div class="memproto">
  251. <table class="mlabels">
  252. <tr>
  253. <td class="mlabels-left">
  254. <table class="memname">
  255. <tr>
  256. <td class="memname">virtual std::multimap&lt;<a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a>, <a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a>&gt;* grpc::experimental::InterceptorBatchMethods::GetRecvInitialMetadata </td>
  257. <td>(</td>
  258. <td class="paramname"></td><td>)</td>
  259. <td></td>
  260. </tr>
  261. </table>
  262. </td>
  263. <td class="mlabels-right">
  264. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  265. </tr>
  266. </table>
  267. </div><div class="memdoc">
  268. <p>Returns a modifiable multimap of the received initial metadata. </p>
  269. <p>Valid for PRE_RECV_INITIAL_METADATA and POST_RECV_INITIAL_METADATA interceptions; nullptr if not valid </p>
  270. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a1f7cb8407197de0a0d179ed94d1d5b25">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a74068ad08786cda92a3c53d8561c6646">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  271. </div>
  272. </div>
  273. <a id="a3b267515d6afd29afadba454aa913505"></a>
  274. <h2 class="memtitle"><span class="permalink"><a href="#a3b267515d6afd29afadba454aa913505">&#9670;&nbsp;</a></span>GetRecvMessage()</h2>
  275. <div class="memitem">
  276. <div class="memproto">
  277. <table class="mlabels">
  278. <tr>
  279. <td class="mlabels-left">
  280. <table class="memname">
  281. <tr>
  282. <td class="memname">virtual void* grpc::experimental::InterceptorBatchMethods::GetRecvMessage </td>
  283. <td>(</td>
  284. <td class="paramname"></td><td>)</td>
  285. <td></td>
  286. </tr>
  287. </table>
  288. </td>
  289. <td class="mlabels-right">
  290. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  291. </tr>
  292. </table>
  293. </div><div class="memdoc">
  294. <p>Returns a pointer to the modifiable received message. </p>
  295. <p>Note that the message is already deserialized but the type is not set; the interceptor should static_cast to the appropriate type before using it. This is valid for PRE_RECV_MESSAGE and POST_RECV_MESSAGE interceptions; nullptr for not valid </p>
  296. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a12909a13d7cecdceeffc794c06ff6896">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a4f8a66ad270d639eec1228205c4bc812">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  297. </div>
  298. </div>
  299. <a id="ac60304da4f2c2737bcc259bac19e858d"></a>
  300. <h2 class="memtitle"><span class="permalink"><a href="#ac60304da4f2c2737bcc259bac19e858d">&#9670;&nbsp;</a></span>GetRecvStatus()</h2>
  301. <div class="memitem">
  302. <div class="memproto">
  303. <table class="mlabels">
  304. <tr>
  305. <td class="mlabels-left">
  306. <table class="memname">
  307. <tr>
  308. <td class="memname">virtual <a class="el" href="classgrpc_1_1_status.html">Status</a>* grpc::experimental::InterceptorBatchMethods::GetRecvStatus </td>
  309. <td>(</td>
  310. <td class="paramname"></td><td>)</td>
  311. <td></td>
  312. </tr>
  313. </table>
  314. </td>
  315. <td class="mlabels-right">
  316. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  317. </tr>
  318. </table>
  319. </div><div class="memdoc">
  320. <p>Returns a modifiable view of the received status on PRE_RECV_STATUS and POST_RECV_STATUS interceptions; nullptr if not valid. </p>
  321. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a3ce51320fa84af6b2a00815305257b4e">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a37e9cdd09aa90c5c54eb5ba3387d179d">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  322. </div>
  323. </div>
  324. <a id="a661e6372647f1639783b046d728599fa"></a>
  325. <h2 class="memtitle"><span class="permalink"><a href="#a661e6372647f1639783b046d728599fa">&#9670;&nbsp;</a></span>GetRecvTrailingMetadata()</h2>
  326. <div class="memitem">
  327. <div class="memproto">
  328. <table class="mlabels">
  329. <tr>
  330. <td class="mlabels-left">
  331. <table class="memname">
  332. <tr>
  333. <td class="memname">virtual std::multimap&lt;<a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a>, <a class="el" href="classgrpc_1_1string__ref.html">grpc::string_ref</a>&gt;* grpc::experimental::InterceptorBatchMethods::GetRecvTrailingMetadata </td>
  334. <td>(</td>
  335. <td class="paramname"></td><td>)</td>
  336. <td></td>
  337. </tr>
  338. </table>
  339. </td>
  340. <td class="mlabels-right">
  341. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  342. </tr>
  343. </table>
  344. </div><div class="memdoc">
  345. <p>Returns a modifiable multimap of the received trailing metadata on PRE_RECV_STATUS and POST_RECV_STATUS interceptions; nullptr if not valid. </p>
  346. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a4dc85e0f1a3cdb0c95f04994d443f81f">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#afe82d67dfd4604d3e97c5fa12392058d">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  347. </div>
  348. </div>
  349. <a id="a82e59b73b516366438ee6c01d4198d4b"></a>
  350. <h2 class="memtitle"><span class="permalink"><a href="#a82e59b73b516366438ee6c01d4198d4b">&#9670;&nbsp;</a></span>GetSendInitialMetadata()</h2>
  351. <div class="memitem">
  352. <div class="memproto">
  353. <table class="mlabels">
  354. <tr>
  355. <td class="mlabels-left">
  356. <table class="memname">
  357. <tr>
  358. <td class="memname">virtual std::multimap&lt;std::string, std::string&gt;* grpc::experimental::InterceptorBatchMethods::GetSendInitialMetadata </td>
  359. <td>(</td>
  360. <td class="paramname"></td><td>)</td>
  361. <td></td>
  362. </tr>
  363. </table>
  364. </td>
  365. <td class="mlabels-right">
  366. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  367. </tr>
  368. </table>
  369. </div><div class="memdoc">
  370. <p>Returns a modifiable multimap of the initial metadata to be sent. </p>
  371. <p>Valid for PRE_SEND_INITIAL_METADATA interceptions. A value of nullptr indicates that this field is not valid. </p>
  372. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a60e36e8c2f163923c1a355ce79b37cda">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a80f87ee0eb65086c6e7afd350ec2e1b6">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  373. </div>
  374. </div>
  375. <a id="a416033d4bab32f333d54f3da9a21b68b"></a>
  376. <h2 class="memtitle"><span class="permalink"><a href="#a416033d4bab32f333d54f3da9a21b68b">&#9670;&nbsp;</a></span>GetSendMessage()</h2>
  377. <div class="memitem">
  378. <div class="memproto">
  379. <table class="mlabels">
  380. <tr>
  381. <td class="mlabels-left">
  382. <table class="memname">
  383. <tr>
  384. <td class="memname">virtual const void* grpc::experimental::InterceptorBatchMethods::GetSendMessage </td>
  385. <td>(</td>
  386. <td class="paramname"></td><td>)</td>
  387. <td></td>
  388. </tr>
  389. </table>
  390. </td>
  391. <td class="mlabels-right">
  392. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  393. </tr>
  394. </table>
  395. </div><div class="memdoc">
  396. <p>Returns a non-modifiable pointer to the non-serialized form of the message to be sent. </p>
  397. <p>Valid for PRE_SEND_MESSAGE interceptions. A return value of nullptr indicates that this field is not valid. </p>
  398. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a82b2071f39325cee162a7e98cf384c7f">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a7953731b656ad92ebbf7ec89d087038a">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  399. </div>
  400. </div>
  401. <a id="a9381ac548c5ac6ae17af025f9261f9ef"></a>
  402. <h2 class="memtitle"><span class="permalink"><a href="#a9381ac548c5ac6ae17af025f9261f9ef">&#9670;&nbsp;</a></span>GetSendMessageStatus()</h2>
  403. <div class="memitem">
  404. <div class="memproto">
  405. <table class="mlabels">
  406. <tr>
  407. <td class="mlabels-left">
  408. <table class="memname">
  409. <tr>
  410. <td class="memname">virtual bool grpc::experimental::InterceptorBatchMethods::GetSendMessageStatus </td>
  411. <td>(</td>
  412. <td class="paramname"></td><td>)</td>
  413. <td></td>
  414. </tr>
  415. </table>
  416. </td>
  417. <td class="mlabels-right">
  418. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  419. </tr>
  420. </table>
  421. </div><div class="memdoc">
  422. <p>Checks whether the SEND MESSAGE op succeeded. </p>
  423. <p>Valid for POST_SEND_MESSAGE interceptions. </p>
  424. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a683bb3299153d8f662c0ac8ebfce8024">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a89834fc2a165c9b2231382dc986c66ae">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  425. </div>
  426. </div>
  427. <a id="a2792ab543f8b46262ee6e69289b436ab"></a>
  428. <h2 class="memtitle"><span class="permalink"><a href="#a2792ab543f8b46262ee6e69289b436ab">&#9670;&nbsp;</a></span>GetSendStatus()</h2>
  429. <div class="memitem">
  430. <div class="memproto">
  431. <table class="mlabels">
  432. <tr>
  433. <td class="mlabels-left">
  434. <table class="memname">
  435. <tr>
  436. <td class="memname">virtual <a class="el" href="classgrpc_1_1_status.html">Status</a> grpc::experimental::InterceptorBatchMethods::GetSendStatus </td>
  437. <td>(</td>
  438. <td class="paramname"></td><td>)</td>
  439. <td></td>
  440. </tr>
  441. </table>
  442. </td>
  443. <td class="mlabels-right">
  444. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  445. </tr>
  446. </table>
  447. </div><div class="memdoc">
  448. <p>Returns the status to be sent. Valid for PRE_SEND_STATUS interceptions. </p>
  449. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a847d3514928d17070c30430fcbf9630c">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a2973701f908f54161019ab84451a08b5">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  450. </div>
  451. </div>
  452. <a id="a22943cffc568734c939df8157b10f4f9"></a>
  453. <h2 class="memtitle"><span class="permalink"><a href="#a22943cffc568734c939df8157b10f4f9">&#9670;&nbsp;</a></span>GetSendTrailingMetadata()</h2>
  454. <div class="memitem">
  455. <div class="memproto">
  456. <table class="mlabels">
  457. <tr>
  458. <td class="mlabels-left">
  459. <table class="memname">
  460. <tr>
  461. <td class="memname">virtual std::multimap&lt;std::string, std::string&gt;* grpc::experimental::InterceptorBatchMethods::GetSendTrailingMetadata </td>
  462. <td>(</td>
  463. <td class="paramname"></td><td>)</td>
  464. <td></td>
  465. </tr>
  466. </table>
  467. </td>
  468. <td class="mlabels-right">
  469. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  470. </tr>
  471. </table>
  472. </div><div class="memdoc">
  473. <p>Returns a modifiable multimap of the trailing metadata to be sent. </p>
  474. <p>Valid for PRE_SEND_STATUS interceptions. A value of nullptr indicates that this field is not valid. </p>
  475. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a6e366de05bac82cccbd0de4edb5ca436">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a48dc217bce0e86049925189c6b2f5d9e">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  476. </div>
  477. </div>
  478. <a id="a1fa1f2c7437b6d49ef68af8e772625e4"></a>
  479. <h2 class="memtitle"><span class="permalink"><a href="#a1fa1f2c7437b6d49ef68af8e772625e4">&#9670;&nbsp;</a></span>GetSerializedSendMessage()</h2>
  480. <div class="memitem">
  481. <div class="memproto">
  482. <table class="mlabels">
  483. <tr>
  484. <td class="mlabels-left">
  485. <table class="memname">
  486. <tr>
  487. <td class="memname">virtual <a class="el" href="classgrpc_1_1_byte_buffer.html">ByteBuffer</a>* grpc::experimental::InterceptorBatchMethods::GetSerializedSendMessage </td>
  488. <td>(</td>
  489. <td class="paramname"></td><td>)</td>
  490. <td></td>
  491. </tr>
  492. </table>
  493. </td>
  494. <td class="mlabels-right">
  495. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  496. </tr>
  497. </table>
  498. </div><div class="memdoc">
  499. <p>Send Message Methods GetSerializedSendMessage and GetSendMessage/ModifySendMessage are the available methods to view and modify the request payload. </p>
  500. <p>An interceptor can access the payload in either serialized form or non-serialized form but not both at the same time. gRPC performs serialization in a lazy manner, which means that a call to GetSerializedSendMessage will result in a serialization operation if the payload stored is not in the serialized form already; the non-serialized form will be lost and GetSendMessage will no longer return a valid pointer, and this will remain true for later interceptors too. This can change however if ModifySendMessage is used to replace the current payload. Note that ModifySendMessage requires a new payload message in the non-serialized form. This will overwrite the existing payload irrespective of whether it had been serialized earlier. Also note that gRPC Async API requires early serialization of the payload which means that the payload would be available in the serialized form only unless an interceptor replaces the payload with ModifySendMessage. Returns a modifable <a class="el" href="classgrpc_1_1_byte_buffer.html" title="A sequence of bytes.">ByteBuffer</a> holding the serialized form of the message that is going to be sent. Valid for PRE_SEND_MESSAGE interceptions. A return value of nullptr indicates that this <a class="el" href="classgrpc_1_1_byte_buffer.html" title="A sequence of bytes.">ByteBuffer</a> is not valid. </p>
  501. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a3368ae4a100d210716414bf1dc57f5cd">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#ad1a9c7433ed82c01413a6cd6b0a5ac60">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  502. </div>
  503. </div>
  504. <a id="aea0a9629eb5c5aa8760d5a02fd2ef37f"></a>
  505. <h2 class="memtitle"><span class="permalink"><a href="#aea0a9629eb5c5aa8760d5a02fd2ef37f">&#9670;&nbsp;</a></span>Hijack()</h2>
  506. <div class="memitem">
  507. <div class="memproto">
  508. <table class="mlabels">
  509. <tr>
  510. <td class="mlabels-left">
  511. <table class="memname">
  512. <tr>
  513. <td class="memname">virtual void grpc::experimental::InterceptorBatchMethods::Hijack </td>
  514. <td>(</td>
  515. <td class="paramname"></td><td>)</td>
  516. <td></td>
  517. </tr>
  518. </table>
  519. </td>
  520. <td class="mlabels-right">
  521. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  522. </tr>
  523. </table>
  524. </div><div class="memdoc">
  525. <p>Indicate that the interceptor has hijacked the RPC (only valid if the batch contains send_initial_metadata on the client side). </p>
  526. <p>Later interceptors in the interceptor list will not be called. Later batches on the same RPC will go through interception, but only up to the point of the hijacking interceptor. </p>
  527. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a4ffe4ff4ddbecd1f3b735d25fc99b028">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#ae8fab5a87b44a734e6c627bfaebfde95">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  528. </div>
  529. </div>
  530. <a id="a6be8b4eecdd2ddf3913369dd3b275d43"></a>
  531. <h2 class="memtitle"><span class="permalink"><a href="#a6be8b4eecdd2ddf3913369dd3b275d43">&#9670;&nbsp;</a></span>ModifySendMessage()</h2>
  532. <div class="memitem">
  533. <div class="memproto">
  534. <table class="mlabels">
  535. <tr>
  536. <td class="mlabels-left">
  537. <table class="memname">
  538. <tr>
  539. <td class="memname">virtual void grpc::experimental::InterceptorBatchMethods::ModifySendMessage </td>
  540. <td>(</td>
  541. <td class="paramtype">const void *&#160;</td>
  542. <td class="paramname"><em>message</em></td><td>)</td>
  543. <td></td>
  544. </tr>
  545. </table>
  546. </td>
  547. <td class="mlabels-right">
  548. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  549. </tr>
  550. </table>
  551. </div><div class="memdoc">
  552. <p>Overwrites the message to be sent with <em>message</em>. </p>
  553. <p><em>message</em> should be in the non-serialized form expected by the method. Valid for PRE_SEND_MESSAGE interceptions. Note that the interceptor is responsible for maintaining the life of the message till it is serialized or it receives the POST_SEND_MESSAGE interception point, whichever happens earlier. The modifying interceptor may itself force early serialization by calling GetSerializedSendMessage. </p>
  554. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#ac34992ed34f75aae9b64cd62ae94f249">grpc::internal::InterceptorBatchMethodsImpl</a>, and <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#a3cde40872d7f653148cd34c29219b0c5">grpc::internal::CancelInterceptorBatchMethods</a>.</p>
  555. </div>
  556. </div>
  557. <a id="a541b5d8a424e703d562a32c27488ccf2"></a>
  558. <h2 class="memtitle"><span class="permalink"><a href="#a541b5d8a424e703d562a32c27488ccf2">&#9670;&nbsp;</a></span>ModifySendStatus()</h2>
  559. <div class="memitem">
  560. <div class="memproto">
  561. <table class="mlabels">
  562. <tr>
  563. <td class="mlabels-left">
  564. <table class="memname">
  565. <tr>
  566. <td class="memname">virtual void grpc::experimental::InterceptorBatchMethods::ModifySendStatus </td>
  567. <td>(</td>
  568. <td class="paramtype">const <a class="el" href="classgrpc_1_1_status.html">Status</a> &amp;&#160;</td>
  569. <td class="paramname"><em>status</em></td><td>)</td>
  570. <td></td>
  571. </tr>
  572. </table>
  573. </td>
  574. <td class="mlabels-right">
  575. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  576. </tr>
  577. </table>
  578. </div><div class="memdoc">
  579. <p>Overwrites the status with <em>status</em>. </p>
  580. <p>Valid for PRE_SEND_STATUS interceptions. </p>
  581. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a5a559be4bbe86452fbb1ecd77141b0f8">grpc::internal::InterceptorBatchMethodsImpl</a>, and <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#aebd80df936f4275f01c03945354f11ab">grpc::internal::CancelInterceptorBatchMethods</a>.</p>
  582. </div>
  583. </div>
  584. <a id="a640e84ae950a57b875b38de6ef9d87fe"></a>
  585. <h2 class="memtitle"><span class="permalink"><a href="#a640e84ae950a57b875b38de6ef9d87fe">&#9670;&nbsp;</a></span>Proceed()</h2>
  586. <div class="memitem">
  587. <div class="memproto">
  588. <table class="mlabels">
  589. <tr>
  590. <td class="mlabels-left">
  591. <table class="memname">
  592. <tr>
  593. <td class="memname">virtual void grpc::experimental::InterceptorBatchMethods::Proceed </td>
  594. <td>(</td>
  595. <td class="paramname"></td><td>)</td>
  596. <td></td>
  597. </tr>
  598. </table>
  599. </td>
  600. <td class="mlabels-right">
  601. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  602. </tr>
  603. </table>
  604. </div><div class="memdoc">
  605. <p>Signal that the interceptor is done intercepting the current batch of the RPC. </p>
  606. <p>Every interceptor must either call Proceed or Hijack on each interception. In most cases, only Proceed will be used. Explicit use of Proceed is what enables interceptors to delay the processing of RPCs while they perform other work. Proceed is a no-op if the batch contains PRE_SEND_CANCEL. Simply returning from the Intercept method does the job of continuing the RPC in this case. This is because PRE_SEND_CANCEL is always in a separate batch and is not allowed to be delayed. </p>
  607. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#ae54b9b17705512879fd05fa7c6ca57db">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a37bf16655256d3f296a6ca04eafed0bd">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  608. </div>
  609. </div>
  610. <a id="a68758f2d57120220e53bcc6ad1bc8c71"></a>
  611. <h2 class="memtitle"><span class="permalink"><a href="#a68758f2d57120220e53bcc6ad1bc8c71">&#9670;&nbsp;</a></span>QueryInterceptionHookPoint()</h2>
  612. <div class="memitem">
  613. <div class="memproto">
  614. <table class="mlabels">
  615. <tr>
  616. <td class="mlabels-left">
  617. <table class="memname">
  618. <tr>
  619. <td class="memname">virtual bool grpc::experimental::InterceptorBatchMethods::QueryInterceptionHookPoint </td>
  620. <td>(</td>
  621. <td class="paramtype"><a class="el" href="namespacegrpc_1_1experimental.html#a03d3481b2c4146f53e90966d4a0fd8a1">InterceptionHookPoints</a>&#160;</td>
  622. <td class="paramname"><em>type</em></td><td>)</td>
  623. <td></td>
  624. </tr>
  625. </table>
  626. </td>
  627. <td class="mlabels-right">
  628. <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
  629. </tr>
  630. </table>
  631. </div><div class="memdoc">
  632. <p>Determine whether the current batch has an interception hook point of type <em>type</em>. </p>
  633. <p>Implemented in <a class="el" href="classgrpc_1_1internal_1_1_cancel_interceptor_batch_methods.html#ab5efa6c1ab93ca3a5ee46cff63f87b76">grpc::internal::CancelInterceptorBatchMethods</a>, and <a class="el" href="classgrpc_1_1internal_1_1_interceptor_batch_methods_impl.html#a0093ac4ad56f3d8e96c87545f29329a1">grpc::internal::InterceptorBatchMethodsImpl</a>.</p>
  634. </div>
  635. </div>
  636. <hr/>The documentation for this class was generated from the following file:<ul>
  637. <li>include/grpcpp/impl/codegen/<a class="el" href="impl_2codegen_2interceptor_8h_source.html">interceptor.h</a></li>
  638. </ul>
  639. </div><!-- contents -->
  640. <!-- start footer part -->
  641. <hr class="footer"/><address class="footer"><small>
  642. Generated on Wed Mar 3 2021 19:17:25 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
  643. <img class="footer" src="doxygen.png" alt="doxygen"/>
  644. </a> 1.8.17
  645. </small></address>
  646. </body>
  647. </html>