| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <meta name="generator" content="Doxygen 1.8.17"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>GRPC C++: grpc_impl::ServerAsyncReaderWriterInterface< W, R > Class Template Reference</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">GRPC C++
-  <span id="projectnumber">1.32.0</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.17 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
- });
- /* @license-end */</script>
- <div id="main-nav"></div>
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
- </iframe>
- </div>
- <div id="nav-path" class="navpath">
- <ul>
- <li class="navelem"><a class="el" href="namespacegrpc__impl.html">grpc_impl</a></li><li class="navelem"><a class="el" href="classgrpc__impl_1_1_server_async_reader_writer_interface.html">ServerAsyncReaderWriterInterface</a></li> </ul>
- </div>
- </div><!-- top -->
- <div class="header">
- <div class="summary">
- <a href="#pub-methods">Public Member Functions</a> </div>
- <div class="headertitle">
- <div class="title">grpc_impl::ServerAsyncReaderWriterInterface< W, R > Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
- </div><!--header-->
- <div class="contents">
- <p>Server-side interface for asynchronous bi-directional streaming.
- <a href="classgrpc__impl_1_1_server_async_reader_writer_interface.html#details">More...</a></p>
- <p><code>#include <<a class="el" href="impl_2codegen_2async__stream__impl_8h_source.html">async_stream_impl.h</a>></code></p>
- <table class="memberdecls">
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
- Public Member Functions</h2></td></tr>
- <tr class="memitem:a706884d5e0d977b056710c5f09fb219a"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_async_reader_writer_interface.html#a706884d5e0d977b056710c5f09fb219a">Finish</a> (const ::<a class="el" href="classgrpc_1_1_status.html">grpc::Status</a> &status, void *tag)=0</td></tr>
- <tr class="memdesc:a706884d5e0d977b056710c5f09fb219a"><td class="mdescLeft"> </td><td class="mdescRight">Indicate that the stream is to be finished with a certain status code. <a href="classgrpc__impl_1_1_server_async_reader_writer_interface.html#a706884d5e0d977b056710c5f09fb219a">More...</a><br /></td></tr>
- <tr class="separator:a706884d5e0d977b056710c5f09fb219a"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a10995d9b1f2fff99acb2a349b5f91023"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1_server_async_reader_writer_interface.html#a10995d9b1f2fff99acb2a349b5f91023">WriteAndFinish</a> (const W &msg, ::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a> options, const ::<a class="el" href="classgrpc_1_1_status.html">grpc::Status</a> &status, void *tag)=0</td></tr>
- <tr class="memdesc:a10995d9b1f2fff99acb2a349b5f91023"><td class="mdescLeft"> </td><td class="mdescRight">Request the writing of <em>msg</em> and coalesce it with trailing metadata which contains <em>status</em>, using WriteOptions options with identifying tag <em>tag</em>. <a href="classgrpc__impl_1_1_server_async_reader_writer_interface.html#a10995d9b1f2fff99acb2a349b5f91023">More...</a><br /></td></tr>
- <tr class="separator:a10995d9b1f2fff99acb2a349b5f91023"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classgrpc_1_1internal_1_1_server_async_streaming_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgrpc_1_1internal_1_1_server_async_streaming_interface')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html">grpc::internal::ServerAsyncStreamingInterface</a></td></tr>
- <tr class="memitem:aeace2295f3792ce24975361c300d641a inherit pub_methods_classgrpc_1_1internal_1_1_server_async_streaming_interface"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html#aeace2295f3792ce24975361c300d641a">~ServerAsyncStreamingInterface</a> ()</td></tr>
- <tr class="separator:aeace2295f3792ce24975361c300d641a inherit pub_methods_classgrpc_1_1internal_1_1_server_async_streaming_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:ac55759faf2283db8bf716183881efe01 inherit pub_methods_classgrpc_1_1internal_1_1_server_async_streaming_interface"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html#ac55759faf2283db8bf716183881efe01">SendInitialMetadata</a> (void *tag)=0</td></tr>
- <tr class="memdesc:ac55759faf2283db8bf716183881efe01 inherit pub_methods_classgrpc_1_1internal_1_1_server_async_streaming_interface"><td class="mdescLeft"> </td><td class="mdescRight">Request notification of the sending of initial metadata to the client. <a href="classgrpc_1_1internal_1_1_server_async_streaming_interface.html#ac55759faf2283db8bf716183881efe01">More...</a><br /></td></tr>
- <tr class="separator:ac55759faf2283db8bf716183881efe01 inherit pub_methods_classgrpc_1_1internal_1_1_server_async_streaming_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html">grpc_impl::internal::AsyncWriterInterface< W ></a></td></tr>
- <tr class="memitem:abb8fa894b94e09e9a2b6ca261a20ec8b inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html#abb8fa894b94e09e9a2b6ca261a20ec8b">~AsyncWriterInterface</a> ()</td></tr>
- <tr class="separator:abb8fa894b94e09e9a2b6ca261a20ec8b inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a9c4e4ce91569478b6656992a35c5ece1 inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html#a9c4e4ce91569478b6656992a35c5ece1">Write</a> (const W &msg, void *tag)=0</td></tr>
- <tr class="memdesc:a9c4e4ce91569478b6656992a35c5ece1 inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="mdescLeft"> </td><td class="mdescRight">Request the writing of <em>msg</em> with identifying tag <em>tag</em>. <a href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html#a9c4e4ce91569478b6656992a35c5ece1">More...</a><br /></td></tr>
- <tr class="separator:a9c4e4ce91569478b6656992a35c5ece1 inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8b008c0685622ae659f8a57fb508bb5b inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html#a8b008c0685622ae659f8a57fb508bb5b">Write</a> (const W &msg, ::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a> options, void *tag)=0</td></tr>
- <tr class="memdesc:a8b008c0685622ae659f8a57fb508bb5b inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="mdescLeft"> </td><td class="mdescRight">Request the writing of <em>msg</em> using WriteOptions <em>options</em> with identifying tag <em>tag</em>. <a href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html#a8b008c0685622ae659f8a57fb508bb5b">More...</a><br /></td></tr>
- <tr class="separator:a8b008c0685622ae659f8a57fb508bb5b inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a05ab1b1965def7cec0324fe27b0fa67f inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html#a05ab1b1965def7cec0324fe27b0fa67f">WriteLast</a> (const W &msg, ::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a> options, void *tag)</td></tr>
- <tr class="memdesc:a05ab1b1965def7cec0324fe27b0fa67f inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="mdescLeft"> </td><td class="mdescRight">Request the writing of <em>msg</em> and coalesce it with the writing of trailing metadata, using WriteOptions <em>options</em> with identifying tag <em>tag</em>. <a href="classgrpc__impl_1_1internal_1_1_async_writer_interface.html#a05ab1b1965def7cec0324fe27b0fa67f">More...</a><br /></td></tr>
- <tr class="separator:a05ab1b1965def7cec0324fe27b0fa67f inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_writer_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classgrpc__impl_1_1internal_1_1_async_reader_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgrpc__impl_1_1internal_1_1_async_reader_interface')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgrpc__impl_1_1internal_1_1_async_reader_interface.html">grpc_impl::internal::AsyncReaderInterface< R ></a></td></tr>
- <tr class="memitem:a7034ab602111113f5bf3a8e6e48e2c93 inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_reader_interface"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1internal_1_1_async_reader_interface.html#a7034ab602111113f5bf3a8e6e48e2c93">~AsyncReaderInterface</a> ()</td></tr>
- <tr class="separator:a7034ab602111113f5bf3a8e6e48e2c93 inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_reader_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a02645c77e024a39abbd922650cfed5fd inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_reader_interface"><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__impl_1_1internal_1_1_async_reader_interface.html#a02645c77e024a39abbd922650cfed5fd">Read</a> (R *msg, void *tag)=0</td></tr>
- <tr class="memdesc:a02645c77e024a39abbd922650cfed5fd inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_reader_interface"><td class="mdescLeft"> </td><td class="mdescRight">Read a message of type <em>R</em> into <em>msg</em>. <a href="classgrpc__impl_1_1internal_1_1_async_reader_interface.html#a02645c77e024a39abbd922650cfed5fd">More...</a><br /></td></tr>
- <tr class="separator:a02645c77e024a39abbd922650cfed5fd inherit pub_methods_classgrpc__impl_1_1internal_1_1_async_reader_interface"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
- <div class="textblock"><h3>template<class W, class R><br />
- class grpc_impl::ServerAsyncReaderWriterInterface< W, R ></h3>
- <p>Server-side interface for asynchronous bi-directional streaming. </p>
- </div><h2 class="groupheader">Member Function Documentation</h2>
- <a id="a706884d5e0d977b056710c5f09fb219a"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a706884d5e0d977b056710c5f09fb219a">◆ </a></span>Finish()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class W , class R > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="classgrpc__impl_1_1_server_async_reader_writer_interface.html">grpc_impl::ServerAsyncReaderWriterInterface</a>< W, R >::Finish </td>
- <td>(</td>
- <td class="paramtype">const ::<a class="el" href="classgrpc_1_1_status.html">grpc::Status</a> & </td>
- <td class="paramname"><em>status</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>tag</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Indicate that the stream is to be finished with a certain status code. </p>
- <p>Request notification for when the server has sent the appropriate signals to the client to end the call. Should not be used concurrently with other operations.</p>
- <p>It is appropriate to call this method when either:</p><ul>
- <li>all messages from the client have been received (either known implictly, or explicitly because a previous <em>AsyncReaderInterface::Read</em> operation with a non-ok result (e.g., cq->Next(&read_tag, &ok) filled in 'ok' with 'false'.</li>
- <li>it is desired to end the call early with some non-OK status code.</li>
- </ul>
- <p>This operation will end when the server has finished sending out initial metadata (if not sent already), response message, and status, or if some failure occurred when trying to do so.</p>
- <p>gRPC doesn't take ownership or a reference to <em>status</em>, so it is safe to to deallocate once Finish returns.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">tag</td><td>Tag identifying this request. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">status</td><td>To be sent to the client as the result of this call. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Implemented in <a class="el" href="classgrpc__impl_1_1_server_async_reader_writer.html#a8338227459da6e9ca7bee988bb7ec489">grpc_impl::ServerAsyncReaderWriter< W, R ></a>.</p>
- </div>
- </div>
- <a id="a10995d9b1f2fff99acb2a349b5f91023"></a>
- <h2 class="memtitle"><span class="permalink"><a href="#a10995d9b1f2fff99acb2a349b5f91023">◆ </a></span>WriteAndFinish()</h2>
- <div class="memitem">
- <div class="memproto">
- <div class="memtemplate">
- template<class W , class R > </div>
- <table class="mlabels">
- <tr>
- <td class="mlabels-left">
- <table class="memname">
- <tr>
- <td class="memname">virtual void <a class="el" href="classgrpc__impl_1_1_server_async_reader_writer_interface.html">grpc_impl::ServerAsyncReaderWriterInterface</a>< W, R >::WriteAndFinish </td>
- <td>(</td>
- <td class="paramtype">const W & </td>
- <td class="paramname"><em>msg</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">::<a class="el" href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a> </td>
- <td class="paramname"><em>options</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const ::<a class="el" href="classgrpc_1_1_status.html">grpc::Status</a> & </td>
- <td class="paramname"><em>status</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">void * </td>
- <td class="paramname"><em>tag</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Request the writing of <em>msg</em> and coalesce it with trailing metadata which contains <em>status</em>, using WriteOptions options with identifying tag <em>tag</em>. </p>
- <p>WriteAndFinish is equivalent of performing WriteLast and Finish in a single step.</p>
- <p>gRPC doesn't take ownership or a reference to <em>msg</em> and <em>status</em>, so it is safe to deallocate once WriteAndFinish returns.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[in]</td><td class="paramname">msg</td><td>The message to be written. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>The WriteOptions to be used to write this message. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">status</td><td>The Status that server returns to client. </td></tr>
- <tr><td class="paramdir">[in]</td><td class="paramname">tag</td><td>The tag identifying the operation. </td></tr>
- </table>
- </dd>
- </dl>
- <p>Implemented in <a class="el" href="classgrpc__impl_1_1_server_async_reader_writer.html#a3d3267808b776bce5936b32d58edc9ab">grpc_impl::ServerAsyncReaderWriter< W, R ></a>.</p>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following file:<ul>
- <li>include/grpcpp/impl/codegen/<a class="el" href="impl_2codegen_2async__stream__impl_8h_source.html">async_stream_impl.h</a></li>
- </ul>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Sat Sep 12 2020 00:53:57 for GRPC C++ by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.17
- </small></address>
- </body>
- </html>
|