blob: c87ce761399654ade38161925478546bcc60073a [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 Core: include/grpc/grpc.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/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 Core
&#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="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>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</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_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">grpc.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="status_8h_source.html">grpc/status.h</a>&gt;</code><br/>
<code>#include &lt;stddef.h&gt;</code><br/>
<code>#include &lt;<a class="el" href="byte__buffer_8h_source.html">grpc/byte_buffer.h</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="slice_8h_source.html">grpc/support/slice.h</a>&gt;</code><br/>
<code>#include &lt;<a class="el" href="time_8h_source.html">grpc/support/time.h</a>&gt;</code><br/>
</div>
<p><a href="grpc_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__arg.html">grpc_arg</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A single argument... <a href="structgrpc__arg.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">An array of arguments that can be passed around. <a href="structgrpc__channel__args.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__metadata.html">grpc_metadata</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A single metadata element. <a href="structgrpc__metadata.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__event.html">grpc_event</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result of an operation. <a href="structgrpc__event.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__call__details.html">grpc_call_details</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structgrpc__op.html">grpc_op</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments) <a href="structgrpc__op.html#details">More...</a><br/></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ae498934a02de89ce29cec570b02a2037"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ae498934a02de89ce29cec570b02a2037">GRPC_ARG_ENABLE_CENSUS</a>&#160;&#160;&#160;&quot;grpc.census&quot;</td></tr>
<tr class="memdesc:ae498934a02de89ce29cec570b02a2037"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable census for tracing and stats collection. <a href="#ae498934a02de89ce29cec570b02a2037">More...</a><br/></td></tr>
<tr class="separator:ae498934a02de89ce29cec570b02a2037"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bb9256d0b457cab219f4d9d765148b6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a5bb9256d0b457cab219f4d9d765148b6">GRPC_ARG_MAX_CONCURRENT_STREAMS</a>&#160;&#160;&#160;&quot;grpc.max_concurrent_streams&quot;</td></tr>
<tr class="memdesc:a5bb9256d0b457cab219f4d9d765148b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of concurrent incoming streams to allow on a http2 connection. <a href="#a5bb9256d0b457cab219f4d9d765148b6">More...</a><br/></td></tr>
<tr class="separator:a5bb9256d0b457cab219f4d9d765148b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50f37feb7c000a23b3b0edf4c31d4367"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a50f37feb7c000a23b3b0edf4c31d4367">GRPC_ARG_MAX_MESSAGE_LENGTH</a>&#160;&#160;&#160;&quot;grpc.max_message_length&quot;</td></tr>
<tr class="memdesc:a50f37feb7c000a23b3b0edf4c31d4367"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum message length that the channel can receive. <a href="#a50f37feb7c000a23b3b0edf4c31d4367">More...</a><br/></td></tr>
<tr class="separator:a50f37feb7c000a23b3b0edf4c31d4367"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecc45a63163796ca1bc5453938bdfb36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#aecc45a63163796ca1bc5453938bdfb36">GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER</a>&#160;&#160;&#160;&quot;grpc.http2.initial_sequence_number&quot;</td></tr>
<tr class="memdesc:aecc45a63163796ca1bc5453938bdfb36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initial sequence number for http2 transports. <a href="#aecc45a63163796ca1bc5453938bdfb36">More...</a><br/></td></tr>
<tr class="separator:aecc45a63163796ca1bc5453938bdfb36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add42f97666fbfc66b7dac253ac3b73ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#add42f97666fbfc66b7dac253ac3b73ae">GRPC_ARG_DEFAULT_AUTHORITY</a>&#160;&#160;&#160;&quot;grpc.default_authority&quot;</td></tr>
<tr class="memdesc:add42f97666fbfc66b7dac253ac3b73ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default authority to pass if none specified on call construction. <a href="#add42f97666fbfc66b7dac253ac3b73ae">More...</a><br/></td></tr>
<tr class="separator:add42f97666fbfc66b7dac253ac3b73ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0732df2d9003e9ee1c01e50e41b5a8e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a0732df2d9003e9ee1c01e50e41b5a8e2">GRPC_ARG_PRIMARY_USER_AGENT_STRING</a>&#160;&#160;&#160;&quot;grpc.primary_user_agent&quot;</td></tr>
<tr class="memdesc:a0732df2d9003e9ee1c01e50e41b5a8e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Primary user agent: goes at the start of the user-agent metadata sent on each request. <a href="#a0732df2d9003e9ee1c01e50e41b5a8e2">More...</a><br/></td></tr>
<tr class="separator:a0732df2d9003e9ee1c01e50e41b5a8e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af47b4048c11e4f8f4162f12c135c2da4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#af47b4048c11e4f8f4162f12c135c2da4">GRPC_ARG_SECONDARY_USER_AGENT_STRING</a>&#160;&#160;&#160;&quot;grpc.secondary_user_agent&quot;</td></tr>
<tr class="memdesc:af47b4048c11e4f8f4162f12c135c2da4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Secondary user agent: goes at the end of the user-agent metadata sent on each request. <a href="#af47b4048c11e4f8f4162f12c135c2da4">More...</a><br/></td></tr>
<tr class="separator:af47b4048c11e4f8f4162f12c135c2da4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf29fd8b7df2ecc47d14a7f5a3a079c0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#adf29fd8b7df2ecc47d14a7f5a3a079c0">GRPC_WRITE_BUFFER_HINT</a>&#160;&#160;&#160;(0x00000001u)</td></tr>
<tr class="memdesc:adf29fd8b7df2ecc47d14a7f5a3a079c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hint that the write may be buffered and need not go out on the wire immediately. <a href="#adf29fd8b7df2ecc47d14a7f5a3a079c0">More...</a><br/></td></tr>
<tr class="separator:adf29fd8b7df2ecc47d14a7f5a3a079c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae09000181671f031ed0e319ed557da4e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ae09000181671f031ed0e319ed557da4e">GRPC_WRITE_NO_COMPRESS</a>&#160;&#160;&#160;(0x00000002u)</td></tr>
<tr class="memdesc:ae09000181671f031ed0e319ed557da4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Force compression to be disabled for a particular write (start_write/add_metadata). <a href="#ae09000181671f031ed0e319ed557da4e">More...</a><br/></td></tr>
<tr class="separator:ae09000181671f031ed0e319ed557da4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3317259e1098b2b6f49982d6997bbf6a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a3317259e1098b2b6f49982d6997bbf6a">GRPC_WRITE_USED_MASK</a>&#160;&#160;&#160;(<a class="el" href="grpc_8h.html#adf29fd8b7df2ecc47d14a7f5a3a079c0">GRPC_WRITE_BUFFER_HINT</a> | <a class="el" href="grpc_8h.html#ae09000181671f031ed0e319ed557da4e">GRPC_WRITE_NO_COMPRESS</a>)</td></tr>
<tr class="memdesc:a3317259e1098b2b6f49982d6997bbf6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mask of all valid flags. <a href="#a3317259e1098b2b6f49982d6997bbf6a">More...</a><br/></td></tr>
<tr class="separator:a3317259e1098b2b6f49982d6997bbf6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a895faab0e6035445750e43482651ba2f"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a></td></tr>
<tr class="memdesc:a895faab0e6035445750e43482651ba2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Completion Queues enable notification of the completion of asynchronous actions. <a href="#a895faab0e6035445750e43482651ba2f">More...</a><br/></td></tr>
<tr class="separator:a895faab0e6035445750e43482651ba2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a432bfa6b9f6603643cdf9de8804c254e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__channel.html">grpc_channel</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a></td></tr>
<tr class="memdesc:a432bfa6b9f6603643cdf9de8804c254e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Channel interface allows creation of Call objects. <a href="#a432bfa6b9f6603643cdf9de8804c254e">More...</a><br/></td></tr>
<tr class="separator:a432bfa6b9f6603643cdf9de8804c254e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bbbaad8f7a806f6c834b68c5dd916d8"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__server.html">grpc_server</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a></td></tr>
<tr class="memdesc:a2bbbaad8f7a806f6c834b68c5dd916d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">A server listens to some port and responds to request calls. <a href="#a2bbbaad8f7a806f6c834b68c5dd916d8">More...</a><br/></td></tr>
<tr class="separator:a2bbbaad8f7a806f6c834b68c5dd916d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a122f8f4f0a585396d993d9b55848f222"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__call.html">grpc_call</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a></td></tr>
<tr class="memdesc:a122f8f4f0a585396d993d9b55848f222"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Call represents an RPC. <a href="#a122f8f4f0a585396d993d9b55848f222">More...</a><br/></td></tr>
<tr class="separator:a122f8f4f0a585396d993d9b55848f222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abb51216cb5ac1cfd8ca4d096e060adbb"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#abb51216cb5ac1cfd8ca4d096e060adbb">grpc_call_error</a></td></tr>
<tr class="memdesc:abb51216cb5ac1cfd8ca4d096e060adbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result of a grpc call. <a href="#abb51216cb5ac1cfd8ca4d096e060adbb">More...</a><br/></td></tr>
<tr class="separator:abb51216cb5ac1cfd8ca4d096e060adbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1da84eaead787d991c5a0c87aed7c30b"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__metadata.html">grpc_metadata</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a1da84eaead787d991c5a0c87aed7c30b">grpc_metadata</a></td></tr>
<tr class="memdesc:a1da84eaead787d991c5a0c87aed7c30b"><td class="mdescLeft">&#160;</td><td class="mdescRight">A single metadata element. <a href="#a1da84eaead787d991c5a0c87aed7c30b">More...</a><br/></td></tr>
<tr class="separator:a1da84eaead787d991c5a0c87aed7c30b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70454b2958c92c1cd8feeaa45f157b74"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a70454b2958c92c1cd8feeaa45f157b74">grpc_completion_type</a></td></tr>
<tr class="memdesc:a70454b2958c92c1cd8feeaa45f157b74"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of completion (for <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a>) <a href="#a70454b2958c92c1cd8feeaa45f157b74">More...</a><br/></td></tr>
<tr class="separator:a70454b2958c92c1cd8feeaa45f157b74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07990645ca218f6965fd83edf3f421b7"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__event.html">grpc_event</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a07990645ca218f6965fd83edf3f421b7">grpc_event</a></td></tr>
<tr class="memdesc:a07990645ca218f6965fd83edf3f421b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result of an operation. <a href="#a07990645ca218f6965fd83edf3f421b7">More...</a><br/></td></tr>
<tr class="separator:a07990645ca218f6965fd83edf3f421b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6556a58ca45ad5132b89c770cf875215"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__op.html">grpc_op</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a6556a58ca45ad5132b89c770cf875215">grpc_op</a></td></tr>
<tr class="memdesc:a6556a58ca45ad5132b89c770cf875215"><td class="mdescLeft">&#160;</td><td class="mdescRight">Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments) <a href="#a6556a58ca45ad5132b89c770cf875215">More...</a><br/></td></tr>
<tr class="separator:a6556a58ca45ad5132b89c770cf875215"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a0b06eae05e70404aedbceaebce6de593"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">grpc_arg_type</a> { <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d">GRPC_ARG_STRING</a>,
<a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689">GRPC_ARG_INTEGER</a>,
<a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b">GRPC_ARG_POINTER</a>
}</td></tr>
<tr class="memdesc:a0b06eae05e70404aedbceaebce6de593"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type specifier for <a class="el" href="structgrpc__arg.html" title="A single argument... ">grpc_arg</a>. <a href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">More...</a><br/></td></tr>
<tr class="separator:a0b06eae05e70404aedbceaebce6de593"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a065b65f5cdd062a67d82e2b6bcf68cf2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a> { <br/>
&#160;&#160;<a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77">GRPC_CHANNEL_IDLE</a>,
<a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299">GRPC_CHANNEL_CONNECTING</a>,
<a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">GRPC_CHANNEL_READY</a>,
<a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6">GRPC_CHANNEL_TRANSIENT_FAILURE</a>,
<br/>
&#160;&#160;<a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6">GRPC_CHANNEL_FATAL_FAILURE</a>
<br/>
}</td></tr>
<tr class="memdesc:a065b65f5cdd062a67d82e2b6bcf68cf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connectivity state of a channel. <a href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">More...</a><br/></td></tr>
<tr class="separator:a065b65f5cdd062a67d82e2b6bcf68cf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d5a8bdd6d53d209cacea4b6fa5d785b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> { <br/>
&#160;&#160;<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8">GRPC_CALL_OK</a> = 0,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41">GRPC_CALL_ERROR</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8">GRPC_CALL_ERROR_NOT_ON_SERVER</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6">GRPC_CALL_ERROR_NOT_ON_CLIENT</a>,
<br/>
&#160;&#160;<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a">GRPC_CALL_ERROR_ALREADY_ACCEPTED</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857">GRPC_CALL_ERROR_ALREADY_INVOKED</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296">GRPC_CALL_ERROR_NOT_INVOKED</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63">GRPC_CALL_ERROR_ALREADY_FINISHED</a>,
<br/>
&#160;&#160;<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454">GRPC_CALL_ERROR_TOO_MANY_OPERATIONS</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861">GRPC_CALL_ERROR_INVALID_FLAGS</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd">GRPC_CALL_ERROR_INVALID_METADATA</a>,
<a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f">GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE</a>
<br/>
}</td></tr>
<tr class="memdesc:a0d5a8bdd6d53d209cacea4b6fa5d785b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Result of a grpc call. <a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">More...</a><br/></td></tr>
<tr class="separator:a0d5a8bdd6d53d209cacea4b6fa5d785b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6454071421a36ebc25952ed448d5b87"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a> { <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5">GRPC_QUEUE_SHUTDOWN</a>,
<a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6">GRPC_QUEUE_TIMEOUT</a>,
<a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297">GRPC_OP_COMPLETE</a>
}</td></tr>
<tr class="memdesc:ab6454071421a36ebc25952ed448d5b87"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of completion (for <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a>) <a href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">More...</a><br/></td></tr>
<tr class="separator:ab6454071421a36ebc25952ed448d5b87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41dc9abf9678decbfcef1a037e35939a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">grpc_op_type</a> { <br/>
&#160;&#160;<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721">GRPC_OP_SEND_INITIAL_METADATA</a> = 0,
<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70">GRPC_OP_SEND_MESSAGE</a>,
<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486">GRPC_OP_SEND_CLOSE_FROM_CLIENT</a>,
<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64">GRPC_OP_SEND_STATUS_FROM_SERVER</a>,
<br/>
&#160;&#160;<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078">GRPC_OP_RECV_INITIAL_METADATA</a>,
<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5">GRPC_OP_RECV_MESSAGE</a>,
<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17">GRPC_OP_RECV_STATUS_ON_CLIENT</a>,
<a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6">GRPC_OP_RECV_CLOSE_ON_SERVER</a>
<br/>
}</td></tr>
<tr class="separator:a41dc9abf9678decbfcef1a037e35939a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a52cfda44034115720a0e88037dedbfb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a52cfda44034115720a0e88037dedbfb5">grpc_metadata_array_init</a> (<a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *array)</td></tr>
<tr class="separator:a52cfda44034115720a0e88037dedbfb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad125726d8b689cc5fc1a0444c91ed44"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#aad125726d8b689cc5fc1a0444c91ed44">grpc_metadata_array_destroy</a> (<a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *array)</td></tr>
<tr class="separator:aad125726d8b689cc5fc1a0444c91ed44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29fa3bfb0a561ba465260154a4ef3bb5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a29fa3bfb0a561ba465260154a4ef3bb5">grpc_call_details_init</a> (<a class="el" href="structgrpc__call__details.html">grpc_call_details</a> *details)</td></tr>
<tr class="separator:a29fa3bfb0a561ba465260154a4ef3bb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436819189c9155a0761db7667f9078f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a436819189c9155a0761db7667f9078f9">grpc_call_details_destroy</a> (<a class="el" href="structgrpc__call__details.html">grpc_call_details</a> *details)</td></tr>
<tr class="separator:a436819189c9155a0761db7667f9078f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa78606c93951c49eadd8d83d739798d6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#aa78606c93951c49eadd8d83d739798d6">grpc_init</a> (void)</td></tr>
<tr class="memdesc:aa78606c93951c49eadd8d83d739798d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the grpc library. <a href="#aa78606c93951c49eadd8d83d739798d6">More...</a><br/></td></tr>
<tr class="separator:aa78606c93951c49eadd8d83d739798d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1130720e50ffedd0bb065c84843b032"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#af1130720e50ffedd0bb065c84843b032">grpc_shutdown</a> (void)</td></tr>
<tr class="memdesc:af1130720e50ffedd0bb065c84843b032"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shut down the grpc library. <a href="#af1130720e50ffedd0bb065c84843b032">More...</a><br/></td></tr>
<tr class="separator:af1130720e50ffedd0bb065c84843b032"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a250ca547d790874bd7b5ceec25f18c51"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a250ca547d790874bd7b5ceec25f18c51">grpc_version_string</a> (void)</td></tr>
<tr class="memdesc:a250ca547d790874bd7b5ceec25f18c51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a string representing the current version of grpc. <a href="#a250ca547d790874bd7b5ceec25f18c51">More...</a><br/></td></tr>
<tr class="separator:a250ca547d790874bd7b5ceec25f18c51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f69c76c26125e6581491864a06ea44a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a9f69c76c26125e6581491864a06ea44a">grpc_completion_queue_create</a> (void)</td></tr>
<tr class="memdesc:a9f69c76c26125e6581491864a06ea44a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a completion queue. <a href="#a9f69c76c26125e6581491864a06ea44a">More...</a><br/></td></tr>
<tr class="separator:a9f69c76c26125e6581491864a06ea44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56a4ff1f046393205c3418c24f5d5587"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__event.html">grpc_event</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a56a4ff1f046393205c3418c24f5d5587">grpc_completion_queue_next</a> (<a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> deadline)</td></tr>
<tr class="memdesc:a56a4ff1f046393205c3418c24f5d5587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocks until an event is available, the completion queue is being shut down, or deadline is reached. <a href="#a56a4ff1f046393205c3418c24f5d5587">More...</a><br/></td></tr>
<tr class="separator:a56a4ff1f046393205c3418c24f5d5587"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21e38dd0146d244eb0e262fd1b6a50ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__event.html">grpc_event</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a21e38dd0146d244eb0e262fd1b6a50ee">grpc_completion_queue_pluck</a> (<a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq, void *tag, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> deadline)</td></tr>
<tr class="memdesc:a21e38dd0146d244eb0e262fd1b6a50ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Blocks until an event with tag 'tag' is available, the completion queue is being shutdown or deadline is reached. <a href="#a21e38dd0146d244eb0e262fd1b6a50ee">More...</a><br/></td></tr>
<tr class="separator:a21e38dd0146d244eb0e262fd1b6a50ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4051b4036c5132f02064430f67420ecd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a4051b4036c5132f02064430f67420ecd">grpc_completion_queue_shutdown</a> (<a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq)</td></tr>
<tr class="memdesc:a4051b4036c5132f02064430f67420ecd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin destruction of a completion queue. <a href="#a4051b4036c5132f02064430f67420ecd">More...</a><br/></td></tr>
<tr class="separator:a4051b4036c5132f02064430f67420ecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629a77a358721f1a3bbb8fef34c3996e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a629a77a358721f1a3bbb8fef34c3996e">grpc_completion_queue_destroy</a> (<a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq)</td></tr>
<tr class="memdesc:a629a77a358721f1a3bbb8fef34c3996e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a completion queue. <a href="#a629a77a358721f1a3bbb8fef34c3996e">More...</a><br/></td></tr>
<tr class="separator:a629a77a358721f1a3bbb8fef34c3996e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9623d8e4df1d17eb26b67d905f1d7cb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a9623d8e4df1d17eb26b67d905f1d7cb3">grpc_channel_check_connectivity_state</a> (<a class="el" href="structgrpc__channel.html">grpc_channel</a> *channel, int try_to_connect)</td></tr>
<tr class="memdesc:a9623d8e4df1d17eb26b67d905f1d7cb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check the connectivity state of a channel. <a href="#a9623d8e4df1d17eb26b67d905f1d7cb3">More...</a><br/></td></tr>
<tr class="separator:a9623d8e4df1d17eb26b67d905f1d7cb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29aa98ca6ce9f7e5116e43b0c414e96b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a29aa98ca6ce9f7e5116e43b0c414e96b">grpc_channel_watch_connectivity_state</a> (<a class="el" href="structgrpc__channel.html">grpc_channel</a> *channel, <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a> last_observed_state, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> deadline, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq, void *tag)</td></tr>
<tr class="memdesc:a29aa98ca6ce9f7e5116e43b0c414e96b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Watch for a change in connectivity state. <a href="#a29aa98ca6ce9f7e5116e43b0c414e96b">More...</a><br/></td></tr>
<tr class="separator:a29aa98ca6ce9f7e5116e43b0c414e96b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a368ca2e4f76495c3c4bfbb27eb88936e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a368ca2e4f76495c3c4bfbb27eb88936e">grpc_channel_create_call</a> (<a class="el" href="structgrpc__channel.html">grpc_channel</a> *channel, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *completion_queue, const char *method, const char *host, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> deadline)</td></tr>
<tr class="memdesc:a368ca2e4f76495c3c4bfbb27eb88936e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a call given a <a class="el" href="structgrpc__channel.html">grpc_channel</a>, in order to call 'method'. <a href="#a368ca2e4f76495c3c4bfbb27eb88936e">More...</a><br/></td></tr>
<tr class="separator:a368ca2e4f76495c3c4bfbb27eb88936e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af00855f27d8b7c6b232982446371c04d"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#af00855f27d8b7c6b232982446371c04d">grpc_channel_register_call</a> (<a class="el" href="structgrpc__channel.html">grpc_channel</a> *channel, const char *method, const char *host)</td></tr>
<tr class="memdesc:af00855f27d8b7c6b232982446371c04d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pre-register a method/host pair on a channel. <a href="#af00855f27d8b7c6b232982446371c04d">More...</a><br/></td></tr>
<tr class="separator:af00855f27d8b7c6b232982446371c04d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38aa45cdbc3d9a9529bcb6ee8b2c68aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a38aa45cdbc3d9a9529bcb6ee8b2c68aa">grpc_channel_create_registered_call</a> (<a class="el" href="structgrpc__channel.html">grpc_channel</a> *channel, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *completion_queue, void *registered_call_handle, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> deadline)</td></tr>
<tr class="memdesc:a38aa45cdbc3d9a9529bcb6ee8b2c68aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a call given a handle returned from grpc_channel_register_call. <a href="#a38aa45cdbc3d9a9529bcb6ee8b2c68aa">More...</a><br/></td></tr>
<tr class="separator:a38aa45cdbc3d9a9529bcb6ee8b2c68aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0e60993c9d6e5ceccaf2e61f690b101"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ae0e60993c9d6e5ceccaf2e61f690b101">grpc_call_start_batch</a> (<a class="el" href="structgrpc__call.html">grpc_call</a> *call, const <a class="el" href="structgrpc__op.html">grpc_op</a> *ops, size_t nops, void *tag)</td></tr>
<tr class="memdesc:ae0e60993c9d6e5ceccaf2e61f690b101"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a batch of operations defined in the array ops; when complete, post a completion of type 'tag' to the completion queue bound to the call. <a href="#ae0e60993c9d6e5ceccaf2e61f690b101">More...</a><br/></td></tr>
<tr class="separator:ae0e60993c9d6e5ceccaf2e61f690b101"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf4ac8b78da7b957ce05dc0f62719ada"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#adf4ac8b78da7b957ce05dc0f62719ada">grpc_call_get_peer</a> (<a class="el" href="structgrpc__call.html">grpc_call</a> *call)</td></tr>
<tr class="memdesc:adf4ac8b78da7b957ce05dc0f62719ada"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a newly allocated string representing the endpoint to which this call is communicating with. <a href="#adf4ac8b78da7b957ce05dc0f62719ada">More...</a><br/></td></tr>
<tr class="separator:adf4ac8b78da7b957ce05dc0f62719ada"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d5bbdac3a9068747ef3639c4e52af9a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a9d5bbdac3a9068747ef3639c4e52af9a">grpc_census_call_set_context</a> (<a class="el" href="structgrpc__call.html">grpc_call</a> *call, struct <a class="el" href="structcensus__context.html">census_context</a> *context)</td></tr>
<tr class="separator:a9d5bbdac3a9068747ef3639c4e52af9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f2c6a97262a251d18b76ad470af0e66"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcensus__context.html">census_context</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a0f2c6a97262a251d18b76ad470af0e66">grpc_census_call_get_context</a> (<a class="el" href="structgrpc__call.html">grpc_call</a> *call)</td></tr>
<tr class="separator:a0f2c6a97262a251d18b76ad470af0e66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a108ef86bc0e5ebcb05f744315e2a6499"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a108ef86bc0e5ebcb05f744315e2a6499">grpc_channel_get_target</a> (<a class="el" href="structgrpc__channel.html">grpc_channel</a> *channel)</td></tr>
<tr class="memdesc:a108ef86bc0e5ebcb05f744315e2a6499"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a newly allocated string representing the target a channel was created for. <a href="#a108ef86bc0e5ebcb05f744315e2a6499">More...</a><br/></td></tr>
<tr class="separator:a108ef86bc0e5ebcb05f744315e2a6499"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa710e7e68b23098900f924cf69797496"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#aa710e7e68b23098900f924cf69797496">grpc_insecure_channel_create</a> (const char *target, const <a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a> *args)</td></tr>
<tr class="memdesc:aa710e7e68b23098900f924cf69797496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a client channel to 'target'. <a href="#aa710e7e68b23098900f924cf69797496">More...</a><br/></td></tr>
<tr class="separator:aa710e7e68b23098900f924cf69797496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd59697f4b8bedea662939da3668ab9b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#acd59697f4b8bedea662939da3668ab9b">grpc_lame_client_channel_create</a> (const char *target)</td></tr>
<tr class="memdesc:acd59697f4b8bedea662939da3668ab9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a lame client: this client fails every operation attempted on it. <a href="#acd59697f4b8bedea662939da3668ab9b">More...</a><br/></td></tr>
<tr class="separator:acd59697f4b8bedea662939da3668ab9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16e4b95581ad12e8e0af2af8d41b71b3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a16e4b95581ad12e8e0af2af8d41b71b3">grpc_channel_destroy</a> (<a class="el" href="structgrpc__channel.html">grpc_channel</a> *channel)</td></tr>
<tr class="memdesc:a16e4b95581ad12e8e0af2af8d41b71b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Close and destroy a grpc channel. <a href="#a16e4b95581ad12e8e0af2af8d41b71b3">More...</a><br/></td></tr>
<tr class="separator:a16e4b95581ad12e8e0af2af8d41b71b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adce32a3168cfc0048423af94a3961878"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#adce32a3168cfc0048423af94a3961878">grpc_call_cancel</a> (<a class="el" href="structgrpc__call.html">grpc_call</a> *call)</td></tr>
<tr class="memdesc:adce32a3168cfc0048423af94a3961878"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by clients to cancel an RPC on the server. <a href="#adce32a3168cfc0048423af94a3961878">More...</a><br/></td></tr>
<tr class="separator:adce32a3168cfc0048423af94a3961878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8332e3ac6611ae4012ed17707d7dbcf2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a8332e3ac6611ae4012ed17707d7dbcf2">grpc_call_cancel_with_status</a> (<a class="el" href="structgrpc__call.html">grpc_call</a> *call, <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status, const char *description)</td></tr>
<tr class="memdesc:a8332e3ac6611ae4012ed17707d7dbcf2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called by clients to cancel an RPC on the server. <a href="#a8332e3ac6611ae4012ed17707d7dbcf2">More...</a><br/></td></tr>
<tr class="separator:a8332e3ac6611ae4012ed17707d7dbcf2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3edbb9347e32fd0152c8ed4bbbaf5125"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a3edbb9347e32fd0152c8ed4bbbaf5125">grpc_call_destroy</a> (<a class="el" href="structgrpc__call.html">grpc_call</a> *call)</td></tr>
<tr class="memdesc:a3edbb9347e32fd0152c8ed4bbbaf5125"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a call. <a href="#a3edbb9347e32fd0152c8ed4bbbaf5125">More...</a><br/></td></tr>
<tr class="separator:a3edbb9347e32fd0152c8ed4bbbaf5125"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a636d8fd8c888ba0a0fefacf8dcab7257"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a636d8fd8c888ba0a0fefacf8dcab7257">grpc_server_request_call</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server, <a class="el" href="structgrpc__call.html">grpc_call</a> **call, <a class="el" href="structgrpc__call__details.html">grpc_call_details</a> *details, <a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *request_metadata, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq_bound_to_call, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq_for_notification, void *tag_new)</td></tr>
<tr class="memdesc:a636d8fd8c888ba0a0fefacf8dcab7257"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request notification of a new call. <a href="#a636d8fd8c888ba0a0fefacf8dcab7257">More...</a><br/></td></tr>
<tr class="separator:a636d8fd8c888ba0a0fefacf8dcab7257"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a283062a2209f464f234b0e645c6fffb2"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a283062a2209f464f234b0e645c6fffb2">grpc_server_register_method</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server, const char *method, const char *host)</td></tr>
<tr class="memdesc:a283062a2209f464f234b0e645c6fffb2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a method in the server. <a href="#a283062a2209f464f234b0e645c6fffb2">More...</a><br/></td></tr>
<tr class="separator:a283062a2209f464f234b0e645c6fffb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7207900db3bba2f1ae2e3f2dfc2822de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a7207900db3bba2f1ae2e3f2dfc2822de">grpc_server_request_registered_call</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server, void *<a class="el" href="structregistered__method.html">registered_method</a>, <a class="el" href="structgrpc__call.html">grpc_call</a> **call, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> *deadline, <a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *request_metadata, <a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> **optional_payload, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq_bound_to_call, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq_for_notification, void *tag_new)</td></tr>
<tr class="memdesc:a7207900db3bba2f1ae2e3f2dfc2822de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Request notification of a new pre-registered call. <a href="#a7207900db3bba2f1ae2e3f2dfc2822de">More...</a><br/></td></tr>
<tr class="separator:a7207900db3bba2f1ae2e3f2dfc2822de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4036710ea12eccabbbbf050d6bad4cd4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a4036710ea12eccabbbbf050d6bad4cd4">grpc_server_create</a> (const <a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a> *args)</td></tr>
<tr class="memdesc:a4036710ea12eccabbbbf050d6bad4cd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a server. <a href="#a4036710ea12eccabbbbf050d6bad4cd4">More...</a><br/></td></tr>
<tr class="separator:a4036710ea12eccabbbbf050d6bad4cd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac174712f87fdae4b5757a1370e2a31cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ac174712f87fdae4b5757a1370e2a31cb">grpc_server_register_completion_queue</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq)</td></tr>
<tr class="memdesc:ac174712f87fdae4b5757a1370e2a31cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register a completion queue with the server. <a href="#ac174712f87fdae4b5757a1370e2a31cb">More...</a><br/></td></tr>
<tr class="separator:ac174712f87fdae4b5757a1370e2a31cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48cab64480658b97a775b2c7837456f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a48cab64480658b97a775b2c7837456f9">grpc_server_add_http2_port</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server, const char *addr)</td></tr>
<tr class="memdesc:a48cab64480658b97a775b2c7837456f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a HTTP2 over plaintext over tcp listener. <a href="#a48cab64480658b97a775b2c7837456f9">More...</a><br/></td></tr>
<tr class="separator:a48cab64480658b97a775b2c7837456f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5010d26419e14f5a9ab2fa86a4f7d1e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ac5010d26419e14f5a9ab2fa86a4f7d1e">grpc_server_start</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server)</td></tr>
<tr class="memdesc:ac5010d26419e14f5a9ab2fa86a4f7d1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a server - tells all listeners to start listening. <a href="#ac5010d26419e14f5a9ab2fa86a4f7d1e">More...</a><br/></td></tr>
<tr class="separator:ac5010d26419e14f5a9ab2fa86a4f7d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56fffa23c1c4bab9a469e2ac607b6db7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a56fffa23c1c4bab9a469e2ac607b6db7">grpc_server_shutdown_and_notify</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server, <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *cq, void *tag)</td></tr>
<tr class="memdesc:a56fffa23c1c4bab9a469e2ac607b6db7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Begin shutting down a server. <a href="#a56fffa23c1c4bab9a469e2ac607b6db7">More...</a><br/></td></tr>
<tr class="separator:a56fffa23c1c4bab9a469e2ac607b6db7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5c1e4f3e270a7afbc39403fff0dc803"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ac5c1e4f3e270a7afbc39403fff0dc803">grpc_server_cancel_all_calls</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server)</td></tr>
<tr class="memdesc:ac5c1e4f3e270a7afbc39403fff0dc803"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancel all in-progress calls. <a href="#ac5c1e4f3e270a7afbc39403fff0dc803">More...</a><br/></td></tr>
<tr class="separator:ac5c1e4f3e270a7afbc39403fff0dc803"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34cba45da7c32a21ac82305d670e4620"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#a34cba45da7c32a21ac82305d670e4620">grpc_server_destroy</a> (<a class="el" href="structgrpc__server.html">grpc_server</a> *server)</td></tr>
<tr class="memdesc:a34cba45da7c32a21ac82305d670e4620"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy a server. <a href="#a34cba45da7c32a21ac82305d670e4620">More...</a><br/></td></tr>
<tr class="separator:a34cba45da7c32a21ac82305d670e4620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6984d3f0c3b9bc9a47859fd4dddc350"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html#ae6984d3f0c3b9bc9a47859fd4dddc350">grpc_tracer_set_enabled</a> (const char *name, int enabled)</td></tr>
<tr class="memdesc:ae6984d3f0c3b9bc9a47859fd4dddc350"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable or disable a tracer. <a href="#ae6984d3f0c3b9bc9a47859fd4dddc350">More...</a><br/></td></tr>
<tr class="separator:ae6984d3f0c3b9bc9a47859fd4dddc350"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="add42f97666fbfc66b7dac253ac3b73ae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_ARG_DEFAULT_AUTHORITY&#160;&#160;&#160;&quot;grpc.default_authority&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Default authority to pass if none specified on call construction. </p>
</div>
</div>
<a class="anchor" id="ae498934a02de89ce29cec570b02a2037"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_ARG_ENABLE_CENSUS&#160;&#160;&#160;&quot;grpc.census&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable census for tracing and stats collection. </p>
</div>
</div>
<a class="anchor" id="aecc45a63163796ca1bc5453938bdfb36"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER&#160;&#160;&#160;&quot;grpc.http2.initial_sequence_number&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Initial sequence number for http2 transports. </p>
</div>
</div>
<a class="anchor" id="a5bb9256d0b457cab219f4d9d765148b6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_ARG_MAX_CONCURRENT_STREAMS&#160;&#160;&#160;&quot;grpc.max_concurrent_streams&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum number of concurrent incoming streams to allow on a http2 connection. </p>
</div>
</div>
<a class="anchor" id="a50f37feb7c000a23b3b0edf4c31d4367"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_ARG_MAX_MESSAGE_LENGTH&#160;&#160;&#160;&quot;grpc.max_message_length&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Maximum message length that the channel can receive. </p>
</div>
</div>
<a class="anchor" id="a0732df2d9003e9ee1c01e50e41b5a8e2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_ARG_PRIMARY_USER_AGENT_STRING&#160;&#160;&#160;&quot;grpc.primary_user_agent&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Primary user agent: goes at the start of the user-agent metadata sent on each request. </p>
</div>
</div>
<a class="anchor" id="af47b4048c11e4f8f4162f12c135c2da4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_ARG_SECONDARY_USER_AGENT_STRING&#160;&#160;&#160;&quot;grpc.secondary_user_agent&quot;</td>
</tr>
</table>
</div><div class="memdoc">
<p>Secondary user agent: goes at the end of the user-agent metadata sent on each request. </p>
</div>
</div>
<a class="anchor" id="adf29fd8b7df2ecc47d14a7f5a3a079c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_WRITE_BUFFER_HINT&#160;&#160;&#160;(0x00000001u)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Hint that the write may be buffered and need not go out on the wire immediately. </p>
<p>GRPC is free to buffer the message until the next non-buffered write, or until writes_done, but it need not buffer completely or at all. </p>
</div>
</div>
<a class="anchor" id="ae09000181671f031ed0e319ed557da4e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_WRITE_NO_COMPRESS&#160;&#160;&#160;(0x00000002u)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Force compression to be disabled for a particular write (start_write/add_metadata). </p>
<p>Illegal on invoke/accept. </p>
</div>
</div>
<a class="anchor" id="a3317259e1098b2b6f49982d6997bbf6a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_WRITE_USED_MASK&#160;&#160;&#160;(<a class="el" href="grpc_8h.html#adf29fd8b7df2ecc47d14a7f5a3a079c0">GRPC_WRITE_BUFFER_HINT</a> | <a class="el" href="grpc_8h.html#ae09000181671f031ed0e319ed557da4e">GRPC_WRITE_NO_COMPRESS</a>)</td>
</tr>
</table>
</div><div class="memdoc">
<p>Mask of all valid flags. </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a122f8f4f0a585396d993d9b55848f222"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__call.html">grpc_call</a> <a class="el" href="structgrpc__call.html">grpc_call</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A Call represents an RPC. </p>
<p>When created, it is in a configuration state allowing properties to be set until it is invoked. After invoke, the Call can have messages written to it and read from it. </p>
</div>
</div>
<a class="anchor" id="abb51216cb5ac1cfd8ca4d096e060adbb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Result of a grpc call. </p>
<p>If the caller satisfies the prerequisites of a particular operation, the grpc_call_error returned will be GRPC_CALL_OK. Receiving any other value listed here is an indication of a bug in the caller. </p>
</div>
</div>
<a class="anchor" id="a432bfa6b9f6603643cdf9de8804c254e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__channel.html">grpc_channel</a> <a class="el" href="structgrpc__channel.html">grpc_channel</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The Channel interface allows creation of Call objects. </p>
</div>
</div>
<a class="anchor" id="a895faab0e6035445750e43482651ba2f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> <a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Completion Queues enable notification of the completion of asynchronous actions. </p>
</div>
</div>
<a class="anchor" id="a70454b2958c92c1cd8feeaa45f157b74"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef enum <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a> <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The type of completion (for <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a>) </p>
</div>
</div>
<a class="anchor" id="a07990645ca218f6965fd83edf3f421b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__event.html">grpc_event</a> <a class="el" href="structgrpc__event.html">grpc_event</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The result of an operation. </p>
<p>Returned by a completion queue when the operation started with tag. </p>
</div>
</div>
<a class="anchor" id="a1da84eaead787d991c5a0c87aed7c30b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__metadata.html">grpc_metadata</a> <a class="el" href="structgrpc__metadata.html">grpc_metadata</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A single metadata element. </p>
</div>
</div>
<a class="anchor" id="a6556a58ca45ad5132b89c770cf875215"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__op.html">grpc_op</a> <a class="el" href="structgrpc__op.html">grpc_op</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments) </p>
</div>
</div>
<a class="anchor" id="a2bbbaad8f7a806f6c834b68c5dd916d8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__server.html">grpc_server</a> <a class="el" href="structgrpc__server.html">grpc_server</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>A server listens to some port and responds to request calls. </p>
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a0b06eae05e70404aedbceaebce6de593"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">grpc_arg_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Type specifier for <a class="el" href="structgrpc__arg.html" title="A single argument... ">grpc_arg</a>. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d"></a>GRPC_ARG_STRING</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689"></a>GRPC_ARG_INTEGER</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b"></a>GRPC_ARG_POINTER</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Result of a grpc call. </p>
<p>If the caller satisfies the prerequisites of a particular operation, the grpc_call_error returned will be GRPC_CALL_OK. Receiving any other value listed here is an indication of a bug in the caller. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8"></a>GRPC_CALL_OK</em>&#160;</td><td class="fielddoc">
<p>everything went ok </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41"></a>GRPC_CALL_ERROR</em>&#160;</td><td class="fielddoc">
<p>something failed, we don't know what </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8"></a>GRPC_CALL_ERROR_NOT_ON_SERVER</em>&#160;</td><td class="fielddoc">
<p>this method is not available on the server </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6"></a>GRPC_CALL_ERROR_NOT_ON_CLIENT</em>&#160;</td><td class="fielddoc">
<p>this method is not available on the client </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a"></a>GRPC_CALL_ERROR_ALREADY_ACCEPTED</em>&#160;</td><td class="fielddoc">
<p>this method must be called before server_accept </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857"></a>GRPC_CALL_ERROR_ALREADY_INVOKED</em>&#160;</td><td class="fielddoc">
<p>this method must be called before invoke </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296"></a>GRPC_CALL_ERROR_NOT_INVOKED</em>&#160;</td><td class="fielddoc">
<p>this method must be called after invoke </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63"></a>GRPC_CALL_ERROR_ALREADY_FINISHED</em>&#160;</td><td class="fielddoc">
<p>this call is already finished (writes_done or write_status has already been called) </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454"></a>GRPC_CALL_ERROR_TOO_MANY_OPERATIONS</em>&#160;</td><td class="fielddoc">
<p>there is already an outstanding read/write operation on the call </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861"></a>GRPC_CALL_ERROR_INVALID_FLAGS</em>&#160;</td><td class="fielddoc">
<p>the flags value was illegal for this call </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd"></a>GRPC_CALL_ERROR_INVALID_METADATA</em>&#160;</td><td class="fielddoc">
<p>invalid metadata was passed to this call </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f"></a>GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE</em>&#160;</td><td class="fielddoc">
<p>completion queue for notification has not been registered with the server </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="ab6454071421a36ebc25952ed448d5b87"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>The type of completion (for <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a>) </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5"></a>GRPC_QUEUE_SHUTDOWN</em>&#160;</td><td class="fielddoc">
<p>Shutting down. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6"></a>GRPC_QUEUE_TIMEOUT</em>&#160;</td><td class="fielddoc">
<p>No event before timeout. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297"></a>GRPC_OP_COMPLETE</em>&#160;</td><td class="fielddoc">
<p>Operation completion. </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a065b65f5cdd062a67d82e2b6bcf68cf2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Connectivity state of a channel. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77"></a>GRPC_CHANNEL_IDLE</em>&#160;</td><td class="fielddoc">
<p>channel is idle </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299"></a>GRPC_CHANNEL_CONNECTING</em>&#160;</td><td class="fielddoc">
<p>channel is connecting </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea"></a>GRPC_CHANNEL_READY</em>&#160;</td><td class="fielddoc">
<p>channel is ready for work </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6"></a>GRPC_CHANNEL_TRANSIENT_FAILURE</em>&#160;</td><td class="fielddoc">
<p>channel has seen a failure but expects to recover </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6"></a>GRPC_CHANNEL_FATAL_FAILURE</em>&#160;</td><td class="fielddoc">
<p>channel has seen a failure that it cannot recover from </p>
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a41dc9abf9678decbfcef1a037e35939a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">grpc_op_type</a></td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721"></a>GRPC_OP_SEND_INITIAL_METADATA</em>&#160;</td><td class="fielddoc">
<p>Send initial metadata: one and only one instance MUST be sent for each call, unless the call was cancelled - in which case this can be skipped. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70"></a>GRPC_OP_SEND_MESSAGE</em>&#160;</td><td class="fielddoc">
<p>Send a message: 0 or more of these operations can occur for each call. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486"></a>GRPC_OP_SEND_CLOSE_FROM_CLIENT</em>&#160;</td><td class="fielddoc">
<p>Send a close from the client: one and only one instance MUST be sent from the client, unless the call was cancelled - in which case this can be skipped. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64"></a>GRPC_OP_SEND_STATUS_FROM_SERVER</em>&#160;</td><td class="fielddoc">
<p>Send status from the server: one and only one instance MUST be sent from the server unless the call was cancelled - in which case this can be skipped. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078"></a>GRPC_OP_RECV_INITIAL_METADATA</em>&#160;</td><td class="fielddoc">
<p>Receive initial metadata: one and only one MUST be made on the client, must not be made on the server. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5"></a>GRPC_OP_RECV_MESSAGE</em>&#160;</td><td class="fielddoc">
<p>Receive a message: 0 or more of these operations can occur for each call. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17"></a>GRPC_OP_RECV_STATUS_ON_CLIENT</em>&#160;</td><td class="fielddoc">
<p>Receive status on the client: one and only one must be made on the client. </p>
<p>This operation always succeeds, meaning ops paired with this operation will also appear to succeed, even though they may not have. In that case the status will indicate some failure. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6"></a>GRPC_OP_RECV_CLOSE_ON_SERVER</em>&#160;</td><td class="fielddoc">
<p>Receive close on the server: one and only one must be made on the server. </p>
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="adce32a3168cfc0048423af94a3961878"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> grpc_call_cancel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td>
<td class="paramname"><em>call</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Called by clients to cancel an RPC on the server. </p>
<p>Can be called multiple times, from any thread. THREAD-SAFETY grpc_call_cancel and grpc_call_cancel_with_status are thread-safe, and can be called at any point before grpc_call_destroy is called. </p>
</div>
</div>
<a class="anchor" id="a8332e3ac6611ae4012ed17707d7dbcf2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> grpc_call_cancel_with_status </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td>
<td class="paramname"><em>call</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>&#160;</td>
<td class="paramname"><em>status</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>description</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Called by clients to cancel an RPC on the server. </p>
<p>Can be called multiple times, from any thread. If a status has not been received for the call, set it to the status code and description passed in. Importantly, this function does not send status nor description to the remote endpoint. </p>
</div>
</div>
<a class="anchor" id="a3edbb9347e32fd0152c8ed4bbbaf5125"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_call_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td>
<td class="paramname"><em>call</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroy a call. </p>
<p>THREAD SAFETY: grpc_call_destroy is thread-compatible </p>
</div>
</div>
<a class="anchor" id="a436819189c9155a0761db7667f9078f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_call_details_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call__details.html">grpc_call_details</a> *&#160;</td>
<td class="paramname"><em>details</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a29fa3bfb0a561ba465260154a4ef3bb5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_call_details_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call__details.html">grpc_call_details</a> *&#160;</td>
<td class="paramname"><em>details</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adf4ac8b78da7b957ce05dc0f62719ada"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* grpc_call_get_peer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td>
<td class="paramname"><em>call</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a newly allocated string representing the endpoint to which this call is communicating with. </p>
<p>The string is in the uri format accepted by grpc_channel_create. The returned string should be disposed of with <a class="el" href="alloc_8h.html#ae0d621b472031a64c77bd2e9fea495e8">gpr_free()</a>.</p>
<p>WARNING: this value is never authenticated or subject to any security related code. It must not be used for any authentication related functionality. Instead, use <a class="el" href="structgrpc__auth__context.html">grpc_auth_context</a>. </p>
</div>
</div>
<a class="anchor" id="ae0e60993c9d6e5ceccaf2e61f690b101"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> grpc_call_start_batch </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td>
<td class="paramname"><em>call</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structgrpc__op.html">grpc_op</a> *&#160;</td>
<td class="paramname"><em>ops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>nops</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>tag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start a batch of operations defined in the array ops; when complete, post a completion of type 'tag' to the completion queue bound to the call. </p>
<p>The order of ops specified in the batch has no significance. Only one operation of each type can be active at once in any given batch. You must call grpc_completion_queue_next or grpc_completion_queue_pluck on the completion queue associated with 'call' for work to be performed. THREAD SAFETY: access to grpc_call_start_batch in multi-threaded environment needs to be synchronized. As an optimization, you may synchronize batches containing just send operations independently from batches containing just receive operations. </p>
</div>
</div>
<a class="anchor" id="a0f2c6a97262a251d18b76ad470af0e66"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structcensus__context.html">census_context</a>* grpc_census_call_get_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td>
<td class="paramname"><em>call</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9d5bbdac3a9068747ef3639c4e52af9a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_census_call_set_context </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> *&#160;</td>
<td class="paramname"><em>call</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structcensus__context.html">census_context</a> *&#160;</td>
<td class="paramname"><em>context</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9623d8e4df1d17eb26b67d905f1d7cb3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a> grpc_channel_check_connectivity_state </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>try_to_connect</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check the connectivity state of a channel. </p>
</div>
</div>
<a class="anchor" id="a368ca2e4f76495c3c4bfbb27eb88936e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__call.html">grpc_call</a>* grpc_channel_create_call </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>completion_queue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td>
<td class="paramname"><em>deadline</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a call given a <a class="el" href="structgrpc__channel.html">grpc_channel</a>, in order to call 'method'. </p>
<p>All completions are sent to 'completion_queue'. 'method' and 'host' need only live through the invocation of this function. </p>
</div>
</div>
<a class="anchor" id="a38aa45cdbc3d9a9529bcb6ee8b2c68aa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__call.html">grpc_call</a>* grpc_channel_create_registered_call </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>completion_queue</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>registered_call_handle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td>
<td class="paramname"><em>deadline</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a call given a handle returned from grpc_channel_register_call. </p>
</div>
</div>
<a class="anchor" id="a16e4b95581ad12e8e0af2af8d41b71b3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_channel_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td>
<td class="paramname"><em>channel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Close and destroy a grpc channel. </p>
</div>
</div>
<a class="anchor" id="a108ef86bc0e5ebcb05f744315e2a6499"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* grpc_channel_get_target </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td>
<td class="paramname"><em>channel</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return a newly allocated string representing the target a channel was created for. </p>
</div>
</div>
<a class="anchor" id="af00855f27d8b7c6b232982446371c04d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* grpc_channel_register_call </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Pre-register a method/host pair on a channel. </p>
</div>
</div>
<a class="anchor" id="a29aa98ca6ce9f7e5116e43b0c414e96b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_channel_watch_connectivity_state </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__channel.html">grpc_channel</a> *&#160;</td>
<td class="paramname"><em>channel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a>&#160;</td>
<td class="paramname"><em>last_observed_state</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td>
<td class="paramname"><em>deadline</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>tag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Watch for a change in connectivity state. </p>
<p>Once the channel connectivity state is different from last_observed_state, tag will be enqueued on cq with success=1. If deadline expires BEFORE the state is changed, tag will be enqueued on cq with success=0. </p>
</div>
</div>
<a class="anchor" id="a9f69c76c26125e6581491864a06ea44a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a>* grpc_completion_queue_create </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a completion queue. </p>
</div>
</div>
<a class="anchor" id="a629a77a358721f1a3bbb8fef34c3996e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_completion_queue_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroy a completion queue. </p>
<p>The caller must ensure that the queue is drained and no threads are executing grpc_completion_queue_next </p>
</div>
</div>
<a class="anchor" id="a56a4ff1f046393205c3418c24f5d5587"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__event.html">grpc_event</a> grpc_completion_queue_next </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td>
<td class="paramname"><em>deadline</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Blocks until an event is available, the completion queue is being shut down, or deadline is reached. </p>
<p>Returns a <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a> with type GRPC_QUEUE_TIMEOUT on timeout, otherwise a <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a> describing the event that occurred.</p>
<p>Callers must not call grpc_completion_queue_next and grpc_completion_queue_pluck simultaneously on the same completion queue. </p>
</div>
</div>
<a class="anchor" id="a21e38dd0146d244eb0e262fd1b6a50ee"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__event.html">grpc_event</a> grpc_completion_queue_pluck </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>tag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td>
<td class="paramname"><em>deadline</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Blocks until an event with tag 'tag' is available, the completion queue is being shutdown or deadline is reached. </p>
<p>Returns a <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a> with type GRPC_QUEUE_TIMEOUT on timeout, otherwise a <a class="el" href="structgrpc__event.html" title="The result of an operation. ">grpc_event</a> describing the event that occurred.</p>
<p>Callers must not call grpc_completion_queue_next and grpc_completion_queue_pluck simultaneously on the same completion queue. </p>
</div>
</div>
<a class="anchor" id="a4051b4036c5132f02064430f67420ecd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_completion_queue_shutdown </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Begin destruction of a completion queue. </p>
<p>Once all possible events are drained then grpc_completion_queue_next will start to produce GRPC_QUEUE_SHUTDOWN events only. At that point it's safe to call grpc_completion_queue_destroy.</p>
<p>After calling this function applications should ensure that no NEW work is added to be published on this completion queue. </p>
</div>
</div>
<a class="anchor" id="aa78606c93951c49eadd8d83d739798d6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_init </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initialize the grpc library. </p>
<p>It is not safe to call any other grpc functions before calling this. (To avoid overhead, little checking is done, and some things may work. We do not warrant that they will continue to do so in future revisions of this library). </p>
</div>
</div>
<a class="anchor" id="aa710e7e68b23098900f924cf69797496"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__channel.html">grpc_channel</a>* grpc_insecure_channel_create </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a> *&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a client channel to 'target'. </p>
<p>Additional channel level configuration MAY be provided by <a class="el" href="structgrpc__channel__args.html" title="An array of arguments that can be passed around. ">grpc_channel_args</a>, though the expectation is that most clients will want to simply pass NULL. See <a class="el" href="structgrpc__channel__args.html" title="An array of arguments that can be passed around. ">grpc_channel_args</a> definition for more on this. The data in 'args' need only live through the invocation of this function. </p>
</div>
</div>
<a class="anchor" id="acd59697f4b8bedea662939da3668ab9b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__channel.html">grpc_channel</a>* grpc_lame_client_channel_create </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>target</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a lame client: this client fails every operation attempted on it. </p>
</div>
</div>
<a class="anchor" id="aad125726d8b689cc5fc1a0444c91ed44"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_metadata_array_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *&#160;</td>
<td class="paramname"><em>array</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a52cfda44034115720a0e88037dedbfb5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_metadata_array_init </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *&#160;</td>
<td class="paramname"><em>array</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a48cab64480658b97a775b2c7837456f9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_server_add_http2_port </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>addr</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add a HTTP2 over plaintext over tcp listener. </p>
<p>Returns bound port number on success, 0 on failure. REQUIRES: server not started </p>
</div>
</div>
<a class="anchor" id="ac5c1e4f3e270a7afbc39403fff0dc803"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_server_cancel_all_calls </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Cancel all in-progress calls. </p>
<p>Only usable after shutdown. </p>
</div>
</div>
<a class="anchor" id="a4036710ea12eccabbbbf050d6bad4cd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__server.html">grpc_server</a>* grpc_server_create </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a> *&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a server. </p>
<p>Additional configuration for each incoming channel can be specified with args. If no additional configuration is needed, args can be NULL. See <a class="el" href="structgrpc__channel__args.html" title="An array of arguments that can be passed around. ">grpc_channel_args</a> for more. The data in 'args' need only live through the invocation of this function. </p>
</div>
</div>
<a class="anchor" id="a34cba45da7c32a21ac82305d670e4620"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_server_destroy </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroy a server. </p>
<p>Shutdown must have completed beforehand (i.e. all tags generated by grpc_server_shutdown_and_notify must have been received, and at least one call to grpc_server_shutdown_and_notify must have been made). </p>
</div>
</div>
<a class="anchor" id="ac174712f87fdae4b5757a1370e2a31cb"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_server_register_completion_queue </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Register a completion queue with the server. </p>
<p>Must be done for any notification completion queue that is passed to grpc_server_request_*_call and to grpc_server_shutdown_and_notify. Must be performed prior to grpc_server_start. </p>
</div>
</div>
<a class="anchor" id="a283062a2209f464f234b0e645c6fffb2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* grpc_server_register_method </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>host</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Registers a method in the server. </p>
<p>Methods to this (host, method) pair will not be reported by grpc_server_request_call, but instead be reported by grpc_server_request_registered_call when passed the appropriate <a class="el" href="structregistered__method.html">registered_method</a> (as returned by this function). Must be called before grpc_server_start. Returns NULL on failure. </p>
</div>
</div>
<a class="anchor" id="a636d8fd8c888ba0a0fefacf8dcab7257"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> grpc_server_request_call </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> **&#160;</td>
<td class="paramname"><em>call</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__call__details.html">grpc_call_details</a> *&#160;</td>
<td class="paramname"><em>details</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *&#160;</td>
<td class="paramname"><em>request_metadata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq_bound_to_call</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq_for_notification</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>tag_new</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Request notification of a new call. </p>
<p>'cq_for_notification' must have been registered to the server via grpc_server_register_completion_queue. </p>
</div>
</div>
<a class="anchor" id="a7207900db3bba2f1ae2e3f2dfc2822de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> grpc_server_request_registered_call </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>registered_method</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__call.html">grpc_call</a> **&#160;</td>
<td class="paramname"><em>call</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a> *&#160;</td>
<td class="paramname"><em>deadline</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *&#160;</td>
<td class="paramname"><em>request_metadata</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> **&#160;</td>
<td class="paramname"><em>optional_payload</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq_bound_to_call</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq_for_notification</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>tag_new</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Request notification of a new pre-registered call. </p>
<p>'cq_for_notification' must have been registered to the server via grpc_server_register_completion_queue. </p>
</div>
</div>
<a class="anchor" id="a56fffa23c1c4bab9a469e2ac607b6db7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_server_shutdown_and_notify </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__completion__queue.html">grpc_completion_queue</a> *&#160;</td>
<td class="paramname"><em>cq</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>tag</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Begin shutting down a server. </p>
<p>After completion, no new calls or connections will be admitted. Existing calls will be allowed to complete. Send a GRPC_OP_COMPLETE event when there are no more calls being serviced. Shutdown is idempotent, and all tags will be notified at once if multiple grpc_server_shutdown_and_notify calls are made. 'cq' must have been registered to this server via grpc_server_register_completion_queue. </p>
</div>
</div>
<a class="anchor" id="ac5010d26419e14f5a9ab2fa86a4f7d1e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_server_start </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__server.html">grpc_server</a> *&#160;</td>
<td class="paramname"><em>server</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start a server - tells all listeners to start listening. </p>
</div>
</div>
<a class="anchor" id="af1130720e50ffedd0bb065c84843b032"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_shutdown </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Shut down the grpc library. </p>
<p>No memory is used by grpc after this call returns, nor are any instructions executing within the grpc library. Prior to calling, all application owned grpc objects must have been destroyed. </p>
</div>
</div>
<a class="anchor" id="ae6984d3f0c3b9bc9a47859fd4dddc350"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_tracer_set_enabled </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>enabled</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Enable or disable a tracer. </p>
<p>Tracers (usually controlled by the environment variable GRPC_TRACE) allow printf-style debugging on GRPC internals, and are useful for tracking down problems in the field.</p>
<p>Use of this function is not strictly thread-safe, but the thread-safety issues raised by it should not be of concern. </p>
</div>
</div>
<a class="anchor" id="a250ca547d790874bd7b5ceec25f18c51"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* grpc_version_string </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return a string representing the current version of grpc. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Aug 5 2015 08:17:07 for GRPC Core 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>