blob: 2ccba9d5f01944806a4cce60587962b16b53c201 [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: src/core/transport/chttp2/internal.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_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_aebb8dcc11953d78e620bbef0b9e2183.html">core</a></li><li class="navelem"><a class="el" href="dir_79268b13b30141157b35932967b4e740.html">transport</a></li><li class="navelem"><a class="el" href="dir_bf8522d75c0d0c872d1b1e399b1737b8.html">chttp2</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> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">internal.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="endpoint_8h_source.html">src/core/iomgr/endpoint.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="frame_8h_source.html">src/core/transport/chttp2/frame.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="frame__data_8h_source.html">src/core/transport/chttp2/frame_data.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="frame__goaway_8h_source.html">src/core/transport/chttp2/frame_goaway.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="frame__ping_8h_source.html">src/core/transport/chttp2/frame_ping.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="frame__rst__stream_8h_source.html">src/core/transport/chttp2/frame_rst_stream.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="frame__settings_8h_source.html">src/core/transport/chttp2/frame_settings.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="frame__window__update_8h_source.html">src/core/transport/chttp2/frame_window_update.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="hpack__parser_8h_source.html">src/core/transport/chttp2/hpack_parser.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="incoming__metadata_8h_source.html">src/core/transport/chttp2/incoming_metadata.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="stream__encoder_8h_source.html">src/core/transport/chttp2/stream_encoder.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="stream__map_8h_source.html">src/core/transport/chttp2/stream_map.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="connectivity__state_8h_source.html">src/core/transport/connectivity_state.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="transport__impl_8h_source.html">src/core/transport/transport_impl.h</a>&quot;</code><br/>
</div>
<p><a href="internal_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__chttp2__stream__list.html">grpc_chttp2_stream_list</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__chttp2__stream__link.html">grpc_chttp2_stream_link</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__chttp2__outstanding__ping.html">grpc_chttp2_outstanding_ping</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__chttp2__transport__global.html">grpc_chttp2_transport_global</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__chttp2__transport__writing.html">grpc_chttp2_transport_writing</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__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</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__chttp2__transport.html">grpc_chttp2_transport</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__chttp2__stream__global.html">grpc_chttp2_stream_global</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__chttp2__stream__writing.html">grpc_chttp2_stream_writing</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__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</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__chttp2__stream.html">grpc_chttp2_stream</a></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:a4c51a6034ac0f34ecffc582732ad68a4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a4c51a6034ac0f34ecffc582732ad68a4">GRPC_CHTTP2_CLIENT_CONNECT_STRING</a>&#160;&#160;&#160;&quot;PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n&quot;</td></tr>
<tr class="separator:a4c51a6034ac0f34ecffc582732ad68a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fd119b62e9b3648496dbb7c2f2a0025"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a5fd119b62e9b3648496dbb7c2f2a0025">GRPC_CHTTP2_CLIENT_CONNECT_STRLEN</a>&#160;&#160;&#160;(sizeof(<a class="el" href="internal_8h.html#a4c51a6034ac0f34ecffc582732ad68a4">GRPC_CHTTP2_CLIENT_CONNECT_STRING</a>) - 1)</td></tr>
<tr class="separator:a5fd119b62e9b3648496dbb7c2f2a0025"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4ecd954e779c49a6159f842dc5a2ab4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ab4ecd954e779c49a6159f842dc5a2ab4">GRPC_CHTTP2_IF_TRACING</a>(stmt)</td></tr>
<tr class="separator:ab4ecd954e779c49a6159f842dc5a2ab4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a927cb1449b541fcb1812761184135ca1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a927cb1449b541fcb1812761184135ca1">GRPC_CHTTP2_FLOWCTL_TRACE_STREAM</a>(reason, transport, context, var,delta)</td></tr>
<tr class="separator:a927cb1449b541fcb1812761184135ca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6d86669b104a248fbee4d8f63237a06"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ad6d86669b104a248fbee4d8f63237a06">GRPC_CHTTP2_FLOWCTL_TRACE_TRANSPORT</a>(reason, context, var, delta)</td></tr>
<tr class="separator:ad6d86669b104a248fbee4d8f63237a06"><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:a83a9a1c265dc0fede61598c7cd1aaec2"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a83a9a1c265dc0fede61598c7cd1aaec2">grpc_chttp2_transport</a></td></tr>
<tr class="separator:a83a9a1c265dc0fede61598c7cd1aaec2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50089f57f93d9eb16569dd3b63f879d1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__chttp2__stream.html">grpc_chttp2_stream</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a50089f57f93d9eb16569dd3b63f879d1">grpc_chttp2_stream</a></td></tr>
<tr class="separator:a50089f57f93d9eb16569dd3b63f879d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b8e11ec16028f6adaa9355602a9c591"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
<a class="el" href="structgrpc__chttp2__outstanding__ping.html">grpc_chttp2_outstanding_ping</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a4b8e11ec16028f6adaa9355602a9c591">grpc_chttp2_outstanding_ping</a></td></tr>
<tr class="separator:a4b8e11ec16028f6adaa9355602a9c591"><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:abddcdf3ebb4034fd86a102d86aff5539"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539">grpc_chttp2_stream_list_id</a> { <br/>
&#160;&#160;<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539a55472097517b6e0ad54562494cadc6a4">GRPC_CHTTP2_LIST_ALL_STREAMS</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539aad8c067aea30c7e63f1f8f578ad091ec">GRPC_CHTTP2_LIST_READ_WRITE_STATE_CHANGED</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539a472c9817d59a165a3a8a7bd6065c8af0">GRPC_CHTTP2_LIST_WRITABLE</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539a2d32b64c3350b55206ca435e489bf48a">GRPC_CHTTP2_LIST_WRITING</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539a9028d8867d7d656543018fe4e4483673">GRPC_CHTTP2_LIST_WRITTEN</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539ab16ac38146d8c206d971154d3e2e385e">GRPC_CHTTP2_LIST_PARSING_SEEN</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539ab18632dd09ec47ec222a68fccfb5b56f">GRPC_CHTTP2_LIST_CLOSED_WAITING_FOR_PARSING</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539a8a9ab1244149b1d03b5107d51f872f21">GRPC_CHTTP2_LIST_CANCELLED_WAITING_FOR_WRITING</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539a379d8479565bb2a2565e3bef983c3f09">GRPC_CHTTP2_LIST_INCOMING_WINDOW_UPDATED</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539a038c19c7cb6246583e24eb4ffe74883a">GRPC_CHTTP2_LIST_WAITING_FOR_CONCURRENCY</a>,
<a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539adbd786741979d2b2106768372bfd90a5">STREAM_LIST_COUNT</a>
<br/>
}</td></tr>
<tr class="separator:abddcdf3ebb4034fd86a102d86aff5539"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f98ba3b22480becf1bcc47253326a62"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62">grpc_chttp2_deframe_transport_state</a> { <br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a25d129ada2c0e8f26802bb1b490d0085">GRPC_DTS_CLIENT_PREFIX_0</a> = 0,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62aa40d0131ceae834fc5333dd46fe43506">GRPC_DTS_CLIENT_PREFIX_1</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a61ef7ffdaea8c2a8b0d4fb016c256ad0">GRPC_DTS_CLIENT_PREFIX_2</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a4ebe79862d221aad04f0ccb8918f1912">GRPC_DTS_CLIENT_PREFIX_3</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62ad033829aebd599a6ea3d94026d80a355">GRPC_DTS_CLIENT_PREFIX_4</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a66bdff40a54dc664cf72632276424b74">GRPC_DTS_CLIENT_PREFIX_5</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a3cc01f12b7b1f4cbcf2ed027af56f835">GRPC_DTS_CLIENT_PREFIX_6</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62af04b36417fb0350bafc7c3054cfbad90">GRPC_DTS_CLIENT_PREFIX_7</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62ac33407a02ca85302040eb22f1f639e0a">GRPC_DTS_CLIENT_PREFIX_8</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a64c70beae9714707e8750f863603cd2e">GRPC_DTS_CLIENT_PREFIX_9</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a9e8caab2da107d3b8e757c91717d47f3">GRPC_DTS_CLIENT_PREFIX_10</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62af3615fc2a32d17ae1050e78bd89e43e1">GRPC_DTS_CLIENT_PREFIX_11</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62aa452c6c245042fcc3a6b07b89bc0392a">GRPC_DTS_CLIENT_PREFIX_12</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a7f122c0c00df0bea810b2d4023b60a19">GRPC_DTS_CLIENT_PREFIX_13</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62ae9e31a7c2928921ee0cb097fba7d03aa">GRPC_DTS_CLIENT_PREFIX_14</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a06c52283890571b31d6e04c1ffc7957d">GRPC_DTS_CLIENT_PREFIX_15</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62ab6eb5b0e8a5237462ee96361b440796f">GRPC_DTS_CLIENT_PREFIX_16</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a82726c9cc14910572d203055432b6795">GRPC_DTS_CLIENT_PREFIX_17</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62ad8642b29010211229e19de9c6e0fcbc8">GRPC_DTS_CLIENT_PREFIX_18</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62ab986ee109b4635c4ccf94d7aab397257">GRPC_DTS_CLIENT_PREFIX_19</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a25a1989db73d7d542ec6fc0b10ccb1cc">GRPC_DTS_CLIENT_PREFIX_20</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a47d411086582ccce4e8d040eead17674">GRPC_DTS_CLIENT_PREFIX_21</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62ac9321d51de32a9fd554196f6fe486e75">GRPC_DTS_CLIENT_PREFIX_22</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a19861af38f4fe10f7c40b6bf99bd275e">GRPC_DTS_CLIENT_PREFIX_23</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62adbe27b41d36d475e114fde2087aab8c1">GRPC_DTS_FH_0</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a6ef23c92e88b4226bcde3d1f44150ab1">GRPC_DTS_FH_1</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62aaab31026fe27f752d727eedd9a41b5ab">GRPC_DTS_FH_2</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a1fa3cffd7776e95f961eef22681f1922">GRPC_DTS_FH_3</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a15bfd0d79ed1a62dbdc8f377f62cacbd">GRPC_DTS_FH_4</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a95f000174adbc3a27bc91b422520b6cc">GRPC_DTS_FH_5</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a7dfb17176bd8ea6005e8d27caa30e49c">GRPC_DTS_FH_6</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62af80fa92c955868a75af026943b74f976">GRPC_DTS_FH_7</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a26ea9eff9ffdbd49b96f39f6d1d8320a">GRPC_DTS_FH_8</a>,
<a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62a166f3cb24f0210d2a31e37863345b586">GRPC_DTS_FRAME</a>
<br/>
}</td></tr>
<tr class="separator:a6f98ba3b22480becf1bcc47253326a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b93cb6f95aff10ba74b6aa06d7e99cc"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a3b93cb6f95aff10ba74b6aa06d7e99cc">grpc_chttp2_write_state</a> { <a class="el" href="internal_8h.html#a3b93cb6f95aff10ba74b6aa06d7e99cca0fe604e577783cbae2a2c88221278883">GRPC_WRITE_STATE_OPEN</a>,
<a class="el" href="internal_8h.html#a3b93cb6f95aff10ba74b6aa06d7e99cca3919fcef92f060577ba356817423e633">GRPC_WRITE_STATE_QUEUED_CLOSE</a>,
<a class="el" href="internal_8h.html#a3b93cb6f95aff10ba74b6aa06d7e99cca208ef886be22d63ae3cd3880cb6a3693">GRPC_WRITE_STATE_SENT_CLOSE</a>
}</td></tr>
<tr class="separator:a3b93cb6f95aff10ba74b6aa06d7e99cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d3b30dd29e854143c461aa7e03cbfb9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a9d3b30dd29e854143c461aa7e03cbfb9">grpc_chttp2_send_closed</a> { <a class="el" href="internal_8h.html#a9d3b30dd29e854143c461aa7e03cbfb9ab7c3500e5584461922d410d38986335c">GRPC_DONT_SEND_CLOSED</a> = 0,
<a class="el" href="internal_8h.html#a9d3b30dd29e854143c461aa7e03cbfb9ab9d017cdb014717c5160971d45cc1c02">GRPC_SEND_CLOSED</a>,
<a class="el" href="internal_8h.html#a9d3b30dd29e854143c461aa7e03cbfb9ab0dbda5711c4d3612d77337cbeb88508">GRPC_SEND_CLOSED_WITH_RST_STREAM</a>
}</td></tr>
<tr class="separator:a9d3b30dd29e854143c461aa7e03cbfb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c14b42c5aba744e7f99831e0b7901ad"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a6c14b42c5aba744e7f99831e0b7901ad">grpc_chttp2_setting_set</a> { <br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6c14b42c5aba744e7f99831e0b7901ada1e2fba3c15bdcd6378ad03ed9a47a572">GRPC_PEER_SETTINGS</a> = 0,
<a class="el" href="internal_8h.html#a6c14b42c5aba744e7f99831e0b7901ada34fcc73078d41da89714d1735a6c34a0">GRPC_LOCAL_SETTINGS</a>,
<a class="el" href="internal_8h.html#a6c14b42c5aba744e7f99831e0b7901ada984818e41863a597de9f9fb6162019f5">GRPC_SENT_SETTINGS</a>,
<a class="el" href="internal_8h.html#a6c14b42c5aba744e7f99831e0b7901ada2ce0f9cd8c08c749b6471dda749d8b42">GRPC_ACKED_SETTINGS</a>,
<br/>
&#160;&#160;<a class="el" href="internal_8h.html#a6c14b42c5aba744e7f99831e0b7901adaa20accbdc29feba4c2f081ecc91e6641">GRPC_NUM_SETTING_SETS</a>
<br/>
}</td></tr>
<tr class="separator:a6c14b42c5aba744e7f99831e0b7901ad"><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:a154399c46a1f7b901491acb4c04d19d3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a154399c46a1f7b901491acb4c04d19d3">grpc_chttp2_unlocking_check_writes</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *global, <a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *writing)</td></tr>
<tr class="memdesc:a154399c46a1f7b901491acb4c04d19d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transport writing call flow: <a class="el" href="chttp2__transport_8c.html">chttp2_transport.c</a> calls grpc_chttp2_unlocking_check_writes to see if writes are required; if they are, <a class="el" href="chttp2__transport_8c.html">chttp2_transport.c</a> calls grpc_chttp2_perform_writes to do the writes. <a href="#a154399c46a1f7b901491acb4c04d19d3">More...</a><br/></td></tr>
<tr class="separator:a154399c46a1f7b901491acb4c04d19d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fa6e3087336e9d487f3987148cc3930"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a8fa6e3087336e9d487f3987148cc3930">grpc_chttp2_perform_writes</a> (<a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing, <a class="el" href="structgrpc__endpoint.html">grpc_endpoint</a> *endpoint)</td></tr>
<tr class="separator:a8fa6e3087336e9d487f3987148cc3930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a83baade3ee315270b6d34fc6fbecb30c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a83baade3ee315270b6d34fc6fbecb30c">grpc_chttp2_terminate_writing</a> (<a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing, int success)</td></tr>
<tr class="separator:a83baade3ee315270b6d34fc6fbecb30c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a309e83a79f87a133dee17a1a7dd592b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a309e83a79f87a133dee17a1a7dd592b9">grpc_chttp2_cleanup_writing</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *global, <a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *writing)</td></tr>
<tr class="separator:a309e83a79f87a133dee17a1a7dd592b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae444a83dc73e9a658e7df625a04b101a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ae444a83dc73e9a658e7df625a04b101a">grpc_chttp2_prepare_to_read</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *global, <a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *parsing)</td></tr>
<tr class="separator:ae444a83dc73e9a658e7df625a04b101a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeaab2fead1bddefe92af0bc61a3a33f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#abeaab2fead1bddefe92af0bc61a3a33f">grpc_chttp2_perform_read</a> (<a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *transport_parsing, <a class="el" href="structgpr__slice.html">gpr_slice</a> slice)</td></tr>
<tr class="memdesc:abeaab2fead1bddefe92af0bc61a3a33f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process one slice of incoming data; return 1 if the connection is still viable after reading, or 0 if the connection should be torn down. <a href="#abeaab2fead1bddefe92af0bc61a3a33f">More...</a><br/></td></tr>
<tr class="separator:abeaab2fead1bddefe92af0bc61a3a33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d137f455d722521fd7dab4fd13e1697"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a4d137f455d722521fd7dab4fd13e1697">grpc_chttp2_publish_reads</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *global, <a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *parsing)</td></tr>
<tr class="separator:a4d137f455d722521fd7dab4fd13e1697"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a117877f5202f072aa35e7ada0379d0db"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a117877f5202f072aa35e7ada0379d0db">grpc_chttp2_list_add_writable_stream</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="memdesc:a117877f5202f072aa35e7ada0379d0db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a writable stream returns non-zero if there was a stream available. <a href="#a117877f5202f072aa35e7ada0379d0db">More...</a><br/></td></tr>
<tr class="separator:a117877f5202f072aa35e7ada0379d0db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8858ea6e4f6e7c363985793b403a0ac9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a8858ea6e4f6e7c363985793b403a0ac9">grpc_chttp2_list_add_first_writable_stream</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:a8858ea6e4f6e7c363985793b403a0ac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeac970afdd6294bac9d1dcb84b702167"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#aeac970afdd6294bac9d1dcb84b702167">grpc_chttp2_list_pop_writable_stream</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global, <a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> **stream_writing)</td></tr>
<tr class="separator:aeac970afdd6294bac9d1dcb84b702167"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a789d5bcd10c0f1c7ad2fc32190fd87a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a789d5bcd10c0f1c7ad2fc32190fd87a0">grpc_chttp2_list_remove_writable_stream</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:a789d5bcd10c0f1c7ad2fc32190fd87a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d99597284d4c0a0bd3cbf102ff415a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a1d99597284d4c0a0bd3cbf102ff415a2">grpc_chttp2_list_add_incoming_window_updated</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:a1d99597284d4c0a0bd3cbf102ff415a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90a6cb6d111a750ab1f28bf4e438bb62"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a90a6cb6d111a750ab1f28bf4e438bb62">grpc_chttp2_list_pop_incoming_window_updated</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *transport_parsing, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global, <a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> **stream_parsing)</td></tr>
<tr class="separator:a90a6cb6d111a750ab1f28bf4e438bb62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a7f981b74e1e99b0a1afe0c45702d89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a8a7f981b74e1e99b0a1afe0c45702d89">grpc_chttp2_list_remove_incoming_window_updated</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:a8a7f981b74e1e99b0a1afe0c45702d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5740bd38b626e875166e60e697e099e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#af5740bd38b626e875166e60e697e099e">grpc_chttp2_list_add_writing_stream</a> (<a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing, <a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> *stream_writing)</td></tr>
<tr class="separator:af5740bd38b626e875166e60e697e099e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c7a37cef27c29528850701b9cf772d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a2c7a37cef27c29528850701b9cf772d4">grpc_chttp2_list_have_writing_streams</a> (<a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing)</td></tr>
<tr class="separator:a2c7a37cef27c29528850701b9cf772d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba4771272cd49e3012d81c05fad1bdb7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#aba4771272cd49e3012d81c05fad1bdb7">grpc_chttp2_list_pop_writing_stream</a> (<a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing, <a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> **stream_writing)</td></tr>
<tr class="separator:aba4771272cd49e3012d81c05fad1bdb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac6b7a089de78b67a9650e42b4a76ac69"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ac6b7a089de78b67a9650e42b4a76ac69">grpc_chttp2_list_add_written_stream</a> (<a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing, <a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> *stream_writing)</td></tr>
<tr class="separator:ac6b7a089de78b67a9650e42b4a76ac69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3107afcec2694dd7c7855d540a560090"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a3107afcec2694dd7c7855d540a560090">grpc_chttp2_list_pop_written_stream</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *transport_writing, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global, <a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> **stream_writing)</td></tr>
<tr class="separator:a3107afcec2694dd7c7855d540a560090"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a771e6e4a553060bfac71d00b5f866877"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a771e6e4a553060bfac71d00b5f866877">grpc_chttp2_list_add_parsing_seen_stream</a> (<a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *transport_parsing, <a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> *stream_parsing)</td></tr>
<tr class="separator:a771e6e4a553060bfac71d00b5f866877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d1ec9b2edce465d2fd18002a403878d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a1d1ec9b2edce465d2fd18002a403878d">grpc_chttp2_list_pop_parsing_seen_stream</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *transport_parsing, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global, <a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> **stream_parsing)</td></tr>
<tr class="separator:a1d1ec9b2edce465d2fd18002a403878d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71d9dea1ff323c374d7ea47818defc2e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a71d9dea1ff323c374d7ea47818defc2e">grpc_chttp2_list_add_waiting_for_concurrency</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:a71d9dea1ff323c374d7ea47818defc2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b62b98b415b3984616d4e851f0ff5c0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a6b62b98b415b3984616d4e851f0ff5c0">grpc_chttp2_list_pop_waiting_for_concurrency</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global)</td></tr>
<tr class="separator:a6b62b98b415b3984616d4e851f0ff5c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1208f234dcb6b2a73be3c875b2b52907"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a1208f234dcb6b2a73be3c875b2b52907">grpc_chttp2_list_add_closed_waiting_for_parsing</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:a1208f234dcb6b2a73be3c875b2b52907"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0434ee720b66a5ee51c9904548857af"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ad0434ee720b66a5ee51c9904548857af">grpc_chttp2_list_pop_closed_waiting_for_parsing</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global)</td></tr>
<tr class="separator:ad0434ee720b66a5ee51c9904548857af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad26dae5e10a026530f50b133359b3ee2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ad26dae5e10a026530f50b133359b3ee2">grpc_chttp2_list_add_cancelled_waiting_for_writing</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:ad26dae5e10a026530f50b133359b3ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2d2a802b9072505d1e6f8bb68727f44"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ad2d2a802b9072505d1e6f8bb68727f44">grpc_chttp2_list_pop_cancelled_waiting_for_writing</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global)</td></tr>
<tr class="separator:ad2d2a802b9072505d1e6f8bb68727f44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6b5168e8b96d0bc9f9d84a4cbef653a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#aa6b5168e8b96d0bc9f9d84a4cbef653a">grpc_chttp2_list_add_read_write_state_changed</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)</td></tr>
<tr class="separator:aa6b5168e8b96d0bc9f9d84a4cbef653a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9e8165e01d872ed42c0333aee9d31c4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ac9e8165e01d872ed42c0333aee9d31c4">grpc_chttp2_list_pop_read_write_state_changed</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **stream_global)</td></tr>
<tr class="separator:ac9e8165e01d872ed42c0333aee9d31c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f8b16bb6048f85107966a4be9ff4a4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a6f8b16bb6048f85107966a4be9ff4a4d">grpc_chttp2_schedule_closure</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="structgrpc__iomgr__closure.html">grpc_iomgr_closure</a> *closure, int success)</td></tr>
<tr class="memdesc:a6f8b16bb6048f85107966a4be9ff4a4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">schedule a closure to run without the transport lock taken <a href="#a6f8b16bb6048f85107966a4be9ff4a4d">More...</a><br/></td></tr>
<tr class="separator:a6f8b16bb6048f85107966a4be9ff4a4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae19b5968ebea2a077650652f1a3af46d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ae19b5968ebea2a077650652f1a3af46d">grpc_chttp2_parsing_lookup_stream</a> (<a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *transport_parsing, <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> id)</td></tr>
<tr class="separator:ae19b5968ebea2a077650652f1a3af46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25a39d1d95e7140c1ae8f765ffd92847"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a25a39d1d95e7140c1ae8f765ffd92847">grpc_chttp2_parsing_accept_stream</a> (<a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *transport_parsing, <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> id)</td></tr>
<tr class="separator:a25a39d1d95e7140c1ae8f765ffd92847"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb6a160980622d4e5d1b8e9e608c6771"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#aeb6a160980622d4e5d1b8e9e608c6771">grpc_chttp2_add_incoming_goaway</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> goaway_error, <a class="el" href="structgpr__slice.html">gpr_slice</a> goaway_text)</td></tr>
<tr class="separator:aeb6a160980622d4e5d1b8e9e608c6771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:accb6dbbacb57c3f9860e6ec6eca2390e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#accb6dbbacb57c3f9860e6ec6eca2390e">grpc_chttp2_register_stream</a> (<a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a> *t, <a class="el" href="structgrpc__chttp2__stream.html">grpc_chttp2_stream</a> *s)</td></tr>
<tr class="separator:accb6dbbacb57c3f9860e6ec6eca2390e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558d8331836125098834d28a94e39bcc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a558d8331836125098834d28a94e39bcc">grpc_chttp2_unregister_stream</a> (<a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a> *t, <a class="el" href="structgrpc__chttp2__stream.html">grpc_chttp2_stream</a> *s) <a class="el" href="port__platform_8h.html#aef49047a3be38448a61332117b306686">GRPC_MUST_USE_RESULT</a></td></tr>
<tr class="separator:a558d8331836125098834d28a94e39bcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a19ad8f2b321787a1255a888d5d5923f1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a19ad8f2b321787a1255a888d5d5923f1">grpc_chttp2_has_streams</a> (<a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a> *t)</td></tr>
<tr class="separator:a19ad8f2b321787a1255a888d5d5923f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62031f6afc6643cc2f34b4af2d547576"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a62031f6afc6643cc2f34b4af2d547576">grpc_chttp2_for_all_streams</a> (<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, void *user_data, void(*cb)(<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, void *user_data, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global))</td></tr>
<tr class="separator:a62031f6afc6643cc2f34b4af2d547576"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6a13571d6666f45a64c8e0f6b234e60"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ad6a13571d6666f45a64c8e0f6b234e60">grpc_chttp2_parsing_become_skip_parser</a> (<a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *transport_parsing)</td></tr>
<tr class="separator:ad6a13571d6666f45a64c8e0f6b234e60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac054ecf6e743093e5527787063f3acaa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#ac054ecf6e743093e5527787063f3acaa">grpc_chttp2_flowctl_trace</a> (const char *file, int line, const char *reason, const char *context, const char *var, int is_client, <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> stream_id, <a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a> current_value, <a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a> delta)</td></tr>
<tr class="separator:ac054ecf6e743093e5527787063f3acaa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a6bb76c8188f883af2fb738233abdeea0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#a6bb76c8188f883af2fb738233abdeea0">grpc_http_trace</a></td></tr>
<tr class="separator:a6bb76c8188f883af2fb738233abdeea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd0f83d780e8ddeac885163c45aab0a8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="internal_8h.html#afd0f83d780e8ddeac885163c45aab0a8">grpc_flowctl_trace</a></td></tr>
<tr class="separator:afd0f83d780e8ddeac885163c45aab0a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a4c51a6034ac0f34ecffc582732ad68a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_CHTTP2_CLIENT_CONNECT_STRING&#160;&#160;&#160;&quot;PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5fd119b62e9b3648496dbb7c2f2a0025"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_CHTTP2_CLIENT_CONNECT_STRLEN&#160;&#160;&#160;(sizeof(<a class="el" href="internal_8h.html#a4c51a6034ac0f34ecffc582732ad68a4">GRPC_CHTTP2_CLIENT_CONNECT_STRING</a>) - 1)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a927cb1449b541fcb1812761184135ca1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_CHTTP2_FLOWCTL_TRACE_STREAM</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">reason, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">transport, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">context, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">var, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">delta&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!(<a class="code" href="internal_8h.html#afd0f83d780e8ddeac885163c45aab0a8">grpc_flowctl_trace</a>)) { \</div>
<div class="line"> } <span class="keywordflow">else</span> { <a class="code" href="internal_8h.html#ac054ecf6e743093e5527787063f3acaa">\</a></div>
<div class="line"><a class="code" href="internal_8h.html#ac054ecf6e743093e5527787063f3acaa"> grpc_chttp2_flowctl_trace</a>(__FILE__, __LINE__, reason, #context, #var, \</div>
<div class="line"> transport-&gt;is_client, context-&gt;id, context-&gt;var, \</div>
<div class="line"> delta); \</div>
<div class="line"> }</div>
<div class="ttc" id="internal_8h_html_afd0f83d780e8ddeac885163c45aab0a8"><div class="ttname"><a href="internal_8h.html#afd0f83d780e8ddeac885163c45aab0a8">grpc_flowctl_trace</a></div><div class="ttdeci">int grpc_flowctl_trace</div><div class="ttdef"><b>Definition:</b> chttp2_transport.c:61</div></div>
<div class="ttc" id="internal_8h_html_ac054ecf6e743093e5527787063f3acaa"><div class="ttname"><a href="internal_8h.html#ac054ecf6e743093e5527787063f3acaa">grpc_chttp2_flowctl_trace</a></div><div class="ttdeci">void grpc_chttp2_flowctl_trace(const char *file, int line, const char *reason, const char *context, const char *var, int is_client, gpr_uint32 stream_id, gpr_int64 current_value, gpr_int64 delta)</div><div class="ttdef"><b>Definition:</b> chttp2_transport.c:1069</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ad6d86669b104a248fbee4d8f63237a06"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_CHTTP2_FLOWCTL_TRACE_TRANSPORT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">reason, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">context, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">var, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname">delta&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!(<a class="code" href="internal_8h.html#afd0f83d780e8ddeac885163c45aab0a8">grpc_flowctl_trace</a>)) { \</div>
<div class="line"> } <span class="keywordflow">else</span> { <a class="code" href="internal_8h.html#ac054ecf6e743093e5527787063f3acaa">\</a></div>
<div class="line"><a class="code" href="internal_8h.html#ac054ecf6e743093e5527787063f3acaa"> grpc_chttp2_flowctl_trace</a>(__FILE__, __LINE__, reason, #context, #var, \</div>
<div class="line"> context-&gt;is_client, 0, context-&gt;var, delta); \</div>
<div class="line"> }</div>
<div class="ttc" id="internal_8h_html_afd0f83d780e8ddeac885163c45aab0a8"><div class="ttname"><a href="internal_8h.html#afd0f83d780e8ddeac885163c45aab0a8">grpc_flowctl_trace</a></div><div class="ttdeci">int grpc_flowctl_trace</div><div class="ttdef"><b>Definition:</b> chttp2_transport.c:61</div></div>
<div class="ttc" id="internal_8h_html_ac054ecf6e743093e5527787063f3acaa"><div class="ttname"><a href="internal_8h.html#ac054ecf6e743093e5527787063f3acaa">grpc_chttp2_flowctl_trace</a></div><div class="ttdeci">void grpc_chttp2_flowctl_trace(const char *file, int line, const char *reason, const char *context, const char *var, int is_client, gpr_uint32 stream_id, gpr_int64 current_value, gpr_int64 delta)</div><div class="ttdef"><b>Definition:</b> chttp2_transport.c:1069</div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ab4ecd954e779c49a6159f842dc5a2ab4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define GRPC_CHTTP2_IF_TRACING</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">stmt</td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (!(<a class="code" href="internal_8h.html#a6bb76c8188f883af2fb738233abdeea0">grpc_http_trace</a>)) \</div>
<div class="line"> ; \</div>
<div class="line"> else \</div>
<div class="line"> stmt</div>
<div class="ttc" id="internal_8h_html_a6bb76c8188f883af2fb738233abdeea0"><div class="ttname"><a href="internal_8h.html#a6bb76c8188f883af2fb738233abdeea0">grpc_http_trace</a></div><div class="ttdeci">int grpc_http_trace</div><div class="ttdef"><b>Definition:</b> chttp2_transport.c:60</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a4b8e11ec16028f6adaa9355602a9c591"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__chttp2__outstanding__ping.html">grpc_chttp2_outstanding_ping</a> <a class="el" href="structgrpc__chttp2__outstanding__ping.html">grpc_chttp2_outstanding_ping</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a50089f57f93d9eb16569dd3b63f879d1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__chttp2__stream.html">grpc_chttp2_stream</a> <a class="el" href="structgrpc__chttp2__stream.html">grpc_chttp2_stream</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a83a9a1c265dc0fede61598c7cd1aaec2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a> <a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="internal_8h.html#a6f98ba3b22480becf1bcc47253326a62">grpc_chttp2_deframe_transport_state</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="a6f98ba3b22480becf1bcc47253326a62a25d129ada2c0e8f26802bb1b490d0085"></a>GRPC_DTS_CLIENT_PREFIX_0</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62aa40d0131ceae834fc5333dd46fe43506"></a>GRPC_DTS_CLIENT_PREFIX_1</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a61ef7ffdaea8c2a8b0d4fb016c256ad0"></a>GRPC_DTS_CLIENT_PREFIX_2</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a4ebe79862d221aad04f0ccb8918f1912"></a>GRPC_DTS_CLIENT_PREFIX_3</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62ad033829aebd599a6ea3d94026d80a355"></a>GRPC_DTS_CLIENT_PREFIX_4</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a66bdff40a54dc664cf72632276424b74"></a>GRPC_DTS_CLIENT_PREFIX_5</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a3cc01f12b7b1f4cbcf2ed027af56f835"></a>GRPC_DTS_CLIENT_PREFIX_6</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62af04b36417fb0350bafc7c3054cfbad90"></a>GRPC_DTS_CLIENT_PREFIX_7</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62ac33407a02ca85302040eb22f1f639e0a"></a>GRPC_DTS_CLIENT_PREFIX_8</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a64c70beae9714707e8750f863603cd2e"></a>GRPC_DTS_CLIENT_PREFIX_9</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a9e8caab2da107d3b8e757c91717d47f3"></a>GRPC_DTS_CLIENT_PREFIX_10</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62af3615fc2a32d17ae1050e78bd89e43e1"></a>GRPC_DTS_CLIENT_PREFIX_11</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62aa452c6c245042fcc3a6b07b89bc0392a"></a>GRPC_DTS_CLIENT_PREFIX_12</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a7f122c0c00df0bea810b2d4023b60a19"></a>GRPC_DTS_CLIENT_PREFIX_13</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62ae9e31a7c2928921ee0cb097fba7d03aa"></a>GRPC_DTS_CLIENT_PREFIX_14</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a06c52283890571b31d6e04c1ffc7957d"></a>GRPC_DTS_CLIENT_PREFIX_15</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62ab6eb5b0e8a5237462ee96361b440796f"></a>GRPC_DTS_CLIENT_PREFIX_16</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a82726c9cc14910572d203055432b6795"></a>GRPC_DTS_CLIENT_PREFIX_17</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62ad8642b29010211229e19de9c6e0fcbc8"></a>GRPC_DTS_CLIENT_PREFIX_18</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62ab986ee109b4635c4ccf94d7aab397257"></a>GRPC_DTS_CLIENT_PREFIX_19</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a25a1989db73d7d542ec6fc0b10ccb1cc"></a>GRPC_DTS_CLIENT_PREFIX_20</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a47d411086582ccce4e8d040eead17674"></a>GRPC_DTS_CLIENT_PREFIX_21</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62ac9321d51de32a9fd554196f6fe486e75"></a>GRPC_DTS_CLIENT_PREFIX_22</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a19861af38f4fe10f7c40b6bf99bd275e"></a>GRPC_DTS_CLIENT_PREFIX_23</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62adbe27b41d36d475e114fde2087aab8c1"></a>GRPC_DTS_FH_0</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a6ef23c92e88b4226bcde3d1f44150ab1"></a>GRPC_DTS_FH_1</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62aaab31026fe27f752d727eedd9a41b5ab"></a>GRPC_DTS_FH_2</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a1fa3cffd7776e95f961eef22681f1922"></a>GRPC_DTS_FH_3</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a15bfd0d79ed1a62dbdc8f377f62cacbd"></a>GRPC_DTS_FH_4</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a95f000174adbc3a27bc91b422520b6cc"></a>GRPC_DTS_FH_5</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a7dfb17176bd8ea6005e8d27caa30e49c"></a>GRPC_DTS_FH_6</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62af80fa92c955868a75af026943b74f976"></a>GRPC_DTS_FH_7</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a26ea9eff9ffdbd49b96f39f6d1d8320a"></a>GRPC_DTS_FH_8</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6f98ba3b22480becf1bcc47253326a62a166f3cb24f0210d2a31e37863345b586"></a>GRPC_DTS_FRAME</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a9d3b30dd29e854143c461aa7e03cbfb9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="internal_8h.html#a9d3b30dd29e854143c461aa7e03cbfb9">grpc_chttp2_send_closed</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="a9d3b30dd29e854143c461aa7e03cbfb9ab7c3500e5584461922d410d38986335c"></a>GRPC_DONT_SEND_CLOSED</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9d3b30dd29e854143c461aa7e03cbfb9ab9d017cdb014717c5160971d45cc1c02"></a>GRPC_SEND_CLOSED</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a9d3b30dd29e854143c461aa7e03cbfb9ab0dbda5711c4d3612d77337cbeb88508"></a>GRPC_SEND_CLOSED_WITH_RST_STREAM</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a6c14b42c5aba744e7f99831e0b7901ad"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="internal_8h.html#a6c14b42c5aba744e7f99831e0b7901ad">grpc_chttp2_setting_set</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="a6c14b42c5aba744e7f99831e0b7901ada1e2fba3c15bdcd6378ad03ed9a47a572"></a>GRPC_PEER_SETTINGS</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6c14b42c5aba744e7f99831e0b7901ada34fcc73078d41da89714d1735a6c34a0"></a>GRPC_LOCAL_SETTINGS</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6c14b42c5aba744e7f99831e0b7901ada984818e41863a597de9f9fb6162019f5"></a>GRPC_SENT_SETTINGS</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6c14b42c5aba744e7f99831e0b7901ada2ce0f9cd8c08c749b6471dda749d8b42"></a>GRPC_ACKED_SETTINGS</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a6c14b42c5aba744e7f99831e0b7901adaa20accbdc29feba4c2f081ecc91e6641"></a>GRPC_NUM_SETTING_SETS</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="internal_8h.html#abddcdf3ebb4034fd86a102d86aff5539">grpc_chttp2_stream_list_id</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="abddcdf3ebb4034fd86a102d86aff5539a55472097517b6e0ad54562494cadc6a4"></a>GRPC_CHTTP2_LIST_ALL_STREAMS</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539aad8c067aea30c7e63f1f8f578ad091ec"></a>GRPC_CHTTP2_LIST_READ_WRITE_STATE_CHANGED</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539a472c9817d59a165a3a8a7bd6065c8af0"></a>GRPC_CHTTP2_LIST_WRITABLE</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539a2d32b64c3350b55206ca435e489bf48a"></a>GRPC_CHTTP2_LIST_WRITING</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539a9028d8867d7d656543018fe4e4483673"></a>GRPC_CHTTP2_LIST_WRITTEN</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539ab16ac38146d8c206d971154d3e2e385e"></a>GRPC_CHTTP2_LIST_PARSING_SEEN</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539ab18632dd09ec47ec222a68fccfb5b56f"></a>GRPC_CHTTP2_LIST_CLOSED_WAITING_FOR_PARSING</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539a8a9ab1244149b1d03b5107d51f872f21"></a>GRPC_CHTTP2_LIST_CANCELLED_WAITING_FOR_WRITING</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539a379d8479565bb2a2565e3bef983c3f09"></a>GRPC_CHTTP2_LIST_INCOMING_WINDOW_UPDATED</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539a038c19c7cb6246583e24eb4ffe74883a"></a>GRPC_CHTTP2_LIST_WAITING_FOR_CONCURRENCY</em>&#160;</td><td class="fielddoc">
<p>streams that are waiting to start because there are too many concurrent streams on the connection </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="abddcdf3ebb4034fd86a102d86aff5539adbd786741979d2b2106768372bfd90a5"></a>STREAM_LIST_COUNT</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<a class="anchor" id="a3b93cb6f95aff10ba74b6aa06d7e99cc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="internal_8h.html#a3b93cb6f95aff10ba74b6aa06d7e99cc">grpc_chttp2_write_state</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="a3b93cb6f95aff10ba74b6aa06d7e99cca0fe604e577783cbae2a2c88221278883"></a>GRPC_WRITE_STATE_OPEN</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3b93cb6f95aff10ba74b6aa06d7e99cca3919fcef92f060577ba356817423e633"></a>GRPC_WRITE_STATE_QUEUED_CLOSE</em>&#160;</td><td class="fielddoc">
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="a3b93cb6f95aff10ba74b6aa06d7e99cca208ef886be22d63ae3cd3880cb6a3693"></a>GRPC_WRITE_STATE_SENT_CLOSE</em>&#160;</td><td class="fielddoc">
</td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="aeb6a160980622d4e5d1b8e9e608c6771"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_add_incoming_goaway </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a>&#160;</td>
<td class="paramname"><em>goaway_error</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__slice.html">gpr_slice</a>&#160;</td>
<td class="paramname"><em>goaway_text</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="a309e83a79f87a133dee17a1a7dd592b9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_cleanup_writing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>writing</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="ac054ecf6e743093e5527787063f3acaa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_flowctl_trace </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>file</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>line</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>reason</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>context</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>var</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>is_client</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a>&#160;</td>
<td class="paramname"><em>stream_id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a>&#160;</td>
<td class="paramname"><em>current_value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a>&#160;</td>
<td class="paramname"><em>delta</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="a62031f6afc6643cc2f34b4af2d547576"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_for_all_streams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>user_data</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void(*)(<a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *transport_global, void *user_data, <a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *stream_global)&#160;</td>
<td class="paramname"><em>cb</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="a19ad8f2b321787a1255a888d5d5923f1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_has_streams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a> *&#160;</td>
<td class="paramname"><em>t</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad26dae5e10a026530f50b133359b3ee2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_cancelled_waiting_for_writing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a1208f234dcb6b2a73be3c875b2b52907"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_closed_waiting_for_parsing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a8858ea6e4f6e7c363985793b403a0ac9"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_first_writable_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a1d99597284d4c0a0bd3cbf102ff415a2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_incoming_window_updated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a771e6e4a553060bfac71d00b5f866877"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_parsing_seen_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>transport_parsing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> *&#160;</td>
<td class="paramname"><em>stream_parsing</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="aa6b5168e8b96d0bc9f9d84a4cbef653a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_read_write_state_changed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a71d9dea1ff323c374d7ea47818defc2e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_waiting_for_concurrency </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a117877f5202f072aa35e7ada0379d0db"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_writable_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get a writable stream returns non-zero if there was a stream available. </p>
</div>
</div>
<a class="anchor" id="af5740bd38b626e875166e60e697e099e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_writing_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> *&#160;</td>
<td class="paramname"><em>stream_writing</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="ac6b7a089de78b67a9650e42b4a76ac69"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_add_written_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> *&#160;</td>
<td class="paramname"><em>stream_writing</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="a2c7a37cef27c29528850701b9cf772d4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_have_writing_streams </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ad2d2a802b9072505d1e6f8bb68727f44"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_cancelled_waiting_for_writing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</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="ad0434ee720b66a5ee51c9904548857af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_closed_waiting_for_parsing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</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="a90a6cb6d111a750ab1f28bf4e438bb62"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_incoming_window_updated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>transport_parsing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> **&#160;</td>
<td class="paramname"><em>stream_parsing</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="a1d1ec9b2edce465d2fd18002a403878d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_parsing_seen_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>transport_parsing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a> **&#160;</td>
<td class="paramname"><em>stream_parsing</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="ac9e8165e01d872ed42c0333aee9d31c4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_read_write_state_changed </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</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="a6b62b98b415b3984616d4e851f0ff5c0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_waiting_for_concurrency </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</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="aeac970afdd6294bac9d1dcb84b702167"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_writable_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> **&#160;</td>
<td class="paramname"><em>stream_writing</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="aba4771272cd49e3012d81c05fad1bdb7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_writing_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> **&#160;</td>
<td class="paramname"><em>stream_writing</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="a3107afcec2694dd7c7855d540a560090"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_list_pop_written_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> **&#160;</td>
<td class="paramname"><em>stream_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__writing.html">grpc_chttp2_stream_writing</a> **&#160;</td>
<td class="paramname"><em>stream_writing</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="a8a7f981b74e1e99b0a1afe0c45702d89"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_remove_incoming_window_updated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a789d5bcd10c0f1c7ad2fc32190fd87a0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_list_remove_writable_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream__global.html">grpc_chttp2_stream_global</a> *&#160;</td>
<td class="paramname"><em>stream_global</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="a25a39d1d95e7140c1ae8f765ffd92847"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a>* grpc_chttp2_parsing_accept_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>transport_parsing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a>&#160;</td>
<td class="paramname"><em>id</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="ad6a13571d6666f45a64c8e0f6b234e60"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_parsing_become_skip_parser </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>transport_parsing</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae19b5968ebea2a077650652f1a3af46d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structgrpc__chttp2__stream__parsing.html">grpc_chttp2_stream_parsing</a>* grpc_chttp2_parsing_lookup_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>transport_parsing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a>&#160;</td>
<td class="paramname"><em>id</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="abeaab2fead1bddefe92af0bc61a3a33f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_perform_read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>transport_parsing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgpr__slice.html">gpr_slice</a>&#160;</td>
<td class="paramname"><em>slice</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Process one slice of incoming data; return 1 if the connection is still viable after reading, or 0 if the connection should be torn down. </p>
</div>
</div>
<a class="anchor" id="a8fa6e3087336e9d487f3987148cc3930"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_perform_writes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__endpoint.html">grpc_endpoint</a> *&#160;</td>
<td class="paramname"><em>endpoint</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="ae444a83dc73e9a658e7df625a04b101a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_prepare_to_read </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>parsing</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="a4d137f455d722521fd7dab4fd13e1697"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_publish_reads </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__parsing.html">grpc_chttp2_transport_parsing</a> *&#160;</td>
<td class="paramname"><em>parsing</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="accb6dbbacb57c3f9860e6ec6eca2390e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_register_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a> *&#160;</td>
<td class="paramname"><em>t</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream.html">grpc_chttp2_stream</a> *&#160;</td>
<td class="paramname"><em>s</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="a6f8b16bb6048f85107966a4be9ff4a4d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_schedule_closure </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>transport_global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__iomgr__closure.html">grpc_iomgr_closure</a> *&#160;</td>
<td class="paramname"><em>closure</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>success</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>schedule a closure to run without the transport lock taken </p>
</div>
</div>
<a class="anchor" id="a83baade3ee315270b6d34fc6fbecb30c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void grpc_chttp2_terminate_writing </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>transport_writing</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>success</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="a154399c46a1f7b901491acb4c04d19d3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_unlocking_check_writes </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__global.html">grpc_chttp2_transport_global</a> *&#160;</td>
<td class="paramname"><em>global</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport__writing.html">grpc_chttp2_transport_writing</a> *&#160;</td>
<td class="paramname"><em>writing</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Transport writing call flow: <a class="el" href="chttp2__transport_8c.html">chttp2_transport.c</a> calls grpc_chttp2_unlocking_check_writes to see if writes are required; if they are, <a class="el" href="chttp2__transport_8c.html">chttp2_transport.c</a> calls grpc_chttp2_perform_writes to do the writes. </p>
<p>Once writes have been completed (meaning another write could potentially be started), grpc_chttp2_terminate_writing is called. This will call grpc_chttp2_cleanup_writing, at which point the write phase is complete. Someone is unlocking the transport mutex: check to see if writes are required, and schedule them if so </p>
</div>
</div>
<a class="anchor" id="a558d8331836125098834d28a94e39bcc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_chttp2_unregister_stream </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__transport.html">grpc_chttp2_transport</a> *&#160;</td>
<td class="paramname"><em>t</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structgrpc__chttp2__stream.html">grpc_chttp2_stream</a> *&#160;</td>
<td class="paramname"><em>s</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="afd0f83d780e8ddeac885163c45aab0a8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_flowctl_trace</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a6bb76c8188f883af2fb738233abdeea0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int grpc_http_trace</td>
</tr>
</table>
</div><div class="memdoc">
</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>