| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.11"/>
- <title>GRPC C++: grpc::ClientReaderWriter< 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>
- <script type="text/javascript">
- $(document).ready(function() { init_search(); });
- </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.0.0</span>
- </div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.11 -->
- <script type="text/javascript">
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
- </script>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="namespaces.html"><span>Namespaces</span></a></li>
- <li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li>
- <div id="MSearchBox" class="MSearchBoxInactive">
- <span class="left">
- <img id="MSearchSelect" src="search/mag_sel.png"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- alt=""/>
- <input type="text" id="MSearchField" value="Search" accesskey="S"
- onfocus="searchBox.OnSearchFieldFocus(true)"
- onblur="searchBox.OnSearchFieldFocus(false)"
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
- </span><span class="right">
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
- </span>
- </div>
- </li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li><a href="classes.html"><span>Data Structure Index</span></a></li>
- <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li>
- <li><a href="functions.html"><span>Data Fields</span></a></li>
- </ul>
- </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.html">grpc</a></li><li class="navelem"><a class="el" href="classgrpc_1_1_client_reader_writer.html">ClientReaderWriter</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::ClientReaderWriter< W, R > Class Template Reference</div> </div>
- </div><!--header-->
- <div class="contents">
- <p><code>#include <<a class="el" href="channel__interface_8h_source.html">channel_interface.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:aa1ac2b4a6f0ced02e2f56513e7394070"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_reader_writer.html#aa1ac2b4a6f0ced02e2f56513e7394070">ClientReaderWriter</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> &method, <a class="el" href="classgrpc_1_1_client_context.html">ClientContext</a> *context)</td></tr>
- <tr class="memdesc:aa1ac2b4a6f0ced02e2f56513e7394070"><td class="mdescLeft"> </td><td class="mdescRight">Blocking create a stream. <a href="#aa1ac2b4a6f0ced02e2f56513e7394070">More...</a><br /></td></tr>
- <tr class="separator:aa1ac2b4a6f0ced02e2f56513e7394070"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a8f0e43d3a69daa22268e8b357da090cf"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_reader_writer.html#a8f0e43d3a69daa22268e8b357da090cf">WaitForInitialMetadata</a> () <a class="el" href="impl_2codegen_2config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a></td></tr>
- <tr class="memdesc:a8f0e43d3a69daa22268e8b357da090cf"><td class="mdescLeft"> </td><td class="mdescRight">Blocking wait for initial metadata from server. <a href="#a8f0e43d3a69daa22268e8b357da090cf">More...</a><br /></td></tr>
- <tr class="separator:a8f0e43d3a69daa22268e8b357da090cf"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a97d25c3f9f859fefaa3166243fd52556"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_reader_writer.html#a97d25c3f9f859fefaa3166243fd52556">Read</a> (R *msg) <a class="el" href="impl_2codegen_2config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a></td></tr>
- <tr class="memdesc:a97d25c3f9f859fefaa3166243fd52556"><td class="mdescLeft"> </td><td class="mdescRight">Blocking read a message and parse to <em>msg</em>. <a href="#a97d25c3f9f859fefaa3166243fd52556">More...</a><br /></td></tr>
- <tr class="separator:a97d25c3f9f859fefaa3166243fd52556"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:aeb452b144e99d18a700fe260184ae3a4"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_reader_writer.html#aeb452b144e99d18a700fe260184ae3a4">Write</a> (const W &msg, const <a class="el" href="classgrpc_1_1_write_options.html">WriteOptions</a> &options) <a class="el" href="impl_2codegen_2config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a></td></tr>
- <tr class="memdesc:aeb452b144e99d18a700fe260184ae3a4"><td class="mdescLeft"> </td><td class="mdescRight">Blocking write <em>msg</em> to the stream with options. <a href="#aeb452b144e99d18a700fe260184ae3a4">More...</a><br /></td></tr>
- <tr class="separator:aeb452b144e99d18a700fe260184ae3a4"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a228efff73fb701255820264df2133e35"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_reader_writer.html#a228efff73fb701255820264df2133e35">WritesDone</a> () <a class="el" href="impl_2codegen_2config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a></td></tr>
- <tr class="memdesc:a228efff73fb701255820264df2133e35"><td class="mdescLeft"> </td><td class="mdescRight">Block until currently-pending writes are completed. <a href="#a228efff73fb701255820264df2133e35">More...</a><br /></td></tr>
- <tr class="separator:a228efff73fb701255820264df2133e35"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a805aab700d60134e90eb497f31e2cc16"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgrpc_1_1_status.html">Status</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_reader_writer.html#a805aab700d60134e90eb497f31e2cc16">Finish</a> () <a class="el" href="impl_2codegen_2config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a></td></tr>
- <tr class="memdesc:a805aab700d60134e90eb497f31e2cc16"><td class="mdescLeft"> </td><td class="mdescRight">Wait until the stream finishes, and return the final status. <a href="#a805aab700d60134e90eb497f31e2cc16">More...</a><br /></td></tr>
- <tr class="separator:a805aab700d60134e90eb497f31e2cc16"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classgrpc_1_1_client_streaming_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgrpc_1_1_client_streaming_interface')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgrpc_1_1_client_streaming_interface.html">grpc::ClientStreamingInterface</a></td></tr>
- <tr class="memitem:a312c9454c0f950e1c75b5c802bcbb00e inherit pub_methods_classgrpc_1_1_client_streaming_interface"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_client_streaming_interface.html#a312c9454c0f950e1c75b5c802bcbb00e">~ClientStreamingInterface</a> ()</td></tr>
- <tr class="separator:a312c9454c0f950e1c75b5c802bcbb00e inherit pub_methods_classgrpc_1_1_client_streaming_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classgrpc_1_1_writer_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgrpc_1_1_writer_interface')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgrpc_1_1_writer_interface.html">grpc::WriterInterface< W ></a></td></tr>
- <tr class="memitem:a447d71736fb6e8c6bd21287ecc3a9f75 inherit pub_methods_classgrpc_1_1_writer_interface"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_writer_interface.html#a447d71736fb6e8c6bd21287ecc3a9f75">~WriterInterface</a> ()</td></tr>
- <tr class="separator:a447d71736fb6e8c6bd21287ecc3a9f75 inherit pub_methods_classgrpc_1_1_writer_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="memitem:a5ddbce2a74455afea61fc21e16b01c6a inherit pub_methods_classgrpc_1_1_writer_interface"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_writer_interface.html#a5ddbce2a74455afea61fc21e16b01c6a">Write</a> (const W &msg)</td></tr>
- <tr class="memdesc:a5ddbce2a74455afea61fc21e16b01c6a inherit pub_methods_classgrpc_1_1_writer_interface"><td class="mdescLeft"> </td><td class="mdescRight">Blocking write <em>msg</em> to the stream with default options. <a href="#a5ddbce2a74455afea61fc21e16b01c6a">More...</a><br /></td></tr>
- <tr class="separator:a5ddbce2a74455afea61fc21e16b01c6a inherit pub_methods_classgrpc_1_1_writer_interface"><td class="memSeparator" colspan="2"> </td></tr>
- <tr class="inherit_header pub_methods_classgrpc_1_1_reader_interface"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classgrpc_1_1_reader_interface')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classgrpc_1_1_reader_interface.html">grpc::ReaderInterface< R ></a></td></tr>
- <tr class="memitem:a1fbd3d6e86e2f97e5444f29b0af0a9d5 inherit pub_methods_classgrpc_1_1_reader_interface"><td class="memItemLeft" align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc_1_1_reader_interface.html#a1fbd3d6e86e2f97e5444f29b0af0a9d5">~ReaderInterface</a> ()</td></tr>
- <tr class="separator:a1fbd3d6e86e2f97e5444f29b0af0a9d5 inherit pub_methods_classgrpc_1_1_reader_interface"><td class="memSeparator" colspan="2"> </td></tr>
- </table>
- <h2 class="groupheader">Constructor & Destructor Documentation</h2>
- <a class="anchor" id="aa1ac2b4a6f0ced02e2f56513e7394070"></a>
- <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"><a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a>< W, R >::<a class="el" href="classgrpc_1_1_client_reader_writer.html">ClientReaderWriter</a> </td>
- <td>(</td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1_channel_interface.html">ChannelInterface</a> * </td>
- <td class="paramname"><em>channel</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const <a class="el" href="classgrpc_1_1_rpc_method.html">RpcMethod</a> & </td>
- <td class="paramname"><em>method</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype"><a class="el" href="classgrpc_1_1_client_context.html">ClientContext</a> * </td>
- <td class="paramname"><em>context</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">inline</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Blocking create a stream. </p>
- </div>
- </div>
- <h2 class="groupheader">Member Function Documentation</h2>
- <a class="anchor" id="a805aab700d60134e90eb497f31e2cc16"></a>
- <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"><a class="el" href="classgrpc_1_1_status.html">Status</a> <a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a>< W, R >::Finish </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Wait until the stream finishes, and return the final status. </p>
- <p>When the client side declares it has no more message to send, either implicitly or by calling <em><a class="el" href="classgrpc_1_1_client_reader_writer.html#a228efff73fb701255820264df2133e35" title="Block until currently-pending writes are completed. ">WritesDone()</a></em>, it needs to make sure there is no more message to be received from the server, either implicitly or by getting a false from a <em><a class="el" href="classgrpc_1_1_client_reader_writer.html#a97d25c3f9f859fefaa3166243fd52556" title="Blocking read a message and parse to msg. ">Read()</a></em>.</p>
- <p>This function will return either:</p><ul>
- <li>when all incoming messages have been read and the server has returned status.</li>
- <li>OR when the server has returned a non-OK status. </li>
- </ul>
- <p>Implements <a class="el" href="classgrpc_1_1_client_streaming_interface.html#a98e2927a42c793017ce7d8c6e88539c4">grpc::ClientStreamingInterface</a>.</p>
- </div>
- </div>
- <a class="anchor" id="a97d25c3f9f859fefaa3166243fd52556"></a>
- <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">bool <a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a>< W, R >::Read </td>
- <td>(</td>
- <td class="paramtype">R * </td>
- <td class="paramname"><em>msg</em></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Blocking read a message and parse to <em>msg</em>. </p>
- <p>Returns <em>true</em> on success. This is thread-safe with respect to <em>Write</em> or methods on the same stream. It should not be called concurrently with another <em>Read</em> on the same stream as the order of delivery will not be defined.</p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramdir">[out]</td><td class="paramname">msg</td><td>The read message.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><em>false</em> when there will be no more incoming messages, either because the other side has called <em><a class="el" href="classgrpc_1_1_client_reader_writer.html#a228efff73fb701255820264df2133e35" title="Block until currently-pending writes are completed. ">WritesDone()</a></em> or the stream has failed (or been cancelled). </dd></dl>
- <p>Implements <a class="el" href="classgrpc_1_1_reader_interface.html#a04a1da8610d790ea86ecd5a14fe892b8">grpc::ReaderInterface< R ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a8f0e43d3a69daa22268e8b357da090cf"></a>
- <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">void <a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a>< W, R >::WaitForInitialMetadata </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Blocking wait for initial metadata from server. </p>
- <p>The received metadata can only be accessed after this call returns. Should only be called before the first read. Calling this method is optional, and if it is not called the metadata will be available in <a class="el" href="classgrpc_1_1_client_context.html">ClientContext</a> after the first read. </p>
- <p>Implements <a class="el" href="classgrpc_1_1_client_reader_writer_interface.html#a6ead554cc1b991f2289b26fb80fdde5e">grpc::ClientReaderWriterInterface< W, R ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="aeb452b144e99d18a700fe260184ae3a4"></a>
- <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">bool <a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a>< W, R >::Write </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">const <a class="el" href="classgrpc_1_1_write_options.html">WriteOptions</a> & </td>
- <td class="paramname"><em>options</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">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Blocking write <em>msg</em> to the stream with options. </p>
- <p>This is thread-safe with respect to <em>Read</em> </p>
- <dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">msg</td><td>The message to be written to the stream. </td></tr>
- <tr><td class="paramname">options</td><td>Options affecting the write operation.</td></tr>
- </table>
- </dd>
- </dl>
- <dl class="section return"><dt>Returns</dt><dd><em>true</em> on success, <em>false</em> when the stream has been closed. </dd></dl>
- <p>Implements <a class="el" href="classgrpc_1_1_writer_interface.html#aa6b2aeb8957265b62bdc063b48f15d44">grpc::WriterInterface< W ></a>.</p>
- </div>
- </div>
- <a class="anchor" id="a228efff73fb701255820264df2133e35"></a>
- <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">bool <a class="el" href="classgrpc_1_1_client_reader_writer.html">grpc::ClientReaderWriter</a>< W, R >::WritesDone </td>
- <td>(</td>
- <td class="paramname"></td><td>)</td>
- <td></td>
- </tr>
- </table>
- </td>
- <td class="mlabels-right">
- <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
- </tr>
- </table>
- </div><div class="memdoc">
- <p>Block until currently-pending writes are completed. </p>
- <p>Thread-safe with respect to <em>Read</em> </p>
- <dl class="section return"><dt>Returns</dt><dd>Whether the writes were successful. </dd></dl>
- <p>Implements <a class="el" href="classgrpc_1_1_client_reader_writer_interface.html#a52f4e5d5ac7fe0e4995cb337aa0ecfc8">grpc::ClientReaderWriterInterface< W, R ></a>.</p>
- </div>
- </div>
- <hr/>The documentation for this class was generated from the following files:<ul>
- <li>include/grpc++/impl/codegen/<a class="el" href="channel__interface_8h_source.html">channel_interface.h</a></li>
- <li>include/grpc++/impl/codegen/<a class="el" href="impl_2codegen_2sync__stream_8h_source.html">sync_stream.h</a></li>
- </ul>
- </div><!-- contents -->
- <!-- start footer part -->
- <hr class="footer"/><address class="footer"><small>
- Generated on Thu Aug 18 2016 21:34:58 for GRPC C++ by  <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/>
- </a> 1.8.11
- </small></address>
- </body>
- </html>
|