blob: 8f988de3b1a783d7ecba82abd04c45784a340841 [file] [log] [blame]
<!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.6"/>
<title>GRPC C++: include/grpc++/impl/call.h Source File</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/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</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 style="padding-left: 0.5em;">
<div id="projectname">GRPC C++
&#160;<span id="projectnumber">0.10.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<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&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><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="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</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)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Macros</a></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="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_f1b2ab2a88927c1e950e43c1cf4b634b.html">grpc++</a></li><li class="navelem"><a class="el" href="dir_ac8b245a5921095c43c106649fd7bc4b.html">impl</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">call.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="call_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * met:</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * * Redistributions of source code must retain the above copyright</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * * Redistributions in binary form must reproduce the above</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * distribution.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * * Neither the name of Google Inc. nor the names of its</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#ifndef GRPCXX_IMPL_CALL_H</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPCXX_IMPL_CALL_H</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor"></span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;grpc/support/alloc.h&gt;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="client__context_8h.html">grpc++/client_context.h</a>&gt;</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="completion__queue_8h.html">grpc++/completion_queue.h</a>&gt;</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="config_8h.html">grpc++/config.h</a>&gt;</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="status_8h.html">grpc++/status.h</a>&gt;</span></div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="serialization__traits_8h.html">grpc++/impl/serialization_traits.h</a>&gt;</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;map&gt;</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">struct </span>grpc_call;</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">struct </span>grpc_op;</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">namespace </span>grpc {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword">class </span>ByteBuffer;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span>Call;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacegrpc.html#a00d2939a7b40a674459016f6148f372d">FillMetadataMap</a>(grpc_metadata_array* arr,</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::multimap&lt;grpc::string, grpc::string&gt;* metadata);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;grpc_metadata* <a class="code" href="namespacegrpc.html#a16ecfcd344f569a6fcfa2c42e3a43aca">FillMetadataArray</a>(</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">const</span> std::multimap&lt;grpc::string, grpc::string&gt;&amp; metadata);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html"> 64</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a> {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#a6a4e429313200ed6c017c5d306e26e93"> 66</a></span>&#160; <a class="code" href="classgrpc_1_1_write_options.html#a6a4e429313200ed6c017c5d306e26e93">WriteOptions</a>() : flags_(0) {}</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#a4d7753bbd8d9d61e2c6d3e49e29be021"> 67</a></span>&#160; <a class="code" href="classgrpc_1_1_write_options.html#a4d7753bbd8d9d61e2c6d3e49e29be021">WriteOptions</a>(<span class="keyword">const</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; other) : flags_(other.flags_) {}</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#a9fc0e51224292b15dcfefec342fa0e02"> 70</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_write_options.html#a9fc0e51224292b15dcfefec342fa0e02">Clear</a>() {</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; flags_ = 0;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#a0e047a4f3d159749153bff276880e153"> 75</a></span>&#160; <span class="keyword">inline</span> gpr_uint32 <a class="code" href="classgrpc_1_1_write_options.html#a0e047a4f3d159749153bff276880e153">flags</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> flags_;</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#afe5f12d1bf9ed01b7a833458dc889b66"> 82</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; <a class="code" href="classgrpc_1_1_write_options.html#afe5f12d1bf9ed01b7a833458dc889b66">set_no_compression</a>() {</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; SetBit(GRPC_WRITE_NO_COMPRESS);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#a7bc26dd151ed56bc49329ca895fe15e7"> 90</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; <a class="code" href="classgrpc_1_1_write_options.html#a7bc26dd151ed56bc49329ca895fe15e7">clear_no_compression</a>() {</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; ClearBit(GRPC_WRITE_NO_COMPRESS);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#accb16dd92f4001a6d024ffb01178d4bf"> 99</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc_1_1_write_options.html#accb16dd92f4001a6d024ffb01178d4bf">get_no_compression</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> GetBit(GRPC_WRITE_NO_COMPRESS);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#aecd282a8c7424e4b0c1a5f512c44b8a8"> 107</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; <a class="code" href="classgrpc_1_1_write_options.html#aecd282a8c7424e4b0c1a5f512c44b8a8">set_buffer_hint</a>() {</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; SetBit(GRPC_WRITE_BUFFER_HINT);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#a897ba94e51b1f6ead41ade8f92efa89f"> 116</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; <a class="code" href="classgrpc_1_1_write_options.html#a897ba94e51b1f6ead41ade8f92efa89f">clear_buffer_hint</a>() {</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; ClearBit(GRPC_WRITE_BUFFER_HINT);</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#a58a983a81a17d0b8f3996164f55912ef"> 125</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc_1_1_write_options.html#a58a983a81a17d0b8f3996164f55912ef">get_buffer_hint</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> GetBit(GRPC_WRITE_BUFFER_HINT);</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classgrpc_1_1_write_options.html#abe3d32a3e5879022e7b8f1c6a7533841"> 129</a></span>&#160; <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; <a class="code" href="classgrpc_1_1_write_options.html#abe3d32a3e5879022e7b8f1c6a7533841">operator=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; rhs) {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; flags_ = rhs.flags_;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">void</span> SetBit(<span class="keyword">const</span> gpr_int32 mask) {</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; flags_ |= mask;</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">void</span> ClearBit(<span class="keyword">const</span> gpr_int32 mask) {</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; flags_ &amp;= ~mask;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">bool</span> GetBit(<span class="keyword">const</span> gpr_int32 mask)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> flags_ &amp; mask;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; gpr_uint32 flags_;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;};</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="keyword">template</span> &lt;<span class="keywordtype">int</span> I&gt;</div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_no_op.html"> 153</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_no_op.html">CallNoOp</a> {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_no_op.html#a72c69197fb8ad18542e459bffbd8cbd8"> 155</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_no_op.html#a72c69197fb8ad18542e459bffbd8cbd8">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {}</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_no_op.html#a2e39baf8e169ec930d2234c85ca577ae"> 156</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_no_op.html#a2e39baf8e169ec930d2234c85ca577ae">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {}</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;};</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html"> 159</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html">CallOpSendInitialMetadata</a> {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html#a1cf749118f03392e186d251c48200dd8"> 161</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a1cf749118f03392e186d251c48200dd8">CallOpSendInitialMetadata</a>() : <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30">send_</a>(false) {}</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html#a1d7682714b83f3bf495be8a7804fd34d"> 163</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a1d7682714b83f3bf495be8a7804fd34d">SendInitialMetadata</a>(</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">const</span> std::multimap&lt;grpc::string, grpc::string&gt;&amp; metadata) {</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30">send_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a19f3366cf32ceb0199e7f636f870dd63">initial_metadata_count_</a> = metadata.size();</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a032d474971352a0f3ca5b1a468fa5fd4">initial_metadata_</a> = <a class="code" href="namespacegrpc.html#a16ecfcd344f569a6fcfa2c42e3a43aca">FillMetadataArray</a>(metadata);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html#ac57cf7a43da437b8b4556839f0403a77"> 171</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#ac57cf7a43da437b8b4556839f0403a77">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30">send_</a>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; op-&gt;op = GRPC_OP_SEND_INITIAL_METADATA;</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; op-&gt;flags = 0;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; op-&gt;data.send_initial_metadata.count = <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a19f3366cf32ceb0199e7f636f870dd63">initial_metadata_count_</a>;</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; op-&gt;data.send_initial_metadata.metadata = <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a032d474971352a0f3ca5b1a468fa5fd4">initial_metadata_</a>;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html#a70bd2ec3f8b7b95b02657902ee445a13"> 179</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a70bd2ec3f8b7b95b02657902ee445a13">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30">send_</a>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; gpr_free(<a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a032d474971352a0f3ca5b1a468fa5fd4">initial_metadata_</a>);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30">send_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30"> 185</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30">send_</a>;</div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html#a19f3366cf32ceb0199e7f636f870dd63"> 186</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a19f3366cf32ceb0199e7f636f870dd63">initial_metadata_count_</a>;</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_initial_metadata.html#a032d474971352a0f3ca5b1a468fa5fd4"> 187</a></span>&#160; grpc_metadata* <a class="code" href="classgrpc_1_1_call_op_send_initial_metadata.html#a032d474971352a0f3ca5b1a468fa5fd4">initial_metadata_</a>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;};</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_message.html"> 190</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_send_message.html">CallOpSendMessage</a> {</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_message.html#a049e460b94bad04d19e3fbe70ba43291"> 192</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_send_message.html#a049e460b94bad04d19e3fbe70ba43291">CallOpSendMessage</a>() : send_buf_(nullptr), own_buf_(false) {}</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> M&gt;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="classgrpc_1_1_status.html">Status</a> <a class="code" href="classgrpc_1_1_call_op_send_message.html#a3cf3a795e98b7db1488ba6c098ac7dd9">SendMessage</a>(<span class="keyword">const</span> M&amp; message,</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; options) GRPC_MUST_USE_RESULT;</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> M&gt;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="classgrpc_1_1_status.html">Status</a> <a class="code" href="classgrpc_1_1_call_op_send_message.html#a3cf3a795e98b7db1488ba6c098ac7dd9">SendMessage</a>(<span class="keyword">const</span> M&amp; message) GRPC_MUST_USE_RESULT;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_message.html#a5d19fd3ab26c2b54868c9006f374728e"> 204</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_send_message.html#a5d19fd3ab26c2b54868c9006f374728e">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span> (send_buf_ == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; op-&gt;op = GRPC_OP_SEND_MESSAGE;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; op-&gt;flags = write_options_.<a class="code" href="classgrpc_1_1_write_options.html#a0e047a4f3d159749153bff276880e153">flags</a>();</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; op-&gt;data.send_message = send_buf_;</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// Flags are per-message: clear them after use.</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; write_options_.<a class="code" href="classgrpc_1_1_write_options.html#a9fc0e51224292b15dcfefec342fa0e02">Clear</a>();</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_message.html#a214a005bed5dd03d6dfa16f7a28b205b"> 213</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_send_message.html#a214a005bed5dd03d6dfa16f7a28b205b">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span> (own_buf_) grpc_byte_buffer_destroy(send_buf_);</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; send_buf_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; grpc_byte_buffer* send_buf_;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a> write_options_;</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">bool</span> own_buf_;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;};</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> M&gt;</div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_message.html#a3cf3a795e98b7db1488ba6c098ac7dd9"> 225</a></span>&#160;<a class="code" href="classgrpc_1_1_status.html">Status</a> <a class="code" href="classgrpc_1_1_call_op_send_message.html#a3cf3a795e98b7db1488ba6c098ac7dd9">CallOpSendMessage::SendMessage</a>(<span class="keyword">const</span> M&amp; message,</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>&amp; options) {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; write_options_ = options;</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc_1_1_serialization_traits.html">SerializationTraits&lt;M&gt;::Serialize</a>(message, &amp;send_buf_, &amp;own_buf_);</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;}</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> M&gt;</div>
<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_send_message.html#ad9928eeba69f23f54d1c378517a15222"> 232</a></span>&#160;<a class="code" href="classgrpc_1_1_status.html">Status</a> <a class="code" href="classgrpc_1_1_call_op_send_message.html#a3cf3a795e98b7db1488ba6c098ac7dd9">CallOpSendMessage::SendMessage</a>(<span class="keyword">const</span> M&amp; message) {</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc_1_1_call_op_send_message.html#a3cf3a795e98b7db1488ba6c098ac7dd9">SendMessage</a>(message, <a class="code" href="classgrpc_1_1_write_options.html">WriteOptions</a>());</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;}</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> R&gt;</div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_message.html"> 237</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_recv_message.html">CallOpRecvMessage</a> {</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_message.html#a5f2ead0399f19a906b82f87a82f24253"> 239</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_recv_message.html#a5f2ead0399f19a906b82f87a82f24253">CallOpRecvMessage</a>() : <a class="code" href="classgrpc_1_1_call_op_recv_message.html#a95f94e74f704a7f40e1f2e30aba24c57">got_message</a>(false), message_(nullptr) {}</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_message.html#aa2bdc2952010ab3a017bb859a1c6161c"> 241</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_recv_message.html#aa2bdc2952010ab3a017bb859a1c6161c">RecvMessage</a>(R* message) { message_ = message; }</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div>
<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_message.html#a95f94e74f704a7f40e1f2e30aba24c57"> 243</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc_1_1_call_op_recv_message.html#a95f94e74f704a7f40e1f2e30aba24c57">got_message</a>;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_message.html#a2d939fbfc75732244f389a5e2b97ab0a"> 246</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_recv_message.html#a2d939fbfc75732244f389a5e2b97ab0a">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span> (message_ == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; op-&gt;op = GRPC_OP_RECV_MESSAGE;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; op-&gt;flags = 0;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; op-&gt;data.recv_message = &amp;recv_buf_;</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_message.html#ac235a695ea9beb6d4ff3f4f220f695c6"> 254</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_recv_message.html#ac235a695ea9beb6d4ff3f4f220f695c6">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span> (message_ == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (recv_buf_) {</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span> (*status) {</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="classgrpc_1_1_call_op_recv_message.html#a95f94e74f704a7f40e1f2e30aba24c57">got_message</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; *status = <a class="code" href="classgrpc_1_1_serialization_traits.html">SerializationTraits&lt;R&gt;::Deserialize</a>(recv_buf_, message_,</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; max_message_size)</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; .ok();</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classgrpc_1_1_call_op_recv_message.html#a95f94e74f704a7f40e1f2e30aba24c57">got_message</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; grpc_byte_buffer_destroy(recv_buf_);</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <a class="code" href="classgrpc_1_1_call_op_recv_message.html#a95f94e74f704a7f40e1f2e30aba24c57">got_message</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; *status = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; message_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; R* message_;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; grpc_byte_buffer* recv_buf_;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;};</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="namespacegrpc_1_1_call_op_generic_recv_message_helper.html"> 278</a></span>&#160;<span class="keyword">namespace </span>CallOpGenericRecvMessageHelper {</div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func.html"> 279</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func.html">DeserializeFunc</a> {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc_1_1_status.html">Status</a> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func.html#af2bc8b34d88cc5d355755ec94bf04bcb">Deserialize</a>(grpc_byte_buffer* buf, <span class="keywordtype">int</span> max_message_size) = 0;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;};</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> R&gt;</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html"> 285</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html">DeserializeFuncType</a> <a class="code" href="config_8h.html#ab2216aa6e0ffe505e1ec362a9621a7f9">GRPC_FINAL</a> : <span class="keyword">public</span> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func.html">DeserializeFunc</a> {</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html#ae14165824fb892eefb683da1405e0316"> 287</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html#ae14165824fb892eefb683da1405e0316">DeserializeFuncType</a>(R* message) : message_(message) {}</div>
<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html#aff7b6d6d9e51e6d0bdb3a150bc5f99d4"> 288</a></span>&#160; <a class="code" href="classgrpc_1_1_status.html">Status</a> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html#aff7b6d6d9e51e6d0bdb3a150bc5f99d4">Deserialize</a>(grpc_byte_buffer* buf,</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordtype">int</span> max_message_size) <a class="code" href="config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a> {</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc_1_1_serialization_traits.html">SerializationTraits&lt;R&gt;::Deserialize</a>(buf, message_, max_message_size);</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; R* message_; <span class="comment">// Not a managed pointer because management is external to this</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;};</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;} <span class="comment">// namespace CallOpGenericRecvMessageHelper</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message.html"> 298</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html">CallOpGenericRecvMessage</a> {</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message.html#ae40448871744eb8a25b42003e2543eda"> 300</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#ae40448871744eb8a25b42003e2543eda">CallOpGenericRecvMessage</a>() : <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#a1dc0ca6159bc74ec6cbfeacb06c697a0">got_message</a>(false) {}</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> R&gt;</div>
<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message.html#a0235adb3ae82cf78552f556856feb788"> 303</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#a0235adb3ae82cf78552f556856feb788">RecvMessage</a>(R* message) {</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; deserialize_.reset(</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">new</span> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html">CallOpGenericRecvMessageHelper::DeserializeFuncType&lt;R&gt;</a>(message));</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div>
<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message.html#a1dc0ca6159bc74ec6cbfeacb06c697a0"> 308</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#a1dc0ca6159bc74ec6cbfeacb06c697a0">got_message</a>;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message.html#ac95faf8549212febce73cf6301238dfc"> 311</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#ac95faf8549212febce73cf6301238dfc">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span> (!deserialize_) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; op-&gt;op = GRPC_OP_RECV_MESSAGE;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; op-&gt;flags = 0;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; op-&gt;data.recv_message = &amp;recv_buf_;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_generic_recv_message.html#a40eba461f56840935c97934829b38e16"> 319</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#a40eba461f56840935c97934829b38e16">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span> (!deserialize_) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">if</span> (recv_buf_) {</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span> (*status) {</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#a1dc0ca6159bc74ec6cbfeacb06c697a0">got_message</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; *status = deserialize_-&gt;Deserialize(recv_buf_, max_message_size).ok();</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#a1dc0ca6159bc74ec6cbfeacb06c697a0">got_message</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; grpc_byte_buffer_destroy(recv_buf_);</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="classgrpc_1_1_call_op_generic_recv_message.html#a1dc0ca6159bc74ec6cbfeacb06c697a0">got_message</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; *status = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; deserialize_.reset();</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; std::unique_ptr&lt;CallOpGenericRecvMessageHelper::DeserializeFunc&gt; deserialize_;</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; grpc_byte_buffer* recv_buf_;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;};</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div>
<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_send_close.html"> 341</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_client_send_close.html">CallOpClientSendClose</a> {</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_send_close.html#a1601bc705c51e46133f2ee97921c712e"> 343</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_client_send_close.html#a1601bc705c51e46133f2ee97921c712e">CallOpClientSendClose</a>() : send_(false) {}</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_send_close.html#a43cd5b76bc82ccd2292e318bcc2a34cc"> 345</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_client_send_close.html#a43cd5b76bc82ccd2292e318bcc2a34cc">ClientSendClose</a>() { send_ = <span class="keyword">true</span>; }</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_send_close.html#a4415b250cd6d5a82818ba159c272343a"> 348</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_client_send_close.html#a4415b250cd6d5a82818ba159c272343a">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span> (!send_) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; op-&gt;op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; op-&gt;flags = 0;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
<div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_send_close.html#a7c9bcf88cc1ddf2c6cf85cf141c85656"> 354</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_client_send_close.html#a7c9bcf88cc1ddf2c6cf85cf141c85656">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) { send_ = <span class="keyword">false</span>; }</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordtype">bool</span> send_;</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;};</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div>
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_server_send_status.html"> 360</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_server_send_status.html">CallOpServerSendStatus</a> {</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_server_send_status.html#ab7a24493e9b8c6f2cc122cf3bd7796e4"> 362</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_server_send_status.html#ab7a24493e9b8c6f2cc122cf3bd7796e4">CallOpServerSendStatus</a>() : send_status_available_(false) {}</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_server_send_status.html#ac2720fa707f1fe321afdf3a971bebcf7"> 364</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_server_send_status.html#ac2720fa707f1fe321afdf3a971bebcf7">ServerSendStatus</a>(</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">const</span> std::multimap&lt;grpc::string, grpc::string&gt;&amp; trailing_metadata,</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc_1_1_status.html">Status</a>&amp; status) {</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; trailing_metadata_count_ = trailing_metadata.size();</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; trailing_metadata_ = <a class="code" href="namespacegrpc.html#a16ecfcd344f569a6fcfa2c42e3a43aca">FillMetadataArray</a>(trailing_metadata);</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; send_status_available_ = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; send_status_code_ = <span class="keyword">static_cast&lt;</span>grpc_status_code<span class="keyword">&gt;</span>(status.<a class="code" href="classgrpc_1_1_status.html#a78b50cb074bcd9f1dd50e8f212f7e181">error_code</a>());</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; send_status_details_ = status.<a class="code" href="classgrpc_1_1_status.html#a87888a7acefced58302f89a295940f16">error_message</a>();</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_server_send_status.html#a7381b06ae0268853ebf9ed3b2737698b"> 375</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_server_send_status.html#a7381b06ae0268853ebf9ed3b2737698b">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span> (!send_status_available_) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; op-&gt;op = GRPC_OP_SEND_STATUS_FROM_SERVER;</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; op-&gt;data.send_status_from_server.trailing_metadata_count =</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; trailing_metadata_count_;</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; op-&gt;data.send_status_from_server.trailing_metadata = trailing_metadata_;</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; op-&gt;data.send_status_from_server.status = send_status_code_;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; op-&gt;data.send_status_from_server.status_details =</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; send_status_details_.empty() ? <span class="keyword">nullptr</span> : send_status_details_.c_str();</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; op-&gt;flags = 0;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div>
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_server_send_status.html#a91b57e7b08540afa237cf7621558c978"> 388</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_server_send_status.html#a91b57e7b08540afa237cf7621558c978">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> (!send_status_available_) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; gpr_free(trailing_metadata_);</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; send_status_available_ = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordtype">bool</span> send_status_available_;</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; grpc_status_code send_status_code_;</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a> send_status_details_;</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordtype">size_t</span> trailing_metadata_count_;</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; grpc_metadata* trailing_metadata_;</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;};</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div>
<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_initial_metadata.html"> 402</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_recv_initial_metadata.html">CallOpRecvInitialMetadata</a> {</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a6c99b156711d0dc093a8578b45901cd8"> 404</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a6c99b156711d0dc093a8578b45901cd8">CallOpRecvInitialMetadata</a>() : recv_initial_metadata_(nullptr) {}</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div>
<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a4dcc9f22c6966baca69cb1935c823a8e"> 406</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a4dcc9f22c6966baca69cb1935c823a8e">RecvInitialMetadata</a>(<a class="code" href="classgrpc_1_1_client_context.html">ClientContext</a>* context) {</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; context-&gt;initial_metadata_received_ = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; recv_initial_metadata_ = &amp;context-&gt;recv_initial_metadata_;</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00412"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a4f1684c4b023b4e2d348e53f80797f74"> 412</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a4f1684c4b023b4e2d348e53f80797f74">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span> (!recv_initial_metadata_) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; memset(&amp;recv_initial_metadata_arr_, 0, <span class="keyword">sizeof</span>(recv_initial_metadata_arr_));</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; op-&gt;op = GRPC_OP_RECV_INITIAL_METADATA;</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; op-&gt;data.recv_initial_metadata = &amp;recv_initial_metadata_arr_;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; op-&gt;flags = 0;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div>
<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a85e4703487b89a0557d82237ed4a74eb"> 420</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_recv_initial_metadata.html#a85e4703487b89a0557d82237ed4a74eb">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span> (recv_initial_metadata_ == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="namespacegrpc.html#a00d2939a7b40a674459016f6148f372d">FillMetadataMap</a>(&amp;recv_initial_metadata_arr_, recv_initial_metadata_);</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; recv_initial_metadata_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; std::multimap&lt;grpc::string, grpc::string&gt;* recv_initial_metadata_;</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; grpc_metadata_array recv_initial_metadata_arr_;</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;};</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div>
<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_recv_status.html"> 431</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_client_recv_status.html">CallOpClientRecvStatus</a> {</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_recv_status.html#a86b01d095cec90f64a2fbd02da9be7de"> 433</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_client_recv_status.html#a86b01d095cec90f64a2fbd02da9be7de">CallOpClientRecvStatus</a>() : recv_status_(nullptr) {}</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div>
<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_recv_status.html#aa5af560ab0bb741197553bbb2538b813"> 435</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_client_recv_status.html#aa5af560ab0bb741197553bbb2538b813">ClientRecvStatus</a>(<a class="code" href="classgrpc_1_1_client_context.html">ClientContext</a>* context, <a class="code" href="classgrpc_1_1_status.html">Status</a>* status) {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; recv_trailing_metadata_ = &amp;context-&gt;trailing_metadata_;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; recv_status_ = status;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_recv_status.html#a12467c52794548c0022256c153ed7e62"> 441</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_client_recv_status.html#a12467c52794548c0022256c153ed7e62">AddOp</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) {</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (recv_status_ == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; memset(&amp;recv_trailing_metadata_arr_, 0,</div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">sizeof</span>(recv_trailing_metadata_arr_));</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; status_details_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; status_details_capacity_ = 0;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; grpc_op* op = &amp;ops[(*nops)++];</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; op-&gt;op = GRPC_OP_RECV_STATUS_ON_CLIENT;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; op-&gt;data.recv_status_on_client.trailing_metadata =</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; &amp;recv_trailing_metadata_arr_;</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; op-&gt;data.recv_status_on_client.status = &amp;status_code_;</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; op-&gt;data.recv_status_on_client.status_details = &amp;status_details_;</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; op-&gt;data.recv_status_on_client.status_details_capacity =</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; &amp;status_details_capacity_;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; op-&gt;flags = 0;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div>
<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_client_recv_status.html#ac6fcc3bc9d7725d1ce822b560156445f"> 458</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_client_recv_status.html#ac6fcc3bc9d7725d1ce822b560156445f">FinishOp</a>(<span class="keywordtype">bool</span>* status, <span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">if</span> (recv_status_ == <span class="keyword">nullptr</span>) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <a class="code" href="namespacegrpc.html#a00d2939a7b40a674459016f6148f372d">FillMetadataMap</a>(&amp;recv_trailing_metadata_arr_, recv_trailing_metadata_);</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; *recv_status_ = <a class="code" href="classgrpc_1_1_status.html">Status</a>(</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; static_cast&lt;StatusCode&gt;(status_code_),</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; status_details_ ? <a class="code" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a>(status_details_) : <a class="code" href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a>());</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; gpr_free(status_details_);</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; recv_status_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; std::multimap&lt;grpc::string, grpc::string&gt;* recv_trailing_metadata_;</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <a class="code" href="classgrpc_1_1_status.html">Status</a>* recv_status_;</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; grpc_metadata_array recv_trailing_metadata_arr_;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; grpc_status_code status_code_;</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordtype">char</span>* status_details_;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordtype">size_t</span> status_details_capacity_;</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;};</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div>
<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set_interface.html"> 482</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_set_interface.html">CallOpSetInterface</a> : <span class="keyword">public</span> <a class="code" href="classgrpc_1_1_completion_queue_tag.html">CompletionQueueTag</a> {</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set_interface.html#ad331a10c0fd65f5a9db680e95682f000"> 484</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_set_interface.html#ad331a10c0fd65f5a9db680e95682f000">CallOpSetInterface</a>() : <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>(0) {}</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_set_interface.html#ae0c95dfc28fc2a0add3e3bec1a703874">FillOps</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) = 0;</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
<div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set_interface.html#ac1e3a95ce9a1727011b7e7ce76829f0a"> 489</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_set_interface.html#ac1e3a95ce9a1727011b7e7ce76829f0a">set_max_message_size</a>(<span class="keywordtype">int</span> max_message_size) {</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a> = max_message_size;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; }</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf"> 494</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>;</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;};</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Op1 = CallNoOp&lt;1&gt;, <span class="keyword">class</span> Op2 = CallNoOp&lt;2&gt;,</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">class</span> Op3 = CallNoOp&lt;3&gt;, <span class="keyword">class</span> Op4 = CallNoOp&lt;4&gt;,</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keyword">class</span> Op5 = CallNoOp&lt;5&gt;, <span class="keyword">class</span> Op6 = CallNoOp&lt;6&gt;&gt;</div>
<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set.html"> 506</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_op_set.html">CallOpSet</a> : <span class="keyword">public</span> <a class="code" href="classgrpc_1_1_call_op_set_interface.html">CallOpSetInterface</a>,</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keyword">public</span> Op1,</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keyword">public</span> Op2,</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keyword">public</span> Op3,</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">public</span> Op4,</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">public</span> Op5,</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">public</span> Op6 {</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set.html#ae06e1a2d051b6b404eec88c4be303bcf"> 514</a></span>&#160; <a class="code" href="classgrpc_1_1_call_op_set.html#ae06e1a2d051b6b404eec88c4be303bcf">CallOpSet</a>() : return_tag_(this) {}</div>
<div class="line"><a name="l00515"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set.html#a886b55145cdad0994ec589b4f4c7df9c"> 515</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_set.html#a886b55145cdad0994ec589b4f4c7df9c">FillOps</a>(grpc_op* ops, <span class="keywordtype">size_t</span>* nops) <a class="code" href="config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a> {</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; this-&gt;Op1::AddOp(ops, nops);</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; this-&gt;Op2::AddOp(ops, nops);</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; this-&gt;Op3::AddOp(ops, nops);</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; this-&gt;Op4::AddOp(ops, nops);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; this-&gt;Op5::AddOp(ops, nops);</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; this-&gt;Op6::AddOp(ops, nops);</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;</div>
<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set.html#a66575110fdb84b974182154a01464180"> 524</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc_1_1_call_op_set.html#a66575110fdb84b974182154a01464180">FinalizeResult</a>(<span class="keywordtype">void</span>** tag, <span class="keywordtype">bool</span>* status) <a class="code" href="config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a> {</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; this-&gt;Op1::FinishOp(status, <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>);</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; this-&gt;Op2::FinishOp(status, <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>);</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; this-&gt;Op3::FinishOp(status, <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>);</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; this-&gt;Op4::FinishOp(status, <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>);</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; this-&gt;Op5::FinishOp(status, <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>);</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; this-&gt;Op6::FinishOp(status, <a class="code" href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">max_message_size_</a>);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; *tag = return_tag_;</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; }</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div>
<div class="line"><a name="l00535"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_op_set.html#a798d253af317730a5b996a4a55d86274"> 535</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_op_set.html#a798d253af317730a5b996a4a55d86274">set_output_tag</a>(<span class="keywordtype">void</span>* return_tag) { return_tag_ = return_tag; }</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordtype">void</span>* return_tag_;</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;};</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> Op1 = CallNoOp&lt;1&gt;, <span class="keyword">class</span> Op2 = CallNoOp&lt;2&gt;,</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">class</span> Op3 = CallNoOp&lt;3&gt;, <span class="keyword">class</span> Op4 = CallNoOp&lt;4&gt;,</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keyword">class</span> Op5 = CallNoOp&lt;5&gt;, <span class="keyword">class</span> Op6 = CallNoOp&lt;6&gt;&gt;</div>
<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="classgrpc_1_1_sneaky_call_op_set.html"> 548</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_sneaky_call_op_set.html">SneakyCallOpSet</a> <a class="code" href="config_8h.html#ab2216aa6e0ffe505e1ec362a9621a7f9">GRPC_FINAL</a></div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; : <span class="keyword">public</span> <a class="code" href="classgrpc_1_1_call_op_set.html">CallOpSet</a>&lt;Op1, Op2, Op3, Op4, Op5, Op6&gt; {</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00551"></a><span class="lineno"><a class="line" href="classgrpc_1_1_sneaky_call_op_set.html#a0ade5b329d43a4002388bac90a8bbafd"> 551</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc_1_1_sneaky_call_op_set.html#a0ade5b329d43a4002388bac90a8bbafd">FinalizeResult</a>(<span class="keywordtype">void</span>** tag, <span class="keywordtype">bool</span>* status) <a class="code" href="config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a> {</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keyword">typedef</span> <a class="code" href="classgrpc_1_1_call_op_set.html">CallOpSet&lt;Op1, Op2, Op3, Op4, Op5, Op6&gt;</a> Base;</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">return</span> Base::FinalizeResult(tag, status) &amp;&amp; <span class="keyword">false</span>;</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;};</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;<span class="comment">// Channel and Server implement this to allow them to hook performing ops</span></div>
<div class="line"><a name="l00558"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_hook.html"> 558</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call_hook.html">CallHook</a> {</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00560"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call_hook.html#a4aa1cf199f80f6475c6da0ad679c5d9d"> 560</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc_1_1_call_hook.html#a4aa1cf199f80f6475c6da0ad679c5d9d">~CallHook</a>() {}</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call_hook.html#acf08b6dd7d1faba4efeeb4937bc81d29">PerformOpsOnCall</a>(<a class="code" href="classgrpc_1_1_call_op_set_interface.html">CallOpSetInterface</a>* ops, <a class="code" href="classgrpc_1_1_call.html">Call</a>* call) = 0;</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;};</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;<span class="comment">// Straightforward wrapping of the C call object</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call.html"> 565</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc_1_1_call.html">Call</a> <a class="code" href="config_8h.html#ab2216aa6e0ffe505e1ec362a9621a7f9">GRPC_FINAL</a> {</div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="comment">/* call is owned by the caller */</span></div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <a class="code" href="classgrpc_1_1_call.html#ac588bdaf930ff18cab36271a686b9a0a">Call</a>(grpc_call* <a class="code" href="classgrpc_1_1_call.html#a38a1f110afa06bdfd666d00dfa281a38">call</a>, <a class="code" href="classgrpc_1_1_call_hook.html">CallHook</a>* call_hook_, <a class="code" href="classgrpc_1_1_completion_queue.html">CompletionQueue</a>* <a class="code" href="classgrpc_1_1_call.html#a5a7336b857c427aff2a210b89bb4ac14">cq</a>);</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <a class="code" href="classgrpc_1_1_call.html#ac588bdaf930ff18cab36271a686b9a0a">Call</a>(grpc_call* call, <a class="code" href="classgrpc_1_1_call_hook.html">CallHook</a>* call_hook_, <a class="code" href="classgrpc_1_1_completion_queue.html">CompletionQueue</a>* cq,</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classgrpc_1_1_call.html#aabd1f570cd026b4e5630abc58498a095">max_message_size</a>);</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc_1_1_call.html#a78ca141a1008fbbb122ee4de076edcc4">PerformOps</a>(<a class="code" href="classgrpc_1_1_call_op_set_interface.html">CallOpSetInterface</a>* ops);</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div>
<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call.html#a38a1f110afa06bdfd666d00dfa281a38"> 574</a></span>&#160; grpc_call* <a class="code" href="classgrpc_1_1_call.html#a38a1f110afa06bdfd666d00dfa281a38">call</a>() { <span class="keywordflow">return</span> call_; }</div>
<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call.html#a5a7336b857c427aff2a210b89bb4ac14"> 575</a></span>&#160; <a class="code" href="classgrpc_1_1_completion_queue.html">CompletionQueue</a>* <a class="code" href="classgrpc_1_1_call.html#a5a7336b857c427aff2a210b89bb4ac14">cq</a>() { <span class="keywordflow">return</span> cq_; }</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div>
<div class="line"><a name="l00577"></a><span class="lineno"><a class="line" href="classgrpc_1_1_call.html#aabd1f570cd026b4e5630abc58498a095"> 577</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classgrpc_1_1_call.html#aabd1f570cd026b4e5630abc58498a095">max_message_size</a>() { <span class="keywordflow">return</span> max_message_size_; }</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <a class="code" href="classgrpc_1_1_call_hook.html">CallHook</a>* call_hook_;</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <a class="code" href="classgrpc_1_1_completion_queue.html">CompletionQueue</a>* cq_;</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; grpc_call* call_;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordtype">int</span> max_message_size_;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;};</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;} <span class="comment">// namespace grpc</span></div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;<span class="preprocessor">#endif // GRPCXX_IMPL_CALL_H</span></div>
<div class="ttc" id="classgrpc_1_1_call_op_server_send_status_html_ac2720fa707f1fe321afdf3a971bebcf7"><div class="ttname"><a href="classgrpc_1_1_call_op_server_send_status.html#ac2720fa707f1fe321afdf3a971bebcf7">grpc::CallOpServerSendStatus::ServerSendStatus</a></div><div class="ttdeci">void ServerSendStatus(const std::multimap&lt; grpc::string, grpc::string &gt; &amp;trailing_metadata, const Status &amp;status)</div><div class="ttdef"><b>Definition:</b> call.h:364</div></div>
<div class="ttc" id="classgrpc_1_1_call_html_ac588bdaf930ff18cab36271a686b9a0a"><div class="ttname"><a href="classgrpc_1_1_call.html#ac588bdaf930ff18cab36271a686b9a0a">grpc::Call::Call</a></div><div class="ttdeci">Call(grpc_call *call, CallHook *call_hook_, CompletionQueue *cq)</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_initial_metadata_html_a6c99b156711d0dc093a8578b45901cd8"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_initial_metadata.html#a6c99b156711d0dc093a8578b45901cd8">grpc::CallOpRecvInitialMetadata::CallOpRecvInitialMetadata</a></div><div class="ttdeci">CallOpRecvInitialMetadata()</div><div class="ttdef"><b>Definition:</b> call.h:404</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_html_a0235adb3ae82cf78552f556856feb788"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message.html#a0235adb3ae82cf78552f556856feb788">grpc::CallOpGenericRecvMessage::RecvMessage</a></div><div class="ttdeci">void RecvMessage(R *message)</div><div class="ttdef"><b>Definition:</b> call.h:303</div></div>
<div class="ttc" id="classgrpc_1_1_completion_queue_tag_html"><div class="ttname"><a href="classgrpc_1_1_completion_queue_tag.html">grpc::CompletionQueueTag</a></div><div class="ttdef"><b>Definition:</b> completion_queue.h:75</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_a897ba94e51b1f6ead41ade8f92efa89f"><div class="ttname"><a href="classgrpc_1_1_write_options.html#a897ba94e51b1f6ead41ade8f92efa89f">grpc::WriteOptions::clear_buffer_hint</a></div><div class="ttdeci">WriteOptions &amp; clear_buffer_hint()</div><div class="ttdoc">Clears flag indicating that the write may be buffered and need not go out on the wire immediately...</div><div class="ttdef"><b>Definition:</b> call.h:116</div></div>
<div class="ttc" id="classgrpc_1_1_call_no_op_html"><div class="ttname"><a href="classgrpc_1_1_call_no_op.html">grpc::CallNoOp</a></div><div class="ttdoc">Default argument for CallOpSet. </div><div class="ttdef"><b>Definition:</b> call.h:153</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_send_close_html_a4415b250cd6d5a82818ba159c272343a"><div class="ttname"><a href="classgrpc_1_1_call_op_client_send_close.html#a4415b250cd6d5a82818ba159c272343a">grpc::CallOpClientSendClose::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:348</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_server_send_status_html_ab7a24493e9b8c6f2cc122cf3bd7796e4"><div class="ttname"><a href="classgrpc_1_1_call_op_server_send_status.html#ab7a24493e9b8c6f2cc122cf3bd7796e4">grpc::CallOpServerSendStatus::CallOpServerSendStatus</a></div><div class="ttdeci">CallOpServerSendStatus()</div><div class="ttdef"><b>Definition:</b> call.h:362</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html_a1d7682714b83f3bf495be8a7804fd34d"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html#a1d7682714b83f3bf495be8a7804fd34d">grpc::CallOpSendInitialMetadata::SendInitialMetadata</a></div><div class="ttdeci">void SendInitialMetadata(const std::multimap&lt; grpc::string, grpc::string &gt; &amp;metadata)</div><div class="ttdef"><b>Definition:</b> call.h:163</div></div>
<div class="ttc" id="namespacegrpc_html_a00d2939a7b40a674459016f6148f372d"><div class="ttname"><a href="namespacegrpc.html#a00d2939a7b40a674459016f6148f372d">grpc::FillMetadataMap</a></div><div class="ttdeci">void FillMetadataMap(grpc_metadata_array *arr, std::multimap&lt; grpc::string, grpc::string &gt; *metadata)</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_aecd282a8c7424e4b0c1a5f512c44b8a8"><div class="ttname"><a href="classgrpc_1_1_write_options.html#aecd282a8c7424e4b0c1a5f512c44b8a8">grpc::WriteOptions::set_buffer_hint</a></div><div class="ttdeci">WriteOptions &amp; set_buffer_hint()</div><div class="ttdoc">Sets flag indicating that the write may be buffered and need not go out on the wire immediately...</div><div class="ttdef"><b>Definition:</b> call.h:107</div></div>
<div class="ttc" id="classgrpc_1_1_status_html_a87888a7acefced58302f89a295940f16"><div class="ttname"><a href="classgrpc_1_1_status.html#a87888a7acefced58302f89a295940f16">grpc::Status::error_message</a></div><div class="ttdeci">grpc::string error_message() const </div><div class="ttdef"><b>Definition:</b> status.h:53</div></div>
<div class="ttc" id="completion__queue_8h_html"><div class="ttname"><a href="completion__queue_8h.html">completion_queue.h</a></div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_message_html_a049e460b94bad04d19e3fbe70ba43291"><div class="ttname"><a href="classgrpc_1_1_call_op_send_message.html#a049e460b94bad04d19e3fbe70ba43291">grpc::CallOpSendMessage::CallOpSendMessage</a></div><div class="ttdeci">CallOpSendMessage()</div><div class="ttdef"><b>Definition:</b> call.h:192</div></div>
<div class="ttc" id="namespacegrpc_html_ab04a87625da3bf85cdaf5e7856b00203"><div class="ttname"><a href="namespacegrpc.html#ab04a87625da3bf85cdaf5e7856b00203">grpc::string</a></div><div class="ttdeci">std::string string</div><div class="ttdef"><b>Definition:</b> config.h:112</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_html_ac95faf8549212febce73cf6301238dfc"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message.html#ac95faf8549212febce73cf6301238dfc">grpc::CallOpGenericRecvMessage::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:311</div></div>
<div class="ttc" id="classgrpc_1_1_call_html_a5a7336b857c427aff2a210b89bb4ac14"><div class="ttname"><a href="classgrpc_1_1_call.html#a5a7336b857c427aff2a210b89bb4ac14">grpc::Call::cq</a></div><div class="ttdeci">CompletionQueue * cq()</div><div class="ttdef"><b>Definition:</b> call.h:575</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_html_a40eba461f56840935c97934829b38e16"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message.html#a40eba461f56840935c97934829b38e16">grpc::CallOpGenericRecvMessage::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:319</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_a7bc26dd151ed56bc49329ca895fe15e7"><div class="ttname"><a href="classgrpc_1_1_write_options.html#a7bc26dd151ed56bc49329ca895fe15e7">grpc::WriteOptions::clear_no_compression</a></div><div class="ttdeci">WriteOptions &amp; clear_no_compression()</div><div class="ttdoc">Clears flag for the disabling of compression for the next message write. </div><div class="ttdef"><b>Definition:</b> call.h:90</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_interface_html_a06354e63efdbbd34fa18270490aaabbf"><div class="ttname"><a href="classgrpc_1_1_call_op_set_interface.html#a06354e63efdbbd34fa18270490aaabbf">grpc::CallOpSetInterface::max_message_size_</a></div><div class="ttdeci">int max_message_size_</div><div class="ttdef"><b>Definition:</b> call.h:494</div></div>
<div class="ttc" id="classgrpc_1_1_sneaky_call_op_set_html_a0ade5b329d43a4002388bac90a8bbafd"><div class="ttname"><a href="classgrpc_1_1_sneaky_call_op_set.html#a0ade5b329d43a4002388bac90a8bbafd">grpc::SneakyCallOpSet::FinalizeResult</a></div><div class="ttdeci">bool FinalizeResult(void **tag, bool *status) GRPC_OVERRIDE</div><div class="ttdef"><b>Definition:</b> call.h:551</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_interface_html"><div class="ttname"><a href="classgrpc_1_1_call_op_set_interface.html">grpc::CallOpSetInterface</a></div><div class="ttdoc">An abstract collection of call ops, used to generate the grpc_call_op structure to pass down to the l...</div><div class="ttdef"><b>Definition:</b> call.h:482</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_recv_status_html"><div class="ttname"><a href="classgrpc_1_1_call_op_client_recv_status.html">grpc::CallOpClientRecvStatus</a></div><div class="ttdef"><b>Definition:</b> call.h:431</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_send_close_html_a7c9bcf88cc1ddf2c6cf85cf141c85656"><div class="ttname"><a href="classgrpc_1_1_call_op_client_send_close.html#a7c9bcf88cc1ddf2c6cf85cf141c85656">grpc::CallOpClientSendClose::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:354</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_message_html_a2d939fbfc75732244f389a5e2b97ab0a"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_message.html#a2d939fbfc75732244f389a5e2b97ab0a">grpc::CallOpRecvMessage::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:246</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_html_a66575110fdb84b974182154a01464180"><div class="ttname"><a href="classgrpc_1_1_call_op_set.html#a66575110fdb84b974182154a01464180">grpc::CallOpSet::FinalizeResult</a></div><div class="ttdeci">bool FinalizeResult(void **tag, bool *status) GRPC_OVERRIDE</div><div class="ttdef"><b>Definition:</b> call.h:524</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_a9fc0e51224292b15dcfefec342fa0e02"><div class="ttname"><a href="classgrpc_1_1_write_options.html#a9fc0e51224292b15dcfefec342fa0e02">grpc::WriteOptions::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Clear all flags. </div><div class="ttdef"><b>Definition:</b> call.h:70</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_message_html_a214a005bed5dd03d6dfa16f7a28b205b"><div class="ttname"><a href="classgrpc_1_1_call_op_send_message.html#a214a005bed5dd03d6dfa16f7a28b205b">grpc::CallOpSendMessage::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:213</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_server_send_status_html_a7381b06ae0268853ebf9ed3b2737698b"><div class="ttname"><a href="classgrpc_1_1_call_op_server_send_status.html#a7381b06ae0268853ebf9ed3b2737698b">grpc::CallOpServerSendStatus::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:375</div></div>
<div class="ttc" id="config_8h_html"><div class="ttname"><a href="config_8h.html">config.h</a></div></div>
<div class="ttc" id="serialization__traits_8h_html"><div class="ttname"><a href="serialization__traits_8h.html">serialization_traits.h</a></div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_a6a4e429313200ed6c017c5d306e26e93"><div class="ttname"><a href="classgrpc_1_1_write_options.html#a6a4e429313200ed6c017c5d306e26e93">grpc::WriteOptions::WriteOptions</a></div><div class="ttdeci">WriteOptions()</div><div class="ttdef"><b>Definition:</b> call.h:66</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_server_send_status_html"><div class="ttname"><a href="classgrpc_1_1_call_op_server_send_status.html">grpc::CallOpServerSendStatus</a></div><div class="ttdef"><b>Definition:</b> call.h:360</div></div>
<div class="ttc" id="config_8h_html_ab2216aa6e0ffe505e1ec362a9621a7f9"><div class="ttname"><a href="config_8h.html#ab2216aa6e0ffe505e1ec362a9621a7f9">GRPC_FINAL</a></div><div class="ttdeci">#define GRPC_FINAL</div><div class="ttdef"><b>Definition:</b> config.h:71</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_html_a886b55145cdad0994ec589b4f4c7df9c"><div class="ttname"><a href="classgrpc_1_1_call_op_set.html#a886b55145cdad0994ec589b4f4c7df9c">grpc::CallOpSet::FillOps</a></div><div class="ttdeci">void FillOps(grpc_op *ops, size_t *nops) GRPC_OVERRIDE</div><div class="ttdoc">Fills in grpc_op, starting from ops[*nops] and moving upwards. </div><div class="ttdef"><b>Definition:</b> call.h:515</div></div>
<div class="ttc" id="namespacegrpc_html_a16ecfcd344f569a6fcfa2c42e3a43aca"><div class="ttname"><a href="namespacegrpc.html#a16ecfcd344f569a6fcfa2c42e3a43aca">grpc::FillMetadataArray</a></div><div class="ttdeci">grpc_metadata * FillMetadataArray(const std::multimap&lt; grpc::string, grpc::string &gt; &amp;metadata)</div></div>
<div class="ttc" id="classgrpc_1_1_call_html_a38a1f110afa06bdfd666d00dfa281a38"><div class="ttname"><a href="classgrpc_1_1_call.html#a38a1f110afa06bdfd666d00dfa281a38">grpc::Call::call</a></div><div class="ttdeci">grpc_call * call()</div><div class="ttdef"><b>Definition:</b> call.h:574</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html_ac57cf7a43da437b8b4556839f0403a77"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html#ac57cf7a43da437b8b4556839f0403a77">grpc::CallOpSendInitialMetadata::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:171</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_afe5f12d1bf9ed01b7a833458dc889b66"><div class="ttname"><a href="classgrpc_1_1_write_options.html#afe5f12d1bf9ed01b7a833458dc889b66">grpc::WriteOptions::set_no_compression</a></div><div class="ttdeci">WriteOptions &amp; set_no_compression()</div><div class="ttdoc">Sets flag for the disabling of compression for the next message write. </div><div class="ttdef"><b>Definition:</b> call.h:82</div></div>
<div class="ttc" id="classgrpc_1_1_client_context_html"><div class="ttname"><a href="classgrpc_1_1_client_context.html">grpc::ClientContext</a></div><div class="ttdef"><b>Definition:</b> client_context.h:74</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_abe3d32a3e5879022e7b8f1c6a7533841"><div class="ttname"><a href="classgrpc_1_1_write_options.html#abe3d32a3e5879022e7b8f1c6a7533841">grpc::WriteOptions::operator=</a></div><div class="ttdeci">WriteOptions &amp; operator=(const WriteOptions &amp;rhs)</div><div class="ttdef"><b>Definition:</b> call.h:129</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_a0e047a4f3d159749153bff276880e153"><div class="ttname"><a href="classgrpc_1_1_write_options.html#a0e047a4f3d159749153bff276880e153">grpc::WriteOptions::flags</a></div><div class="ttdeci">gpr_uint32 flags() const </div><div class="ttdoc">Returns raw flags bitset. </div><div class="ttdef"><b>Definition:</b> call.h:75</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_recv_status_html_ac6fcc3bc9d7725d1ce822b560156445f"><div class="ttname"><a href="classgrpc_1_1_call_op_client_recv_status.html#ac6fcc3bc9d7725d1ce822b560156445f">grpc::CallOpClientRecvStatus::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:458</div></div>
<div class="ttc" id="classgrpc_1_1_serialization_traits_html"><div class="ttname"><a href="classgrpc_1_1_serialization_traits.html">grpc::SerializationTraits</a></div><div class="ttdoc">Defines how to serialize and deserialize some type. </div><div class="ttdef"><b>Definition:</b> serialization_traits.h:64</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_message_html"><div class="ttname"><a href="classgrpc_1_1_call_op_send_message.html">grpc::CallOpSendMessage</a></div><div class="ttdef"><b>Definition:</b> call.h:190</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html_a2e867bf1e2a14f51fbda7ffe4a9d0e30"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html#a2e867bf1e2a14f51fbda7ffe4a9d0e30">grpc::CallOpSendInitialMetadata::send_</a></div><div class="ttdeci">bool send_</div><div class="ttdef"><b>Definition:</b> call.h:185</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_recv_status_html_a86b01d095cec90f64a2fbd02da9be7de"><div class="ttname"><a href="classgrpc_1_1_call_op_client_recv_status.html#a86b01d095cec90f64a2fbd02da9be7de">grpc::CallOpClientRecvStatus::CallOpClientRecvStatus</a></div><div class="ttdeci">CallOpClientRecvStatus()</div><div class="ttdef"><b>Definition:</b> call.h:433</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_accb16dd92f4001a6d024ffb01178d4bf"><div class="ttname"><a href="classgrpc_1_1_write_options.html#accb16dd92f4001a6d024ffb01178d4bf">grpc::WriteOptions::get_no_compression</a></div><div class="ttdeci">bool get_no_compression() const </div><div class="ttdoc">Get value for the flag indicating whether compression for the next message write is forcefully disabl...</div><div class="ttdef"><b>Definition:</b> call.h:99</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type_html_aff7b6d6d9e51e6d0bdb3a150bc5f99d4"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html#aff7b6d6d9e51e6d0bdb3a150bc5f99d4">grpc::CallOpGenericRecvMessageHelper::DeserializeFuncType::Deserialize</a></div><div class="ttdeci">Status Deserialize(grpc_byte_buffer *buf, int max_message_size) GRPC_OVERRIDE</div><div class="ttdef"><b>Definition:</b> call.h:288</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_html_ae06e1a2d051b6b404eec88c4be303bcf"><div class="ttname"><a href="classgrpc_1_1_call_op_set.html#ae06e1a2d051b6b404eec88c4be303bcf">grpc::CallOpSet::CallOpSet</a></div><div class="ttdeci">CallOpSet()</div><div class="ttdef"><b>Definition:</b> call.h:514</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_server_send_status_html_a91b57e7b08540afa237cf7621558c978"><div class="ttname"><a href="classgrpc_1_1_call_op_server_send_status.html#a91b57e7b08540afa237cf7621558c978">grpc::CallOpServerSendStatus::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:388</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_send_close_html"><div class="ttname"><a href="classgrpc_1_1_call_op_client_send_close.html">grpc::CallOpClientSendClose</a></div><div class="ttdef"><b>Definition:</b> call.h:341</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html_a1cf749118f03392e186d251c48200dd8"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html#a1cf749118f03392e186d251c48200dd8">grpc::CallOpSendInitialMetadata::CallOpSendInitialMetadata</a></div><div class="ttdeci">CallOpSendInitialMetadata()</div><div class="ttdef"><b>Definition:</b> call.h:161</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_recv_status_html_a12467c52794548c0022256c153ed7e62"><div class="ttname"><a href="classgrpc_1_1_call_op_client_recv_status.html#a12467c52794548c0022256c153ed7e62">grpc::CallOpClientRecvStatus::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:441</div></div>
<div class="ttc" id="classgrpc_1_1_call_html"><div class="ttname"><a href="classgrpc_1_1_call.html">grpc::Call</a></div><div class="ttdef"><b>Definition:</b> call.h:565</div></div>
<div class="ttc" id="classgrpc_1_1_call_no_op_html_a72c69197fb8ad18542e459bffbd8cbd8"><div class="ttname"><a href="classgrpc_1_1_call_no_op.html#a72c69197fb8ad18542e459bffbd8cbd8">grpc::CallNoOp::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:155</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_initial_metadata_html_a85e4703487b89a0557d82237ed4a74eb"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_initial_metadata.html#a85e4703487b89a0557d82237ed4a74eb">grpc::CallOpRecvInitialMetadata::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:420</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_interface_html_ad331a10c0fd65f5a9db680e95682f000"><div class="ttname"><a href="classgrpc_1_1_call_op_set_interface.html#ad331a10c0fd65f5a9db680e95682f000">grpc::CallOpSetInterface::CallOpSetInterface</a></div><div class="ttdeci">CallOpSetInterface()</div><div class="ttdef"><b>Definition:</b> call.h:484</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type_html"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html">grpc::CallOpGenericRecvMessageHelper::DeserializeFuncType</a></div><div class="ttdef"><b>Definition:</b> call.h:285</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_a4d7753bbd8d9d61e2c6d3e49e29be021"><div class="ttname"><a href="classgrpc_1_1_write_options.html#a4d7753bbd8d9d61e2c6d3e49e29be021">grpc::WriteOptions::WriteOptions</a></div><div class="ttdeci">WriteOptions(const WriteOptions &amp;other)</div><div class="ttdef"><b>Definition:</b> call.h:67</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_html"><div class="ttname"><a href="classgrpc_1_1_call_op_set.html">grpc::CallOpSet</a></div><div class="ttdoc">Primary implementaiton of CallOpSetInterface. </div><div class="ttdef"><b>Definition:</b> call.h:506</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_send_close_html_a43cd5b76bc82ccd2292e318bcc2a34cc"><div class="ttname"><a href="classgrpc_1_1_call_op_client_send_close.html#a43cd5b76bc82ccd2292e318bcc2a34cc">grpc::CallOpClientSendClose::ClientSendClose</a></div><div class="ttdeci">void ClientSendClose()</div><div class="ttdef"><b>Definition:</b> call.h:345</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_message_html"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_message.html">grpc::CallOpRecvMessage</a></div><div class="ttdef"><b>Definition:</b> call.h:237</div></div>
<div class="ttc" id="classgrpc_1_1_call_html_aabd1f570cd026b4e5630abc58498a095"><div class="ttname"><a href="classgrpc_1_1_call.html#aabd1f570cd026b4e5630abc58498a095">grpc::Call::max_message_size</a></div><div class="ttdeci">int max_message_size()</div><div class="ttdef"><b>Definition:</b> call.h:577</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html"><div class="ttname"><a href="classgrpc_1_1_write_options.html">grpc::WriteOptions</a></div><div class="ttdoc">Per-message write options. </div><div class="ttdef"><b>Definition:</b> call.h:64</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_send_close_html_a1601bc705c51e46133f2ee97921c712e"><div class="ttname"><a href="classgrpc_1_1_call_op_client_send_close.html#a1601bc705c51e46133f2ee97921c712e">grpc::CallOpClientSendClose::CallOpClientSendClose</a></div><div class="ttdeci">CallOpClientSendClose()</div><div class="ttdef"><b>Definition:</b> call.h:343</div></div>
<div class="ttc" id="classgrpc_1_1_write_options_html_a58a983a81a17d0b8f3996164f55912ef"><div class="ttname"><a href="classgrpc_1_1_write_options.html#a58a983a81a17d0b8f3996164f55912ef">grpc::WriteOptions::get_buffer_hint</a></div><div class="ttdeci">bool get_buffer_hint() const </div><div class="ttdoc">Get value for the flag indicating that the write may be buffered and need not go out on the wire imme...</div><div class="ttdef"><b>Definition:</b> call.h:125</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_message_html_a5f2ead0399f19a906b82f87a82f24253"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_message.html#a5f2ead0399f19a906b82f87a82f24253">grpc::CallOpRecvMessage::CallOpRecvMessage</a></div><div class="ttdeci">CallOpRecvMessage()</div><div class="ttdef"><b>Definition:</b> call.h:239</div></div>
<div class="ttc" id="classgrpc_1_1_status_html_a78b50cb074bcd9f1dd50e8f212f7e181"><div class="ttname"><a href="classgrpc_1_1_status.html#a78b50cb074bcd9f1dd50e8f212f7e181">grpc::Status::error_code</a></div><div class="ttdeci">StatusCode error_code() const </div><div class="ttdef"><b>Definition:</b> status.h:52</div></div>
<div class="ttc" id="classgrpc_1_1_completion_queue_html"><div class="ttname"><a href="classgrpc_1_1_completion_queue.html">grpc::CompletionQueue</a></div><div class="ttdef"><b>Definition:</b> completion_queue.h:87</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_message_html_a3cf3a795e98b7db1488ba6c098ac7dd9"><div class="ttname"><a href="classgrpc_1_1_call_op_send_message.html#a3cf3a795e98b7db1488ba6c098ac7dd9">grpc::CallOpSendMessage::SendMessage</a></div><div class="ttdeci">Status SendMessage(const M &amp;message, const WriteOptions &amp;options) GRPC_MUST_USE_RESULT</div><div class="ttdoc">Send message using options for the write. </div><div class="ttdef"><b>Definition:</b> call.h:225</div></div>
<div class="ttc" id="classgrpc_1_1_call_hook_html_acf08b6dd7d1faba4efeeb4937bc81d29"><div class="ttname"><a href="classgrpc_1_1_call_hook.html#acf08b6dd7d1faba4efeeb4937bc81d29">grpc::CallHook::PerformOpsOnCall</a></div><div class="ttdeci">virtual void PerformOpsOnCall(CallOpSetInterface *ops, Call *call)=0</div></div>
<div class="ttc" id="classgrpc_1_1_call_no_op_html_a2e39baf8e169ec930d2234c85ca577ae"><div class="ttname"><a href="classgrpc_1_1_call_no_op.html#a2e39baf8e169ec930d2234c85ca577ae">grpc::CallNoOp::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:156</div></div>
<div class="ttc" id="status_8h_html"><div class="ttname"><a href="status_8h.html">status.h</a></div></div>
<div class="ttc" id="client__context_8h_html"><div class="ttname"><a href="client__context_8h.html">client_context.h</a></div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_message_html_a95f94e74f704a7f40e1f2e30aba24c57"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_message.html#a95f94e74f704a7f40e1f2e30aba24c57">grpc::CallOpRecvMessage::got_message</a></div><div class="ttdeci">bool got_message</div><div class="ttdef"><b>Definition:</b> call.h:243</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_client_recv_status_html_aa5af560ab0bb741197553bbb2538b813"><div class="ttname"><a href="classgrpc_1_1_call_op_client_recv_status.html#aa5af560ab0bb741197553bbb2538b813">grpc::CallOpClientRecvStatus::ClientRecvStatus</a></div><div class="ttdeci">void ClientRecvStatus(ClientContext *context, Status *status)</div><div class="ttdef"><b>Definition:</b> call.h:435</div></div>
<div class="ttc" id="classgrpc_1_1_call_html_a78ca141a1008fbbb122ee4de076edcc4"><div class="ttname"><a href="classgrpc_1_1_call.html#a78ca141a1008fbbb122ee4de076edcc4">grpc::Call::PerformOps</a></div><div class="ttdeci">void PerformOps(CallOpSetInterface *ops)</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_message_html_ac235a695ea9beb6d4ff3f4f220f695c6"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_message.html#ac235a695ea9beb6d4ff3f4f220f695c6">grpc::CallOpRecvMessage::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:254</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_interface_html_ac1e3a95ce9a1727011b7e7ce76829f0a"><div class="ttname"><a href="classgrpc_1_1_call_op_set_interface.html#ac1e3a95ce9a1727011b7e7ce76829f0a">grpc::CallOpSetInterface::set_max_message_size</a></div><div class="ttdeci">void set_max_message_size(int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:489</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type_html_ae14165824fb892eefb683da1405e0316"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_type.html#ae14165824fb892eefb683da1405e0316">grpc::CallOpGenericRecvMessageHelper::DeserializeFuncType::DeserializeFuncType</a></div><div class="ttdeci">DeserializeFuncType(R *message)</div><div class="ttdef"><b>Definition:</b> call.h:287</div></div>
<div class="ttc" id="classgrpc_1_1_status_html"><div class="ttname"><a href="classgrpc_1_1_status.html">grpc::Status</a></div><div class="ttdef"><b>Definition:</b> status.h:42</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html">grpc::CallOpSendInitialMetadata</a></div><div class="ttdef"><b>Definition:</b> call.h:159</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_html_af2bc8b34d88cc5d355755ec94bf04bcb"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func.html#af2bc8b34d88cc5d355755ec94bf04bcb">grpc::CallOpGenericRecvMessageHelper::DeserializeFunc::Deserialize</a></div><div class="ttdeci">virtual Status Deserialize(grpc_byte_buffer *buf, int max_message_size)=0</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_initial_metadata_html_a4f1684c4b023b4e2d348e53f80797f74"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_initial_metadata.html#a4f1684c4b023b4e2d348e53f80797f74">grpc::CallOpRecvInitialMetadata::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:412</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_message_html_aa2bdc2952010ab3a017bb859a1c6161c"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_message.html#aa2bdc2952010ab3a017bb859a1c6161c">grpc::CallOpRecvMessage::RecvMessage</a></div><div class="ttdeci">void RecvMessage(R *message)</div><div class="ttdef"><b>Definition:</b> call.h:241</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_html_ae40448871744eb8a25b42003e2543eda"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message.html#ae40448871744eb8a25b42003e2543eda">grpc::CallOpGenericRecvMessage::CallOpGenericRecvMessage</a></div><div class="ttdeci">CallOpGenericRecvMessage()</div><div class="ttdef"><b>Definition:</b> call.h:300</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_html_a1dc0ca6159bc74ec6cbfeacb06c697a0"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message.html#a1dc0ca6159bc74ec6cbfeacb06c697a0">grpc::CallOpGenericRecvMessage::got_message</a></div><div class="ttdeci">bool got_message</div><div class="ttdef"><b>Definition:</b> call.h:308</div></div>
<div class="ttc" id="classgrpc_1_1_sneaky_call_op_set_html"><div class="ttname"><a href="classgrpc_1_1_sneaky_call_op_set.html">grpc::SneakyCallOpSet</a></div><div class="ttdoc">A CallOpSet that does not post completions to the completion queue. </div><div class="ttdef"><b>Definition:</b> call.h:548</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_interface_html_ae0c95dfc28fc2a0add3e3bec1a703874"><div class="ttname"><a href="classgrpc_1_1_call_op_set_interface.html#ae0c95dfc28fc2a0add3e3bec1a703874">grpc::CallOpSetInterface::FillOps</a></div><div class="ttdeci">virtual void FillOps(grpc_op *ops, size_t *nops)=0</div><div class="ttdoc">Fills in grpc_op, starting from ops[*nops] and moving upwards. </div></div>
<div class="ttc" id="classgrpc_1_1_call_op_set_html_a798d253af317730a5b996a4a55d86274"><div class="ttname"><a href="classgrpc_1_1_call_op_set.html#a798d253af317730a5b996a4a55d86274">grpc::CallOpSet::set_output_tag</a></div><div class="ttdeci">void set_output_tag(void *return_tag)</div><div class="ttdef"><b>Definition:</b> call.h:535</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html_a19f3366cf32ceb0199e7f636f870dd63"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html#a19f3366cf32ceb0199e7f636f870dd63">grpc::CallOpSendInitialMetadata::initial_metadata_count_</a></div><div class="ttdeci">size_t initial_metadata_count_</div><div class="ttdef"><b>Definition:</b> call.h:186</div></div>
<div class="ttc" id="config_8h_html_a9a884d706be26697c9c892365a3402a9"><div class="ttname"><a href="config_8h.html#a9a884d706be26697c9c892365a3402a9">GRPC_OVERRIDE</a></div><div class="ttdeci">#define GRPC_OVERRIDE</div><div class="ttdef"><b>Definition:</b> config.h:77</div></div>
<div class="ttc" id="classgrpc_1_1_call_hook_html"><div class="ttname"><a href="classgrpc_1_1_call_hook.html">grpc::CallHook</a></div><div class="ttdef"><b>Definition:</b> call.h:558</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_initial_metadata_html_a4dcc9f22c6966baca69cb1935c823a8e"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_initial_metadata.html#a4dcc9f22c6966baca69cb1935c823a8e">grpc::CallOpRecvInitialMetadata::RecvInitialMetadata</a></div><div class="ttdeci">void RecvInitialMetadata(ClientContext *context)</div><div class="ttdef"><b>Definition:</b> call.h:406</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_recv_initial_metadata_html"><div class="ttname"><a href="classgrpc_1_1_call_op_recv_initial_metadata.html">grpc::CallOpRecvInitialMetadata</a></div><div class="ttdef"><b>Definition:</b> call.h:402</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_message_html_a5d19fd3ab26c2b54868c9006f374728e"><div class="ttname"><a href="classgrpc_1_1_call_op_send_message.html#a5d19fd3ab26c2b54868c9006f374728e">grpc::CallOpSendMessage::AddOp</a></div><div class="ttdeci">void AddOp(grpc_op *ops, size_t *nops)</div><div class="ttdef"><b>Definition:</b> call.h:204</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html_a032d474971352a0f3ca5b1a468fa5fd4"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html#a032d474971352a0f3ca5b1a468fa5fd4">grpc::CallOpSendInitialMetadata::initial_metadata_</a></div><div class="ttdeci">grpc_metadata * initial_metadata_</div><div class="ttdef"><b>Definition:</b> call.h:187</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_send_initial_metadata_html_a70bd2ec3f8b7b95b02657902ee445a13"><div class="ttname"><a href="classgrpc_1_1_call_op_send_initial_metadata.html#a70bd2ec3f8b7b95b02657902ee445a13">grpc::CallOpSendInitialMetadata::FinishOp</a></div><div class="ttdeci">void FinishOp(bool *status, int max_message_size)</div><div class="ttdef"><b>Definition:</b> call.h:179</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_html"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message.html">grpc::CallOpGenericRecvMessage</a></div><div class="ttdef"><b>Definition:</b> call.h:298</div></div>
<div class="ttc" id="classgrpc_1_1_call_hook_html_a4aa1cf199f80f6475c6da0ad679c5d9d"><div class="ttname"><a href="classgrpc_1_1_call_hook.html#a4aa1cf199f80f6475c6da0ad679c5d9d">grpc::CallHook::~CallHook</a></div><div class="ttdeci">virtual ~CallHook()</div><div class="ttdef"><b>Definition:</b> call.h:560</div></div>
<div class="ttc" id="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func_html"><div class="ttname"><a href="classgrpc_1_1_call_op_generic_recv_message_helper_1_1_deserialize_func.html">grpc::CallOpGenericRecvMessageHelper::DeserializeFunc</a></div><div class="ttdef"><b>Definition:</b> call.h:279</div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Aug 5 2015 08:17:06 for GRPC C++ by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.6
</small></address>
</body>
</html>