浏览代码

Pushing the generated documentation on gh-pages.

Nicolas "Pixel" Noble 10 年之前
父节点
当前提交
0ec2d699fe
共有 100 个文件被更改,包括 18732 次插入1 次删除
  1. 219 0
      core/alloc_8h.html
  2. 162 0
      core/alloc_8h_source.html
  3. 128 0
      core/annotated.html
  4. 102 0
      core/atm_8h.html
  5. 195 0
      core/atm_8h_source.html
  6. 293 0
      core/atm__gcc__atomic_8h.html
  7. 177 0
      core/atm__gcc__atomic_8h_source.html
  8. 337 0
      core/atm__gcc__sync_8h.html
  9. 196 0
      core/atm__gcc__sync_8h_source.html
  10. 142 0
      core/atm__win32_8h.html
  11. 239 0
      core/atm__win32_8h_source.html
  12. 二进制
      core/bc_s.png
  13. 二进制
      core/bdwn.png
  14. 416 0
      core/byte__buffer_8h.html
  15. 212 0
      core/byte__buffer_8h_source.html
  16. 111 0
      core/byte__buffer__reader_8h.html
  17. 165 0
      core/byte__buffer__reader_8h_source.html
  18. 113 0
      core/cancellable__platform_8h.html
  19. 168 0
      core/cancellable__platform_8h_source.html
  20. 369 0
      core/census_8h.html
  21. 232 0
      core/census_8h_source.html
  22. 110 0
      core/classes.html
  23. 二进制
      core/closed.png
  24. 391 0
      core/cmdline_8h.html
  25. 205 0
      core/cmdline_8h_source.html
  26. 305 0
      core/compression_8h.html
  27. 190 0
      core/compression_8h_source.html
  28. 144 0
      core/cpu_8h.html
  29. 158 0
      core/cpu_8h_source.html
  30. 116 0
      core/dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html
  31. 153 0
      core/dir_cad3142e04109052413f2d2a2d1813b0.html
  32. 99 0
      core/dir_d44c64559bbebec7f509842c48db8b23.html
  33. 1366 0
      core/doxygen.css
  34. 二进制
      core/doxygen.png
  35. 97 0
      core/dynsections.js
  36. 137 0
      core/files.html
  37. 二进制
      core/ftv2blank.png
  38. 二进制
      core/ftv2cl.png
  39. 二进制
      core/ftv2doc.png
  40. 二进制
      core/ftv2folderclosed.png
  41. 二进制
      core/ftv2folderopen.png
  42. 二进制
      core/ftv2lastnode.png
  43. 二进制
      core/ftv2link.png
  44. 二进制
      core/ftv2mlastnode.png
  45. 二进制
      core/ftv2mnode.png
  46. 二进制
      core/ftv2mo.png
  47. 二进制
      core/ftv2node.png
  48. 二进制
      core/ftv2ns.png
  49. 二进制
      core/ftv2plastnode.png
  50. 二进制
      core/ftv2pnode.png
  51. 二进制
      core/ftv2splitbar.png
  52. 二进制
      core/ftv2vertline.png
  53. 447 0
      core/functions.html
  54. 447 0
      core/functions_vars.html
  55. 157 0
      core/globals.html
  56. 344 0
      core/globals_defs.html
  57. 140 0
      core/globals_enum.html
  58. 326 0
      core/globals_eval.html
  59. 136 0
      core/globals_func.html
  60. 715 0
      core/globals_func_g.html
  61. 1292 0
      core/globals_g.html
  62. 243 0
      core/globals_type.html
  63. 107 0
      core/globals_vars.html
  64. 153 0
      core/graph_legend.html
  65. 1 0
      core/graph_legend.md5
  66. 二进制
      core/graph_legend.png
  67. 1877 0
      core/grpc_8h.html
  68. 563 0
      core/grpc_8h_source.html
  69. 863 0
      core/grpc__security_8h.html
  70. 409 0
      core/grpc__security_8h_source.html
  71. 495 0
      core/histogram_8h.html
  72. 193 0
      core/histogram_8h_source.html
  73. 176 0
      core/host__port_8h.html
  74. 165 0
      core/host__port_8h_source.html
  75. 93 1
      core/index.html
  76. 15 0
      core/jquery.js
  77. 374 0
      core/log_8h.html
  78. 221 0
      core/log_8h_source.html
  79. 126 0
      core/log__win32_8h.html
  80. 151 0
      core/log__win32_8h_source.html
  81. 二进制
      core/nav_f.png
  82. 二进制
      core/nav_g.png
  83. 二进制
      core/nav_h.png
  84. 二进制
      core/open.png
  85. 352 0
      core/port__platform_8h.html
  86. 441 0
      core/port__platform_8h_source.html
  87. 26 0
      core/search/all_0.html
  88. 9 0
      core/search/all_0.js
  89. 26 0
      core/search/all_1.html
  90. 8 0
      core/search/all_1.js
  91. 26 0
      core/search/all_10.html
  92. 15 0
      core/search/all_10.js
  93. 26 0
      core/search/all_11.html
  94. 5 0
      core/search/all_11.js
  95. 26 0
      core/search/all_12.html
  96. 5 0
      core/search/all_12.js
  97. 26 0
      core/search/all_13.html
  98. 4 0
      core/search/all_13.js
  99. 26 0
      core/search/all_2.html
  100. 35 0
      core/search/all_2.js

+ 219 - 0
core/alloc_8h.html

@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/alloc.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">alloc.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stddef.h&gt;</code><br/>
+</div>
+<p><a href="alloc_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="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:af5896bb446b6179f35651730357149bb"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#af5896bb446b6179f35651730357149bb">gpr_malloc</a> (size_t size)</td></tr>
+<tr class="separator:af5896bb446b6179f35651730357149bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0d621b472031a64c77bd2e9fea495e8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#ae0d621b472031a64c77bd2e9fea495e8">gpr_free</a> (void *ptr)</td></tr>
+<tr class="separator:ae0d621b472031a64c77bd2e9fea495e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a25d9a067b093e9c76dbbd77995b1bc91"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a25d9a067b093e9c76dbbd77995b1bc91">gpr_realloc</a> (void *p, size_t size)</td></tr>
+<tr class="separator:a25d9a067b093e9c76dbbd77995b1bc91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73551a6249ae9b0a73ad75733c67ead4"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#a73551a6249ae9b0a73ad75733c67ead4">gpr_malloc_aligned</a> (size_t size, size_t alignment_log)</td></tr>
+<tr class="separator:a73551a6249ae9b0a73ad75733c67ead4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9b603aefd33752e1b473856af77cbc9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html#af9b603aefd33752e1b473856af77cbc9">gpr_free_aligned</a> (void *ptr)</td></tr>
+<tr class="separator:af9b603aefd33752e1b473856af77cbc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ae0d621b472031a64c77bd2e9fea495e8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_free </td>
+          <td>(</td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>ptr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af9b603aefd33752e1b473856af77cbc9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_free_aligned </td>
+          <td>(</td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>ptr</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af5896bb446b6179f35651730357149bb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* gpr_malloc </td>
+          <td>(</td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>size</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a73551a6249ae9b0a73ad75733c67ead4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* gpr_malloc_aligned </td>
+          <td>(</td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>size</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>alignment_log</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="a25d9a067b093e9c76dbbd77995b1bc91"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* gpr_realloc </td>
+          <td>(</td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>p</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>size</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></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:05 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>

+ 162 - 0
core/alloc_8h_source.html

@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/alloc.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">alloc.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="alloc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_ALLOC_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_ALLOC_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">/* malloc, never returns NULL */</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#af5896bb446b6179f35651730357149bb">gpr_malloc</a>(<span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">/* free */</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="keywordtype">void</span> <a class="code" href="alloc_8h.html#ae0d621b472031a64c77bd2e9fea495e8">gpr_free</a>(<span class="keywordtype">void</span> *ptr);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">/* realloc, never returns NULL */</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a25d9a067b093e9c76dbbd77995b1bc91">gpr_realloc</a>(<span class="keywordtype">void</span> *p, <span class="keywordtype">size_t</span> size);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">/* aligned malloc, never returns NULL, will align to 1 &lt;&lt; alignment_log */</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keywordtype">void</span> *<a class="code" href="alloc_8h.html#a73551a6249ae9b0a73ad75733c67ead4">gpr_malloc_aligned</a>(<span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> alignment_log);</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">/* free memory allocated by gpr_malloc_aligned */</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">void</span> <a class="code" href="alloc_8h.html#af9b603aefd33752e1b473856af77cbc9">gpr_free_aligned</a>(<span class="keywordtype">void</span> *ptr);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_ALLOC_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="alloc_8h_html_af9b603aefd33752e1b473856af77cbc9"><div class="ttname"><a href="alloc_8h.html#af9b603aefd33752e1b473856af77cbc9">gpr_free_aligned</a></div><div class="ttdeci">void gpr_free_aligned(void *ptr)</div></div>
+<div class="ttc" id="alloc_8h_html_a25d9a067b093e9c76dbbd77995b1bc91"><div class="ttname"><a href="alloc_8h.html#a25d9a067b093e9c76dbbd77995b1bc91">gpr_realloc</a></div><div class="ttdeci">void * gpr_realloc(void *p, size_t size)</div></div>
+<div class="ttc" id="alloc_8h_html_af5896bb446b6179f35651730357149bb"><div class="ttname"><a href="alloc_8h.html#af5896bb446b6179f35651730357149bb">gpr_malloc</a></div><div class="ttdeci">void * gpr_malloc(size_t size)</div></div>
+<div class="ttc" id="alloc_8h_html_a73551a6249ae9b0a73ad75733c67ead4"><div class="ttname"><a href="alloc_8h.html#a73551a6249ae9b0a73ad75733c67ead4">gpr_malloc_aligned</a></div><div class="ttdeci">void * gpr_malloc_aligned(size_t size, size_t alignment_log)</div></div>
+<div class="ttc" id="alloc_8h_html_ae0d621b472031a64c77bd2e9fea495e8"><div class="ttname"><a href="alloc_8h.html#ae0d621b472031a64c77bd2e9fea495e8">gpr_free</a></div><div class="ttdeci">void gpr_free(void *ptr)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 128 - 0
core/annotated.html

@@ -0,0 +1,128 @@
+<!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: Data Structures</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 class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structcensus__stat.html" target="_self">census_stat</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__cancellable.html" target="_self">gpr_cancellable</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__cancellable__list__.html" target="_self">gpr_cancellable_list_</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__event.html" target="_self">gpr_event</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__gcc__thread__local.html" target="_self">gpr_gcc_thread_local</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__log__func__args.html" target="_self">gpr_log_func_args</a></td><td class="desc"></td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__msvc__thread__local.html" target="_self">gpr_msvc_thread_local</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__mu.html" target="_self">gpr_mu</a></td><td class="desc"></td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__pthread__thread__local.html" target="_self">gpr_pthread_thread_local</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__refcount.html" target="_self">gpr_refcount</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__slice.html" target="_self">gpr_slice</a></td><td class="desc"></td></tr>
+<tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__slice__buffer.html" target="_self">gpr_slice_buffer</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__slice__refcount.html" target="_self">gpr_slice_refcount</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__stats__counter.html" target="_self">gpr_stats_counter</a></td><td class="desc"></td></tr>
+<tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__thd__options.html" target="_self">gpr_thd_options</a></td><td class="desc"></td></tr>
+<tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgpr__timespec.html" target="_self">gpr_timespec</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__arg.html" target="_self">grpc_arg</a></td><td class="desc">A single argument.. </td></tr>
+<tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__auth__property.html" target="_self">grpc_auth_property</a></td><td class="desc"></td></tr>
+<tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__auth__property__iterator.html" target="_self">grpc_auth_property_iterator</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__byte__buffer.html" target="_self">grpc_byte_buffer</a></td><td class="desc"></td></tr>
+<tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__byte__buffer__reader.html" target="_self">grpc_byte_buffer_reader</a></td><td class="desc"></td></tr>
+<tr id="row_21_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__call__details.html" target="_self">grpc_call_details</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__channel__args.html" target="_self">grpc_channel_args</a></td><td class="desc">An array of arguments that can be passed around </td></tr>
+<tr id="row_23_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__event.html" target="_self">grpc_event</a></td><td class="desc">The result of an operation </td></tr>
+<tr id="row_24_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__metadata.html" target="_self">grpc_metadata</a></td><td class="desc">A single metadata element </td></tr>
+<tr id="row_25_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__metadata__array.html" target="_self">grpc_metadata_array</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__op.html" target="_self">grpc_op</a></td><td class="desc">Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments) </td></tr>
+<tr id="row_27_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structgrpc__ssl__pem__key__cert__pair.html" target="_self">grpc_ssl_pem_key_cert_pair</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 102 - 0
core/atm_8h.html

@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">atm.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br/>
+</div>
+<p><a href="atm_8h_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 195 - 0
core/atm_8h_source.html

@@ -0,0 +1,195 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">atm.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="atm_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_ATM_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_ATM_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">/* This interface provides atomic operations and barriers.</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">   It is internal to gpr support code and should not be used outside it.</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="comment">   If an operation with acquire semantics precedes another memory access by the</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">   same thread, the operation will precede that other access as seen by other</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">   threads.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">   If an operation with release semantics follows another memory access by the</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">   same thread, the operation will follow that other access as seen by other</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">   threads.</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">   Routines with &quot;acq&quot; or &quot;full&quot; in the name have acquire semantics.  Routines</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">   with &quot;rel&quot; or &quot;full&quot; in the name have release semantics.  Routines with</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">   &quot;no_barrier&quot; in the name have neither acquire not release semantics.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">   The routines may be implemented as macros.</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">   // Atomic operations act on an intergral_type gpr_atm that is guaranteed to</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">   // be the same size as a pointer.</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">   typedef gpr_intptr gpr_atm;</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">   // A memory barrier, providing both acquire and release semantics, but not</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">   // otherwise acting on memory.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">   void gpr_atm_full_barrier(void);</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">   // Atomically return *p, with acquire semantics.</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment">   gpr_atm gpr_atm_acq_load(gpr_atm *p);</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">   // Atomically set *p = value, with release semantics.</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">   void gpr_atm_rel_store(gpr_atm *p, gpr_atm value);</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="comment">   // Atomically add delta to *p, and return the old value of *p, with</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">   // the barriers specified.</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">   gpr_atm gpr_atm_no_barrier_fetch_add(gpr_atm *p, gpr_atm delta);</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment">   gpr_atm gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta);</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment">   // Atomically, if *p==o, set *p=n and return non-zero otherwise return 0,</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment">   // with the barriers specified if the operation succeeds.</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment">   int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n);</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">   int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n);</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">   int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n);</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#if defined(GPR_GCC_ATOMIC)</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;<a class="code" href="atm__gcc__atomic_8h.html">grpc/support/atm_gcc_atomic.h</a>&gt;</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#elif defined(GPR_GCC_SYNC)</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;<a class="code" href="atm__gcc__sync_8h.html">grpc/support/atm_gcc_sync.h</a>&gt;</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#elif defined(GPR_WIN32_ATOMIC)</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;<a class="code" href="atm__win32_8h.html">grpc/support/atm_win32.h</a>&gt;</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error could not determine platform for atm</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_ATM_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="port__platform_8h_html"><div class="ttname"><a href="port__platform_8h.html">port_platform.h</a></div></div>
+<div class="ttc" id="atm__win32_8h_html"><div class="ttname"><a href="atm__win32_8h.html">atm_win32.h</a></div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html"><div class="ttname"><a href="atm__gcc__atomic_8h.html">atm_gcc_atomic.h</a></div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html"><div class="ttname"><a href="atm__gcc__sync_8h.html">atm_gcc_sync.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 293 - 0
core/atm__gcc__atomic_8h.html

@@ -0,0 +1,293 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm_gcc_atomic.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">atm_gcc_atomic.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br/>
+</div>
+<p><a href="atm__gcc__atomic_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="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a95f86e51ae9a479026bd237cb792193e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#a95f86e51ae9a479026bd237cb792193e">gpr_atm_full_barrier</a>()&#160;&#160;&#160;(__atomic_thread_fence(__ATOMIC_SEQ_CST))</td></tr>
+<tr class="separator:a95f86e51ae9a479026bd237cb792193e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44607f95f7ee40eba592c7fe10960a06"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">gpr_atm_acq_load</a>(p)&#160;&#160;&#160;(__atomic_load_n((p), __ATOMIC_ACQUIRE))</td></tr>
+<tr class="separator:a44607f95f7ee40eba592c7fe10960a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa647aa9c97294a6709bbf2ac401cd9a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">gpr_atm_no_barrier_load</a>(p)&#160;&#160;&#160;(__atomic_load_n((p), __ATOMIC_RELAXED))</td></tr>
+<tr class="separator:aa647aa9c97294a6709bbf2ac401cd9a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42e3982d45ae4cec439a12b8fcd618e9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store</a>(p, value)&#160;&#160;&#160;(__atomic_store_n((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(value), __ATOMIC_RELEASE))</td></tr>
+<tr class="separator:a42e3982d45ae4cec439a12b8fcd618e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afad47d4c311c5439371fcdd4a0b6794e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">gpr_atm_no_barrier_store</a>(p, value)&#160;&#160;&#160;(__atomic_store_n((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(value), __ATOMIC_RELAXED))</td></tr>
+<tr class="separator:afad47d4c311c5439371fcdd4a0b6794e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae337dc477a6a45ac3d91e41e8f3f2f8c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">gpr_atm_no_barrier_fetch_add</a>(p, delta)&#160;&#160;&#160;(__atomic_fetch_add((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(delta), __ATOMIC_RELAXED))</td></tr>
+<tr class="separator:ae337dc477a6a45ac3d91e41e8f3f2f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abada8771b338845e4c6ef93c8392582c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add</a>(p, delta)&#160;&#160;&#160;(__atomic_fetch_add((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(delta), __ATOMIC_ACQ_REL))</td></tr>
+<tr class="separator:abada8771b338845e4c6ef93c8392582c"><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:aa9e4b16c09888debe306f14e8090b1cc"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></td></tr>
+<tr class="separator:aa9e4b16c09888debe306f14e8090b1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a44607f95f7ee40eba592c7fe10960a06"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_acq_load</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p</td><td>)</td>
+          <td>&#160;&#160;&#160;(__atomic_load_n((p), __ATOMIC_ACQUIRE))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a95f86e51ae9a479026bd237cb792193e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_full_barrier</td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td>&#160;&#160;&#160;(__atomic_thread_fence(__ATOMIC_SEQ_CST))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abada8771b338845e4c6ef93c8392582c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_full_fetch_add</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </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>&#160;&#160;&#160;(__atomic_fetch_add((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(delta), __ATOMIC_ACQ_REL))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae337dc477a6a45ac3d91e41e8f3f2f8c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_no_barrier_fetch_add</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </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>&#160;&#160;&#160;(__atomic_fetch_add((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(delta), __ATOMIC_RELAXED))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa647aa9c97294a6709bbf2ac401cd9a6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_no_barrier_load</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p</td><td>)</td>
+          <td>&#160;&#160;&#160;(__atomic_load_n((p), __ATOMIC_RELAXED))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afad47d4c311c5439371fcdd4a0b6794e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_no_barrier_store</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">value&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td>&#160;&#160;&#160;(__atomic_store_n((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(value), __ATOMIC_RELAXED))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a42e3982d45ae4cec439a12b8fcd618e9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_rel_store</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">value&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td>&#160;&#160;&#160;(__atomic_store_n((p), (<a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>)(value), __ATOMIC_RELEASE))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aa9e4b16c09888debe306f14e8090b1cc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a> <a class="el" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></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:05 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>

+ 177 - 0
core/atm__gcc__atomic_8h_source.html

@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm_gcc_atomic.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">atm_gcc_atomic.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="atm__gcc__atomic_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_ATM_GCC_ATOMIC_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_ATM_GCC_ATOMIC_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">/* atm_platform.h for gcc and gcc-like compilers with the</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">   __atomic_* interface.  */</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">   41</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a> <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#a95f86e51ae9a479026bd237cb792193e">   43</a></span>&#160;<span class="preprocessor">#define gpr_atm_full_barrier() (__atomic_thread_fence(__ATOMIC_SEQ_CST))</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">   45</a></span>&#160;<span class="preprocessor">#define gpr_atm_acq_load(p) (__atomic_load_n((p), __ATOMIC_ACQUIRE))</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">   46</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define gpr_atm_no_barrier_load(p) (__atomic_load_n((p), __ATOMIC_RELAXED))</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">   47</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define gpr_atm_rel_store(p, value) \</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor">  (__atomic_store_n((p), (gpr_intptr)(value), __ATOMIC_RELEASE))</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">   49</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define gpr_atm_no_barrier_store(p, value) \</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">  (__atomic_store_n((p), (gpr_intptr)(value), __ATOMIC_RELAXED))</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">   52</a></span>&#160;<span class="preprocessor">#define gpr_atm_no_barrier_fetch_add(p, delta) \</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">  (__atomic_fetch_add((p), (gpr_intptr)(delta), __ATOMIC_RELAXED))</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="atm__gcc__atomic_8h.html#abada8771b338845e4c6ef93c8392582c">   54</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define gpr_atm_full_fetch_add(p, delta) \</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">  (__atomic_fetch_add((p), (gpr_intptr)(delta), __ATOMIC_ACQ_REL))</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">int</span> <a class="code" href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> o, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> n) {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;  <span class="keywordflow">return</span> __atomic_compare_exchange_n(p, &amp;o, n, 0, __ATOMIC_RELAXED,</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;                                     __ATOMIC_RELAXED);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;}</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">int</span> <a class="code" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> o, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> n) {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keywordflow">return</span> __atomic_compare_exchange_n(p, &amp;o, n, 0, __ATOMIC_ACQUIRE,</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                     __ATOMIC_RELAXED);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;}</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">int</span> <a class="code" href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">gpr_atm_rel_cas</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> o, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> n) {</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  <span class="keywordflow">return</span> __atomic_compare_exchange_n(p, &amp;o, n, 0, __ATOMIC_RELEASE,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                                     __ATOMIC_RELAXED);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;}</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_ATM_GCC_ATOMIC_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="port__platform_8h_html"><div class="ttname"><a href="port__platform_8h.html">port_platform.h</a></div></div>
+<div class="ttc" id="port__platform_8h_html_a72d9d0d00bd576cfc8eab61aaea76db2"><div class="ttname"><a href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a></div><div class="ttdeci">intptr_t gpr_intptr</div><div class="ttdef"><b>Definition:</b> port_platform.h:312</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_a1a90e5777158aaa53624822f1f87dd90"><div class="ttname"><a href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a></div><div class="ttdeci">#define gpr_atm_acq_cas(p, o, n)</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:84</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_ad39536b08912ac4a0770655ed334d260"><div class="ttname"><a href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas</a></div><div class="ttdeci">#define gpr_atm_no_barrier_cas(p, o, n)</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:83</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_ae7c3b215cda868ee9ee778822000c3f2"><div class="ttname"><a href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">gpr_atm_rel_cas</a></div><div class="ttdeci">#define gpr_atm_rel_cas(p, o, n)</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:85</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_aa9e4b16c09888debe306f14e8090b1cc"><div class="ttname"><a href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></div><div class="ttdeci">gpr_intptr gpr_atm</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:41</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 337 - 0
core/atm__gcc__sync_8h.html

@@ -0,0 +1,337 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm_gcc_sync.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">atm_gcc_sync.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br/>
+</div>
+<p><a href="atm__gcc__sync_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="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a5a1f94112dcd03309d6716d43c8edf3f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#a5a1f94112dcd03309d6716d43c8edf3f">GPR_ATM_COMPILE_BARRIER_</a>()&#160;&#160;&#160;__asm__ __volatile__(&quot;&quot; : : : &quot;memory&quot;)</td></tr>
+<tr class="separator:a5a1f94112dcd03309d6716d43c8edf3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ceb46c9b854db0ade8cfe2f37edb878"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#a4ceb46c9b854db0ade8cfe2f37edb878">GPR_ATM_LS_BARRIER_</a>()&#160;&#160;&#160;<a class="el" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier</a>()</td></tr>
+<tr class="separator:a4ceb46c9b854db0ade8cfe2f37edb878"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95f86e51ae9a479026bd237cb792193e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#a95f86e51ae9a479026bd237cb792193e">gpr_atm_full_barrier</a>()&#160;&#160;&#160;(__sync_synchronize())</td></tr>
+<tr class="separator:a95f86e51ae9a479026bd237cb792193e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae337dc477a6a45ac3d91e41e8f3f2f8c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">gpr_atm_no_barrier_fetch_add</a>(p, delta)&#160;&#160;&#160;<a class="el" href="atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add</a>((p), (delta))</td></tr>
+<tr class="separator:ae337dc477a6a45ac3d91e41e8f3f2f8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abada8771b338845e4c6ef93c8392582c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add</a>(p, delta)&#160;&#160;&#160;(__sync_fetch_and_add((p), (delta)))</td></tr>
+<tr class="separator:abada8771b338845e4c6ef93c8392582c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad39536b08912ac4a0770655ed334d260"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas</a>(p, o, n)&#160;&#160;&#160;<a class="el" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a>((p), (o), (n))</td></tr>
+<tr class="separator:ad39536b08912ac4a0770655ed334d260"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a90e5777158aaa53624822f1f87dd90"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a>(p, o, n)&#160;&#160;&#160;(__sync_bool_compare_and_swap((p), (o), (n)))</td></tr>
+<tr class="separator:a1a90e5777158aaa53624822f1f87dd90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae7c3b215cda868ee9ee778822000c3f2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">gpr_atm_rel_cas</a>(p, o, n)&#160;&#160;&#160;<a class="el" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a>((p), (o), (n))</td></tr>
+<tr class="separator:ae7c3b215cda868ee9ee778822000c3f2"><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:aa9e4b16c09888debe306f14e8090b1cc"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></td></tr>
+<tr class="separator:aa9e4b16c09888debe306f14e8090b1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a1a90e5777158aaa53624822f1f87dd90"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_acq_cas</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">o, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">n&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td>&#160;&#160;&#160;(__sync_bool_compare_and_swap((p), (o), (n)))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5a1f94112dcd03309d6716d43c8edf3f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_ATM_COMPILE_BARRIER_</td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td>&#160;&#160;&#160;__asm__ __volatile__(&quot;&quot; : : : &quot;memory&quot;)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a95f86e51ae9a479026bd237cb792193e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_full_barrier</td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td>&#160;&#160;&#160;(__sync_synchronize())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abada8771b338845e4c6ef93c8392582c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_full_fetch_add</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </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>&#160;&#160;&#160;(__sync_fetch_and_add((p), (delta)))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4ceb46c9b854db0ade8cfe2f37edb878"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_ATM_LS_BARRIER_</td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td>&#160;&#160;&#160;<a class="el" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier</a>()</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad39536b08912ac4a0770655ed334d260"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_no_barrier_cas</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">o, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">n&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td>&#160;&#160;&#160;<a class="el" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a>((p), (o), (n))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae337dc477a6a45ac3d91e41e8f3f2f8c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_no_barrier_fetch_add</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </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>&#160;&#160;&#160;<a class="el" href="atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add</a>((p), (delta))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae7c3b215cda868ee9ee778822000c3f2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_rel_cas</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">p, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">o, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">n&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td>&#160;&#160;&#160;<a class="el" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a>((p), (o), (n))</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aa9e4b16c09888debe306f14e8090b1cc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a> <a class="el" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></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:05 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>

+ 196 - 0
core/atm__gcc__sync_8h_source.html

@@ -0,0 +1,196 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm_gcc_sync.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">atm_gcc_sync.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="atm__gcc__sync_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_ATM_GCC_SYNC_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_ATM_GCC_SYNC_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">/* variant of atm_platform.h for gcc and gcc-like compiers with __sync_*</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment">   interface */</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#aa9e4b16c09888debe306f14e8090b1cc">   41</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a> <a class="code" href="atm__gcc__sync_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#a5a1f94112dcd03309d6716d43c8edf3f">   43</a></span>&#160;<span class="preprocessor">#define GPR_ATM_COMPILE_BARRIER_() __asm__ __volatile__(&quot;&quot; : : : &quot;memory&quot;)</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#if defined(__i386) || defined(__x86_64__)</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor"></span><span class="comment">/* All loads are acquire loads and all stores are release stores.  */</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#define GPR_ATM_LS_BARRIER_() GPR_ATM_COMPILE_BARRIER_()</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#a4ceb46c9b854db0ade8cfe2f37edb878">   49</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ATM_LS_BARRIER_() gpr_atm_full_barrier()</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#a95f86e51ae9a479026bd237cb792193e">   52</a></span>&#160;<span class="preprocessor">#define gpr_atm_full_barrier() (__sync_synchronize())</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="keyword">static</span> __inline <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> <a class="code" href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">gpr_atm_acq_load</a>(<span class="keyword">const</span> <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p) {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;  <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> value = *p;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  <a class="code" href="atm__gcc__sync_8h.html#a4ceb46c9b854db0ade8cfe2f37edb878">GPR_ATM_LS_BARRIER_</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  <span class="keywordflow">return</span> value;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;}</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">static</span> __inline <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> <a class="code" href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">gpr_atm_no_barrier_load</a>(<span class="keyword">const</span> <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p) {</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> value = *p;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <a class="code" href="atm__gcc__sync_8h.html#a5a1f94112dcd03309d6716d43c8edf3f">GPR_ATM_COMPILE_BARRIER_</a>();</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="keywordflow">return</span> value;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;}</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">void</span> <a class="code" href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> value) {</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  <a class="code" href="atm__gcc__sync_8h.html#a4ceb46c9b854db0ade8cfe2f37edb878">GPR_ATM_LS_BARRIER_</a>();</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  *p = value;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;}</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">void</span> <a class="code" href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">gpr_atm_no_barrier_store</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> value) {</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <a class="code" href="atm__gcc__sync_8h.html#a5a1f94112dcd03309d6716d43c8edf3f">GPR_ATM_COMPILE_BARRIER_</a>();</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  *p = value;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;}</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#undef GPR_ATM_LS_BARRIER_</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef GPR_ATM_COMPILE_BARRIER_</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">   79</a></span>&#160;<span class="preprocessor">#define gpr_atm_no_barrier_fetch_add(p, delta) \</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor">  gpr_atm_full_fetch_add((p), (delta))</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">   81</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define gpr_atm_full_fetch_add(p, delta) (__sync_fetch_and_add((p), (delta)))</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">   83</a></span>&#160;<span class="preprocessor">#define gpr_atm_no_barrier_cas(p, o, n) gpr_atm_acq_cas((p), (o), (n))</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">   84</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define gpr_atm_acq_cas(p, o, n) (__sync_bool_compare_and_swap((p), (o), (n)))</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">   85</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define gpr_atm_rel_cas(p, o, n) gpr_atm_acq_cas((p), (o), (n))</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_ATM_GCC_SYNC_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="port__platform_8h_html"><div class="ttname"><a href="port__platform_8h.html">port_platform.h</a></div></div>
+<div class="ttc" id="port__platform_8h_html_a72d9d0d00bd576cfc8eab61aaea76db2"><div class="ttname"><a href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a></div><div class="ttdeci">intptr_t gpr_intptr</div><div class="ttdef"><b>Definition:</b> port_platform.h:312</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_a4ceb46c9b854db0ade8cfe2f37edb878"><div class="ttname"><a href="atm__gcc__sync_8h.html#a4ceb46c9b854db0ade8cfe2f37edb878">GPR_ATM_LS_BARRIER_</a></div><div class="ttdeci">#define GPR_ATM_LS_BARRIER_()</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:49</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_a5a1f94112dcd03309d6716d43c8edf3f"><div class="ttname"><a href="atm__gcc__sync_8h.html#a5a1f94112dcd03309d6716d43c8edf3f">GPR_ATM_COMPILE_BARRIER_</a></div><div class="ttdeci">#define GPR_ATM_COMPILE_BARRIER_()</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:43</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_a44607f95f7ee40eba592c7fe10960a06"><div class="ttname"><a href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">gpr_atm_acq_load</a></div><div class="ttdeci">#define gpr_atm_acq_load(p)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:45</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_aa647aa9c97294a6709bbf2ac401cd9a6"><div class="ttname"><a href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">gpr_atm_no_barrier_load</a></div><div class="ttdeci">#define gpr_atm_no_barrier_load(p)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:46</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_aa9e4b16c09888debe306f14e8090b1cc"><div class="ttname"><a href="atm__gcc__sync_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></div><div class="ttdeci">gpr_intptr gpr_atm</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:41</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_afad47d4c311c5439371fcdd4a0b6794e"><div class="ttname"><a href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">gpr_atm_no_barrier_store</a></div><div class="ttdeci">#define gpr_atm_no_barrier_store(p, value)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:49</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_a42e3982d45ae4cec439a12b8fcd618e9"><div class="ttname"><a href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store</a></div><div class="ttdeci">#define gpr_atm_rel_store(p, value)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:47</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_aa9e4b16c09888debe306f14e8090b1cc"><div class="ttname"><a href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></div><div class="ttdeci">gpr_intptr gpr_atm</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:41</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 142 - 0
core/atm__win32_8h.html

@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm_win32.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">atm_win32.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br/>
+</div>
+<p><a href="atm__win32_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="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a8e58c94aff5c7161bc3cbfde878dd03d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier</a>&#160;&#160;&#160;MemoryBarrier</td></tr>
+<tr class="separator:a8e58c94aff5c7161bc3cbfde878dd03d"><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:aa9e4b16c09888debe306f14e8090b1cc"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></td></tr>
+<tr class="separator:aa9e4b16c09888debe306f14e8090b1cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a8e58c94aff5c7161bc3cbfde878dd03d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define gpr_atm_full_barrier&#160;&#160;&#160;MemoryBarrier</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aa9e4b16c09888debe306f14e8090b1cc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a> <a class="el" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></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:05 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>

+ 239 - 0
core/atm__win32_8h_source.html

@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/atm_win32.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">atm_win32.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="atm__win32_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_ATM_WIN32_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_ATM_WIN32_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">/* Win32 variant of atm_platform.h */</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">   40</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a> <a class="code" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">   42</a></span>&#160;<span class="preprocessor">#define gpr_atm_full_barrier MemoryBarrier</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="keyword">static</span> __inline <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> <a class="code" href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">gpr_atm_acq_load</a>(<span class="keyword">const</span> <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p) {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;  <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> result = *p;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;  <a class="code" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier</a>();</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;  <span class="keywordflow">return</span> result;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;}</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="keyword">static</span> __inline <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> <a class="code" href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">gpr_atm_no_barrier_load</a>(<span class="keyword">const</span> <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p) {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <span class="comment">/* TODO(dklempner): Can we implement something better here? */</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">gpr_atm_acq_load</a>(p);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;}</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">void</span> <a class="code" href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> value) {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  <a class="code" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier</a>();</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  *p = value;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;}</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">void</span> <a class="code" href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">gpr_atm_no_barrier_store</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> value) {</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  <span class="comment">/* TODO(ctiller): Can we implement something better here? */</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  <a class="code" href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store</a>(p, value);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;}</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">int</span> <a class="code" href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> o, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> n) {</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">/* InterlockedCompareExchangePointerNoFence() not available on vista or</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="comment">   windows7 */</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#ifdef GPR_ARCH_64</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">return</span> o == (<a class="code" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchangeAcquire64((<span class="keyword">volatile</span> LONGLONG *) p,</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                                                           (LONGLONG) n, (LONGLONG) o);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">return</span> o == (<a class="code" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchangeAcquire((<span class="keyword">volatile</span> LONG *) p,</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                                                         (LONG) n, (LONG) o);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">int</span> <a class="code" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> o, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> n) {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#ifdef GPR_ARCH_64</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">return</span> o == (<a class="code" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchangeAcquire64((<span class="keyword">volatile</span> LONGLONG *) p,</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;                                                           (LONGLONG) n, (LONGLONG) o);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">return</span> o == (<a class="code" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchangeAcquire((<span class="keyword">volatile</span> LONG *) p,</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                                                         (LONG) n, (LONG) o);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="keyword">static</span> __inline <span class="keywordtype">int</span> <a class="code" href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">gpr_atm_rel_cas</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> o, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> n) {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#ifdef GPR_ARCH_64</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">return</span> o == (<a class="code" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchangeRelease64((<span class="keyword">volatile</span> LONGLONG *) p,</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                                                           (LONGLONG) n, (LONGLONG) o);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">return</span> o == (<a class="code" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchangeRelease((<span class="keyword">volatile</span> LONG *) p,</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;                                                         (LONG) n, (LONG) o);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keyword">static</span> __inline <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> <a class="code" href="atm__gcc__atomic_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">gpr_atm_no_barrier_fetch_add</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p,</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;                                                     <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> delta) {</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;  <span class="comment">/* Use the CAS operation to get pointer-sized fetch and add */</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> old;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;  <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    old = *p;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  } <span class="keywordflow">while</span> (!<a class="code" href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas</a>(p, old, old + delta));</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  <span class="keywordflow">return</span> old;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keyword">static</span> __inline <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> <a class="code" href="atm__gcc__atomic_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add</a>(<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> *p, <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> delta) {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  <span class="comment">/* Use a CAS operation to get pointer-sized fetch and add */</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> old;</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#ifdef GPR_ARCH_64</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;    old = *p;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  } <span class="keywordflow">while</span> (old != (<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchange64((<span class="keyword">volatile</span> LONGLONG *) p,</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;                                                        (LONGLONG) old + delta,</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                                                        (LONGLONG) old));</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">do</span> {</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;    old = *p;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  } <span class="keywordflow">while</span> (old != (<a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a>)InterlockedCompareExchange((<span class="keyword">volatile</span> LONG *) p,</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;                                                      (LONG) old + delta,</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                                                      (LONG) old));</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor"></span>  <span class="keywordflow">return</span> old;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;}</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_ATM_WIN32_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="port__platform_8h_html"><div class="ttname"><a href="port__platform_8h.html">port_platform.h</a></div></div>
+<div class="ttc" id="port__platform_8h_html_a72d9d0d00bd576cfc8eab61aaea76db2"><div class="ttname"><a href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a></div><div class="ttdeci">intptr_t gpr_intptr</div><div class="ttdef"><b>Definition:</b> port_platform.h:312</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_ae337dc477a6a45ac3d91e41e8f3f2f8c"><div class="ttname"><a href="atm__gcc__atomic_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">gpr_atm_no_barrier_fetch_add</a></div><div class="ttdeci">#define gpr_atm_no_barrier_fetch_add(p, delta)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:52</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_a44607f95f7ee40eba592c7fe10960a06"><div class="ttname"><a href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">gpr_atm_acq_load</a></div><div class="ttdeci">#define gpr_atm_acq_load(p)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:45</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_aa647aa9c97294a6709bbf2ac401cd9a6"><div class="ttname"><a href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">gpr_atm_no_barrier_load</a></div><div class="ttdeci">#define gpr_atm_no_barrier_load(p)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:46</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_a1a90e5777158aaa53624822f1f87dd90"><div class="ttname"><a href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas</a></div><div class="ttdeci">#define gpr_atm_acq_cas(p, o, n)</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:84</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_abada8771b338845e4c6ef93c8392582c"><div class="ttname"><a href="atm__gcc__atomic_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add</a></div><div class="ttdeci">#define gpr_atm_full_fetch_add(p, delta)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:54</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_afad47d4c311c5439371fcdd4a0b6794e"><div class="ttname"><a href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">gpr_atm_no_barrier_store</a></div><div class="ttdeci">#define gpr_atm_no_barrier_store(p, value)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:49</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_a42e3982d45ae4cec439a12b8fcd618e9"><div class="ttname"><a href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store</a></div><div class="ttdeci">#define gpr_atm_rel_store(p, value)</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:47</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_ad39536b08912ac4a0770655ed334d260"><div class="ttname"><a href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas</a></div><div class="ttdeci">#define gpr_atm_no_barrier_cas(p, o, n)</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:83</div></div>
+<div class="ttc" id="atm__gcc__sync_8h_html_ae7c3b215cda868ee9ee778822000c3f2"><div class="ttname"><a href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">gpr_atm_rel_cas</a></div><div class="ttdeci">#define gpr_atm_rel_cas(p, o, n)</div><div class="ttdef"><b>Definition:</b> atm_gcc_sync.h:85</div></div>
+<div class="ttc" id="atm__win32_8h_html_aa9e4b16c09888debe306f14e8090b1cc"><div class="ttname"><a href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></div><div class="ttdeci">gpr_intptr gpr_atm</div><div class="ttdef"><b>Definition:</b> atm_win32.h:40</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_aa9e4b16c09888debe306f14e8090b1cc"><div class="ttname"><a href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></div><div class="ttdeci">gpr_intptr gpr_atm</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:41</div></div>
+<div class="ttc" id="atm__win32_8h_html_a8e58c94aff5c7161bc3cbfde878dd03d"><div class="ttname"><a href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier</a></div><div class="ttdeci">#define gpr_atm_full_barrier</div><div class="ttdef"><b>Definition:</b> atm_win32.h:42</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

二进制
core/bc_s.png


二进制
core/bdwn.png


+ 416 - 0
core/byte__buffer_8h.html

@@ -0,0 +1,416 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/byte_buffer.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">byte_buffer.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="compression_8h_source.html">grpc/compression.h</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="slice__buffer_8h_source.html">grpc/support/slice_buffer.h</a>&gt;</code><br/>
+</div>
+<p><a href="byte__buffer_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__byte__buffer.html">grpc_byte_buffer</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="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a670951ae03b0a2dc4e50f4e25160fc2e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#a670951ae03b0a2dc4e50f4e25160fc2e">grpc_byte_buffer</a></td></tr>
+<tr class="separator:a670951ae03b0a2dc4e50f4e25160fc2e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16143f22ea46cc7fa6b53e6cb30715f1"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#a16143f22ea46cc7fa6b53e6cb30715f1">grpc_byte_buffer_reader</a></td></tr>
+<tr class="separator:a16143f22ea46cc7fa6b53e6cb30715f1"><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:acdc94363b280bde9c82e3d9b5dc3b3e6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">grpc_byte_buffer_type</a> { <a class="el" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">GRPC_BB_RAW</a>
+ }</td></tr>
+<tr class="separator:acdc94363b280bde9c82e3d9b5dc3b3e6"><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:a1aaaa0d8a1609166e0b0bb2b42332618"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#a1aaaa0d8a1609166e0b0bb2b42332618">grpc_raw_byte_buffer_create</a> (<a class="el" href="structgpr__slice.html">gpr_slice</a> *slices, size_t nslices)</td></tr>
+<tr class="memdesc:a1aaaa0d8a1609166e0b0bb2b42332618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a RAW byte buffer instance over the given slices (up to <em>nslices</em>).  <a href="#a1aaaa0d8a1609166e0b0bb2b42332618">More...</a><br/></td></tr>
+<tr class="separator:a1aaaa0d8a1609166e0b0bb2b42332618"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9801acc1dbfd02b2c51ed9d504cd12b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#af9801acc1dbfd02b2c51ed9d504cd12b">grpc_raw_compressed_byte_buffer_create</a> (<a class="el" href="structgpr__slice.html">gpr_slice</a> *slices, size_t nslices, <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> compression)</td></tr>
+<tr class="memdesc:af9801acc1dbfd02b2c51ed9d504cd12b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a <em>compressed</em> RAW byte buffer instance over the given slices (up to <em>nslices</em>).  <a href="#af9801acc1dbfd02b2c51ed9d504cd12b">More...</a><br/></td></tr>
+<tr class="separator:af9801acc1dbfd02b2c51ed9d504cd12b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac8a5605c5de93a78da7e8ca06a80efb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#aac8a5605c5de93a78da7e8ca06a80efb">grpc_byte_buffer_copy</a> (<a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *bb)</td></tr>
+<tr class="memdesc:aac8a5605c5de93a78da7e8ca06a80efb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies input byte buffer <em>bb</em>.  <a href="#aac8a5605c5de93a78da7e8ca06a80efb">More...</a><br/></td></tr>
+<tr class="separator:aac8a5605c5de93a78da7e8ca06a80efb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a61b6ac03d6a50664786e45d616ba435d"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#a61b6ac03d6a50664786e45d616ba435d">grpc_byte_buffer_length</a> (<a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *bb)</td></tr>
+<tr class="memdesc:a61b6ac03d6a50664786e45d616ba435d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the size of the given byte buffer, in bytes.  <a href="#a61b6ac03d6a50664786e45d616ba435d">More...</a><br/></td></tr>
+<tr class="separator:a61b6ac03d6a50664786e45d616ba435d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5a9ccea69a6ba41d34a6985837fd88f5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#a5a9ccea69a6ba41d34a6985837fd88f5">grpc_byte_buffer_destroy</a> (<a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *byte_buffer)</td></tr>
+<tr class="memdesc:a5a9ccea69a6ba41d34a6985837fd88f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys <em>byte_buffer</em> deallocating all its memory.  <a href="#a5a9ccea69a6ba41d34a6985837fd88f5">More...</a><br/></td></tr>
+<tr class="separator:a5a9ccea69a6ba41d34a6985837fd88f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71016674849f4f57c1a4319d7964d268"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#a71016674849f4f57c1a4319d7964d268">grpc_byte_buffer_reader_init</a> (<a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader, <a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *buffer)</td></tr>
+<tr class="memdesc:a71016674849f4f57c1a4319d7964d268"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize <em>reader</em> to read over <em>buffer</em>.  <a href="#a71016674849f4f57c1a4319d7964d268">More...</a><br/></td></tr>
+<tr class="separator:a71016674849f4f57c1a4319d7964d268"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed5f40a76941741b7672c14f15be0778"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#aed5f40a76941741b7672c14f15be0778">grpc_byte_buffer_reader_destroy</a> (<a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader)</td></tr>
+<tr class="memdesc:aed5f40a76941741b7672c14f15be0778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cleanup and destroy <em>reader</em>.  <a href="#aed5f40a76941741b7672c14f15be0778">More...</a><br/></td></tr>
+<tr class="separator:aed5f40a76941741b7672c14f15be0778"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff713900a0177997a0be49a40781bcc9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#aff713900a0177997a0be49a40781bcc9">grpc_byte_buffer_reader_next</a> (<a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader, <a class="el" href="structgpr__slice.html">gpr_slice</a> *slice)</td></tr>
+<tr class="memdesc:aff713900a0177997a0be49a40781bcc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates <em>slice</em> with the next piece of data from from <em>reader</em> and returns.  <a href="#aff713900a0177997a0be49a40781bcc9">More...</a><br/></td></tr>
+<tr class="separator:aff713900a0177997a0be49a40781bcc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9b4f877e32f45e0e704970e89582e0df"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html#a9b4f877e32f45e0e704970e89582e0df">grpc_raw_byte_buffer_from_reader</a> (<a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader)</td></tr>
+<tr class="memdesc:a9b4f877e32f45e0e704970e89582e0df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a RAW byte buffer instance from the output of <em>reader</em>.  <a href="#a9b4f877e32f45e0e704970e89582e0df">More...</a><br/></td></tr>
+<tr class="separator:a9b4f877e32f45e0e704970e89582e0df"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a670951ae03b0a2dc4e50f4e25160fc2e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> <a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a16143f22ea46cc7fa6b53e6cb30715f1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> <a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="acdc94363b280bde9c82e3d9b5dc3b3e6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">grpc_byte_buffer_type</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636"></a>GRPC_BB_RAW</em>&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="aac8a5605c5de93a78da7e8ca06a80efb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* grpc_byte_buffer_copy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td>
+          <td class="paramname"><em>bb</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Copies input byte buffer <em>bb</em>. </p>
+<p>Increases the reference count of all the source slices. The user is responsible for calling grpc_byte_buffer_destroy over the returned copy. </p>
+
+</div>
+</div>
+<a class="anchor" id="a5a9ccea69a6ba41d34a6985837fd88f5"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void grpc_byte_buffer_destroy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td>
+          <td class="paramname"><em>byte_buffer</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Destroys <em>byte_buffer</em> deallocating all its memory. </p>
+
+</div>
+</div>
+<a class="anchor" id="a61b6ac03d6a50664786e45d616ba435d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t grpc_byte_buffer_length </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td>
+          <td class="paramname"><em>bb</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the size of the given byte buffer, in bytes. </p>
+
+</div>
+</div>
+<a class="anchor" id="aed5f40a76941741b7672c14f15be0778"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void grpc_byte_buffer_reader_destroy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *&#160;</td>
+          <td class="paramname"><em>reader</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Cleanup and destroy <em>reader</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="a71016674849f4f57c1a4319d7964d268"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void grpc_byte_buffer_reader_init </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *&#160;</td>
+          <td class="paramname"><em>reader</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *&#160;</td>
+          <td class="paramname"><em>buffer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initialize <em>reader</em> to read over <em>buffer</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="aff713900a0177997a0be49a40781bcc9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int grpc_byte_buffer_reader_next </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *&#160;</td>
+          <td class="paramname"><em>reader</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>Updates <em>slice</em> with the next piece of data from from <em>reader</em> and returns. </p>
+<ol type="1">
+<li>Returns 0 at the end of the stream. Caller is responsible for calling gpr_slice_unref on the result. </li>
+</ol>
+
+</div>
+</div>
+<a class="anchor" id="a1aaaa0d8a1609166e0b0bb2b42332618"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* grpc_raw_byte_buffer_create </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgpr__slice.html">gpr_slice</a> *&#160;</td>
+          <td class="paramname"><em>slices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>nslices</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a RAW byte buffer instance over the given slices (up to <em>nslices</em>). </p>
+<p>Increases the reference count for all <em>slices</em> processed. The user is responsible for invoking grpc_byte_buffer_destroy on the returned instance. </p>
+
+</div>
+</div>
+<a class="anchor" id="a9b4f877e32f45e0e704970e89582e0df"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* grpc_raw_byte_buffer_from_reader </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *&#160;</td>
+          <td class="paramname"><em>reader</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a RAW byte buffer instance from the output of <em>reader</em>. </p>
+
+</div>
+</div>
+<a class="anchor" id="af9801acc1dbfd02b2c51ed9d504cd12b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* grpc_raw_compressed_byte_buffer_create </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgpr__slice.html">gpr_slice</a> *&#160;</td>
+          <td class="paramname"><em>slices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>nslices</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td>
+          <td class="paramname"><em>compression</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a <em>compressed</em> RAW byte buffer instance over the given slices (up to <em>nslices</em>). </p>
+<p>The <em>compression</em> argument defines the compression algorithm used to generate the data in <em>slices</em>.</p>
+<p>Increases the reference count for all <em>slices</em> processed. The user is responsible for invoking grpc_byte_buffer_destroy on the returned instance. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 212 - 0
core/byte__buffer_8h_source.html

@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/byte_buffer.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">byte_buffer.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="byte__buffer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_BYTE_BUFFER_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_BYTE_BUFFER_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="compression_8h.html">grpc/compression.h</a>&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__buffer_8h.html">grpc/support/slice_buffer.h</a>&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">   44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">   45</a></span>&#160;  <a class="code" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">GRPC_BB_RAW</a></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;  <span class="comment">/* Future types may include GRPC_BB_PROTOBUF, etc. */</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;} <a class="code" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">grpc_byte_buffer_type</a>;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer.html">   49</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> {</div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer.html#aa7357d67e401d5bc9d10d8fed008dec8">   50</a></span>&#160;  <a class="code" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">grpc_byte_buffer_type</a> <a class="code" href="structgrpc__byte__buffer.html#aa7357d67e401d5bc9d10d8fed008dec8">type</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer.html#a3663648016e1076b82c5e731dc5b2399">   53</a></span>&#160;      <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="code" href="structgrpc__byte__buffer.html#a3663648016e1076b82c5e731dc5b2399">compression</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer.html#ae93126777b4832bc327b7e10104f0eae">   54</a></span>&#160;      <a class="code" href="structgpr__slice__buffer.html">gpr_slice_buffer</a> <a class="code" href="structgrpc__byte__buffer.html#ae93126777b4832bc327b7e10104f0eae">slice_buffer</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    } <a class="code" href="structgrpc__byte__buffer.html#ae8231d6e62b3d7f4cfbc6a564c84bae6">raw</a>;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  } <a class="code" href="structgrpc__byte__buffer.html#a9bee8905a97b4972f9ec1d18e5fe513f">data</a>;</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;};</div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="byte__buffer_8h.html#a670951ae03b0a2dc4e50f4e25160fc2e">   58</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>;</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *<a class="code" href="byte__buffer_8h.html#a1aaaa0d8a1609166e0b0bb2b42332618">grpc_raw_byte_buffer_create</a>(<a class="code" href="structgpr__slice.html">gpr_slice</a> *slices,</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                                              <span class="keywordtype">size_t</span> nslices);</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *<a class="code" href="byte__buffer_8h.html#af9801acc1dbfd02b2c51ed9d504cd12b">grpc_raw_compressed_byte_buffer_create</a>(</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;    <a class="code" href="structgpr__slice.html">gpr_slice</a> *slices, <span class="keywordtype">size_t</span> nslices, <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="code" href="structgrpc__byte__buffer.html#a3663648016e1076b82c5e731dc5b2399">compression</a>);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *<a class="code" href="byte__buffer_8h.html#aac8a5605c5de93a78da7e8ca06a80efb">grpc_byte_buffer_copy</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *bb);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="byte__buffer_8h.html#a61b6ac03d6a50664786e45d616ba435d">grpc_byte_buffer_length</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *bb);</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="keywordtype">void</span> <a class="code" href="byte__buffer_8h.html#a5a9ccea69a6ba41d34a6985837fd88f5">grpc_byte_buffer_destroy</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *byte_buffer);</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>;</div>
+<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="byte__buffer_8h.html#a16143f22ea46cc7fa6b53e6cb30715f1">   90</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> <a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="keywordtype">void</span> <a class="code" href="byte__buffer_8h.html#a71016674849f4f57c1a4319d7964d268">grpc_byte_buffer_reader_init</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader,</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;                                  <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *buffer);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="keywordtype">void</span> <a class="code" href="byte__buffer_8h.html#aed5f40a76941741b7672c14f15be0778">grpc_byte_buffer_reader_destroy</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="keywordtype">int</span> <a class="code" href="byte__buffer_8h.html#aff713900a0177997a0be49a40781bcc9">grpc_byte_buffer_reader_next</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader,</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                                 <a class="code" href="structgpr__slice.html">gpr_slice</a> *slice);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *<a class="code" href="byte__buffer_8h.html#a9b4f877e32f45e0e704970e89582e0df">grpc_raw_byte_buffer_from_reader</a>(</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    <a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> *reader);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_BYTE_BUFFER_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="compression_8h_html"><div class="ttname"><a href="compression_8h.html">compression.h</a></div></div>
+<div class="ttc" id="compression_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9"><div class="ttname"><a href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a></div><div class="ttdeci">grpc_compression_algorithm</div><div class="ttdef"><b>Definition:</b> compression.h:45</div></div>
+<div class="ttc" id="byte__buffer_8h_html_aff713900a0177997a0be49a40781bcc9"><div class="ttname"><a href="byte__buffer_8h.html#aff713900a0177997a0be49a40781bcc9">grpc_byte_buffer_reader_next</a></div><div class="ttdeci">int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, gpr_slice *slice)</div><div class="ttdoc">Updates slice with the next piece of data from from reader and returns. </div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html_a9bee8905a97b4972f9ec1d18e5fe513f"><div class="ttname"><a href="structgrpc__byte__buffer.html#a9bee8905a97b4972f9ec1d18e5fe513f">grpc_byte_buffer::data</a></div><div class="ttdeci">union grpc_byte_buffer::@0 data</div></div>
+<div class="ttc" id="byte__buffer_8h_html_a71016674849f4f57c1a4319d7964d268"><div class="ttname"><a href="byte__buffer_8h.html#a71016674849f4f57c1a4319d7964d268">grpc_byte_buffer_reader_init</a></div><div class="ttdeci">void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, grpc_byte_buffer *buffer)</div><div class="ttdoc">Initialize reader to read over buffer. </div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html_ae93126777b4832bc327b7e10104f0eae"><div class="ttname"><a href="structgrpc__byte__buffer.html#ae93126777b4832bc327b7e10104f0eae">grpc_byte_buffer::slice_buffer</a></div><div class="ttdeci">gpr_slice_buffer slice_buffer</div><div class="ttdef"><b>Definition:</b> byte_buffer.h:54</div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html_aa7357d67e401d5bc9d10d8fed008dec8"><div class="ttname"><a href="structgrpc__byte__buffer.html#aa7357d67e401d5bc9d10d8fed008dec8">grpc_byte_buffer::type</a></div><div class="ttdeci">grpc_byte_buffer_type type</div><div class="ttdef"><b>Definition:</b> byte_buffer.h:50</div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html"><div class="ttname"><a href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></div><div class="ttdef"><b>Definition:</b> byte_buffer.h:49</div></div>
+<div class="ttc" id="structgpr__slice__buffer_html"><div class="ttname"><a href="structgpr__slice__buffer.html">gpr_slice_buffer</a></div><div class="ttdef"><b>Definition:</b> slice_buffer.h:48</div></div>
+<div class="ttc" id="byte__buffer_8h_html_acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636"><div class="ttname"><a href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">GRPC_BB_RAW</a></div><div class="ttdef"><b>Definition:</b> byte_buffer.h:45</div></div>
+<div class="ttc" id="byte__buffer_8h_html_acdc94363b280bde9c82e3d9b5dc3b3e6"><div class="ttname"><a href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">grpc_byte_buffer_type</a></div><div class="ttdeci">grpc_byte_buffer_type</div><div class="ttdef"><b>Definition:</b> byte_buffer.h:44</div></div>
+<div class="ttc" id="byte__buffer_8h_html_a5a9ccea69a6ba41d34a6985837fd88f5"><div class="ttname"><a href="byte__buffer_8h.html#a5a9ccea69a6ba41d34a6985837fd88f5">grpc_byte_buffer_destroy</a></div><div class="ttdeci">void grpc_byte_buffer_destroy(grpc_byte_buffer *byte_buffer)</div><div class="ttdoc">Destroys byte_buffer deallocating all its memory. </div></div>
+<div class="ttc" id="byte__buffer_8h_html_af9801acc1dbfd02b2c51ed9d504cd12b"><div class="ttname"><a href="byte__buffer_8h.html#af9801acc1dbfd02b2c51ed9d504cd12b">grpc_raw_compressed_byte_buffer_create</a></div><div class="ttdeci">grpc_byte_buffer * grpc_raw_compressed_byte_buffer_create(gpr_slice *slices, size_t nslices, grpc_compression_algorithm compression)</div><div class="ttdoc">Returns a compressed RAW byte buffer instance over the given slices (up to nslices). </div></div>
+<div class="ttc" id="byte__buffer_8h_html_a9b4f877e32f45e0e704970e89582e0df"><div class="ttname"><a href="byte__buffer_8h.html#a9b4f877e32f45e0e704970e89582e0df">grpc_raw_byte_buffer_from_reader</a></div><div class="ttdeci">grpc_byte_buffer * grpc_raw_byte_buffer_from_reader(grpc_byte_buffer_reader *reader)</div><div class="ttdoc">Returns a RAW byte buffer instance from the output of reader. </div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html_ae8231d6e62b3d7f4cfbc6a564c84bae6"><div class="ttname"><a href="structgrpc__byte__buffer.html#ae8231d6e62b3d7f4cfbc6a564c84bae6">grpc_byte_buffer::raw</a></div><div class="ttdeci">struct grpc_byte_buffer::@0::@1 raw</div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html_a3663648016e1076b82c5e731dc5b2399"><div class="ttname"><a href="structgrpc__byte__buffer.html#a3663648016e1076b82c5e731dc5b2399">grpc_byte_buffer::compression</a></div><div class="ttdeci">grpc_compression_algorithm compression</div><div class="ttdef"><b>Definition:</b> byte_buffer.h:53</div></div>
+<div class="ttc" id="byte__buffer_8h_html_aed5f40a76941741b7672c14f15be0778"><div class="ttname"><a href="byte__buffer_8h.html#aed5f40a76941741b7672c14f15be0778">grpc_byte_buffer_reader_destroy</a></div><div class="ttdeci">void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader)</div><div class="ttdoc">Cleanup and destroy reader. </div></div>
+<div class="ttc" id="byte__buffer_8h_html_a61b6ac03d6a50664786e45d616ba435d"><div class="ttname"><a href="byte__buffer_8h.html#a61b6ac03d6a50664786e45d616ba435d">grpc_byte_buffer_length</a></div><div class="ttdeci">size_t grpc_byte_buffer_length(grpc_byte_buffer *bb)</div><div class="ttdoc">Returns the size of the given byte buffer, in bytes. </div></div>
+<div class="ttc" id="slice__buffer_8h_html"><div class="ttname"><a href="slice__buffer_8h.html">slice_buffer.h</a></div></div>
+<div class="ttc" id="byte__buffer_8h_html_a1aaaa0d8a1609166e0b0bb2b42332618"><div class="ttname"><a href="byte__buffer_8h.html#a1aaaa0d8a1609166e0b0bb2b42332618">grpc_raw_byte_buffer_create</a></div><div class="ttdeci">grpc_byte_buffer * grpc_raw_byte_buffer_create(gpr_slice *slices, size_t nslices)</div><div class="ttdoc">Returns a RAW byte buffer instance over the given slices (up to nslices). </div></div>
+<div class="ttc" id="structgrpc__byte__buffer__reader_html"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a></div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:44</div></div>
+<div class="ttc" id="structgpr__slice_html"><div class="ttname"><a href="structgpr__slice.html">gpr_slice</a></div><div class="ttdef"><b>Definition:</b> slice.h:79</div></div>
+<div class="ttc" id="byte__buffer_8h_html_aac8a5605c5de93a78da7e8ca06a80efb"><div class="ttname"><a href="byte__buffer_8h.html#aac8a5605c5de93a78da7e8ca06a80efb">grpc_byte_buffer_copy</a></div><div class="ttdeci">grpc_byte_buffer * grpc_byte_buffer_copy(grpc_byte_buffer *bb)</div><div class="ttdoc">Copies input byte buffer bb. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 111 - 0
core/byte__buffer__reader_8h.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/byte_buffer_reader.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">byte_buffer_reader.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="grpc_8h_source.html">grpc/grpc.h</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="byte__buffer_8h_source.html">grpc/byte_buffer.h</a>&gt;</code><br/>
+</div>
+<p><a href="byte__buffer__reader_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__byte__buffer__reader.html">grpc_byte_buffer_reader</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 165 - 0
core/byte__buffer__reader_8h_source.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/byte_buffer_reader.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">byte_buffer_reader.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="byte__buffer__reader_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_BYTE_BUFFER_READER_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_BYTE_BUFFER_READER_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="byte__buffer_8h.html">grpc/byte_buffer.h</a>&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer__reader.html">   44</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> {</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer__reader.html#a8856d955b045dab1a425fac372e0be22">   45</a></span>&#160;  <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *<a class="code" href="structgrpc__byte__buffer__reader.html#a8856d955b045dab1a425fac372e0be22">buffer_in</a>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer__reader.html#aa947e8d51e0b4333e2b68f0ac55f4e47">   46</a></span>&#160;  <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *<a class="code" href="structgrpc__byte__buffer__reader.html#aa947e8d51e0b4333e2b68f0ac55f4e47">buffer_out</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;  <span class="comment">/* Different current objects correspond to different types of byte buffers */</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;  <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="comment">/* Index into a slice buffer&#39;s array of slices */</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structgrpc__byte__buffer__reader.html#a948b75a404899c348fc6a52e1a6e63cb">   50</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="structgrpc__byte__buffer__reader.html#a948b75a404899c348fc6a52e1a6e63cb">index</a>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;  } <a class="code" href="structgrpc__byte__buffer__reader.html#aaa53ee469c319cbdd72d44548d1f981f">current</a>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;};</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_BYTE_BUFFER_READER_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="byte__buffer_8h_html"><div class="ttname"><a href="byte__buffer_8h.html">byte_buffer.h</a></div></div>
+<div class="ttc" id="structgrpc__byte__buffer__reader_html_aa947e8d51e0b4333e2b68f0ac55f4e47"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html#aa947e8d51e0b4333e2b68f0ac55f4e47">grpc_byte_buffer_reader::buffer_out</a></div><div class="ttdeci">grpc_byte_buffer * buffer_out</div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:46</div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html"><div class="ttname"><a href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></div><div class="ttdef"><b>Definition:</b> byte_buffer.h:49</div></div>
+<div class="ttc" id="structgrpc__byte__buffer__reader_html_a948b75a404899c348fc6a52e1a6e63cb"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html#a948b75a404899c348fc6a52e1a6e63cb">grpc_byte_buffer_reader::index</a></div><div class="ttdeci">unsigned index</div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:50</div></div>
+<div class="ttc" id="structgrpc__byte__buffer__reader_html_aaa53ee469c319cbdd72d44548d1f981f"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html#aaa53ee469c319cbdd72d44548d1f981f">grpc_byte_buffer_reader::current</a></div><div class="ttdeci">union grpc_byte_buffer_reader::@2 current</div></div>
+<div class="ttc" id="structgrpc__byte__buffer__reader_html_a8856d955b045dab1a425fac372e0be22"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html#a8856d955b045dab1a425fac372e0be22">grpc_byte_buffer_reader::buffer_in</a></div><div class="ttdeci">grpc_byte_buffer * buffer_in</div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:45</div></div>
+<div class="ttc" id="structgrpc__byte__buffer__reader_html"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a></div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:44</div></div>
+<div class="ttc" id="grpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 113 - 0
core/cancellable__platform_8h.html

@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/cancellable_platform.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">cancellable_platform.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="atm_8h_source.html">grpc/support/atm.h</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="sync_8h_source.html">grpc/support/sync.h</a>&gt;</code><br/>
+</div>
+<p><a href="cancellable__platform_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="structgpr__cancellable__list__.html">gpr_cancellable_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="structgpr__cancellable.html">gpr_cancellable</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 168 - 0
core/cancellable__platform_8h_source.html

@@ -0,0 +1,168 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/cancellable_platform.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">cancellable_platform.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="cancellable__platform_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_CANCELLABLE_PLATFORM_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_CANCELLABLE_PLATFORM_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="atm_8h.html">grpc/support/atm.h</a>&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="sync_8h.html">grpc/support/sync.h</a>&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="structgpr__cancellable__list__.html">   40</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgpr__cancellable__list__.html">gpr_cancellable_list_</a> {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;  <span class="comment">/* a doubly-linked list on cancellable&#39;s waiters queue */</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structgpr__cancellable__list__.html#a425195e5ab594a2cfdcc976e5167242a">   42</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structgpr__cancellable__list__.html">gpr_cancellable_list_</a> *<a class="code" href="structgpr__cancellable__list__.html#a425195e5ab594a2cfdcc976e5167242a">next</a>;</div>
+<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="structgpr__cancellable__list__.html#a58fba7e59ac49bbb9468c2669e21b8b4">   43</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structgpr__cancellable__list__.html">gpr_cancellable_list_</a> *<a class="code" href="structgpr__cancellable__list__.html#a58fba7e59ac49bbb9468c2669e21b8b4">prev</a>;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  <span class="comment">/* The following two fields are arguments to gpr_cv_cancellable_wait() */</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structgpr__cancellable__list__.html#abf62ecf7376ec1e9f708e2671e494282">   45</a></span>&#160;  <a class="code" href="structgpr__mu.html">gpr_mu</a> *<a class="code" href="structgpr__cancellable__list__.html#abf62ecf7376ec1e9f708e2671e494282">mu</a>;</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structgpr__cancellable__list__.html#ae47b7ccae73001ae1539dfe3bcc8a459">   46</a></span>&#160;  <a class="code" href="sync__posix_8h.html#a1ad613e07180c0459cda9f3f6d881885">gpr_cv</a> *<a class="code" href="structgpr__cancellable__list__.html#ae47b7ccae73001ae1539dfe3bcc8a459">cv</a>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;};</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">/* Internal definition of gpr_cancellable. */</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structgpr__cancellable.html">   50</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structgpr__cancellable.html#a423e728b92c8890d63490cf4b1fdc30f">   51</a></span>&#160;  <a class="code" href="structgpr__mu.html">gpr_mu</a> <a class="code" href="structgpr__cancellable.html#a423e728b92c8890d63490cf4b1fdc30f">mu</a>; <span class="comment">/* protects waiters and modifications to cancelled */</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structgpr__cancellable.html#a1729b5836bf4181d092f3636368d17b2">   52</a></span>&#160;  <a class="code" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a> <a class="code" href="structgpr__cancellable.html#a1729b5836bf4181d092f3636368d17b2">cancelled</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structgpr__cancellable.html#a99dfebf899cae60307fb8b83e8cfdb43">   53</a></span>&#160;  <span class="keyword">struct </span><a class="code" href="structgpr__cancellable__list__.html">gpr_cancellable_list_</a> waiters;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;} <a class="code" href="structgpr__cancellable.html">gpr_cancellable</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_CANCELLABLE_PLATFORM_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="atm_8h_html"><div class="ttname"><a href="atm_8h.html">atm.h</a></div></div>
+<div class="ttc" id="structgpr__cancellable__list___html_a58fba7e59ac49bbb9468c2669e21b8b4"><div class="ttname"><a href="structgpr__cancellable__list__.html#a58fba7e59ac49bbb9468c2669e21b8b4">gpr_cancellable_list_::prev</a></div><div class="ttdeci">struct gpr_cancellable_list_ * prev</div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:43</div></div>
+<div class="ttc" id="structgpr__cancellable__list___html"><div class="ttname"><a href="structgpr__cancellable__list__.html">gpr_cancellable_list_</a></div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:40</div></div>
+<div class="ttc" id="structgpr__cancellable__list___html_ae47b7ccae73001ae1539dfe3bcc8a459"><div class="ttname"><a href="structgpr__cancellable__list__.html#ae47b7ccae73001ae1539dfe3bcc8a459">gpr_cancellable_list_::cv</a></div><div class="ttdeci">gpr_cv * cv</div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:46</div></div>
+<div class="ttc" id="structgpr__cancellable_html_a1729b5836bf4181d092f3636368d17b2"><div class="ttname"><a href="structgpr__cancellable.html#a1729b5836bf4181d092f3636368d17b2">gpr_cancellable::cancelled</a></div><div class="ttdeci">gpr_atm cancelled</div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:52</div></div>
+<div class="ttc" id="sync__posix_8h_html_a1ad613e07180c0459cda9f3f6d881885"><div class="ttname"><a href="sync__posix_8h.html#a1ad613e07180c0459cda9f3f6d881885">gpr_cv</a></div><div class="ttdeci">pthread_cond_t gpr_cv</div><div class="ttdef"><b>Definition:</b> sync_posix.h:42</div></div>
+<div class="ttc" id="structgpr__cancellable_html"><div class="ttname"><a href="structgpr__cancellable.html">gpr_cancellable</a></div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:50</div></div>
+<div class="ttc" id="structgpr__mu_html"><div class="ttname"><a href="structgpr__mu.html">gpr_mu</a></div><div class="ttdef"><b>Definition:</b> sync_win32.h:39</div></div>
+<div class="ttc" id="structgpr__cancellable__list___html_abf62ecf7376ec1e9f708e2671e494282"><div class="ttname"><a href="structgpr__cancellable__list__.html#abf62ecf7376ec1e9f708e2671e494282">gpr_cancellable_list_::mu</a></div><div class="ttdeci">gpr_mu * mu</div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:45</div></div>
+<div class="ttc" id="structgpr__cancellable_html_a423e728b92c8890d63490cf4b1fdc30f"><div class="ttname"><a href="structgpr__cancellable.html#a423e728b92c8890d63490cf4b1fdc30f">gpr_cancellable::mu</a></div><div class="ttdeci">gpr_mu mu</div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:51</div></div>
+<div class="ttc" id="sync_8h_html"><div class="ttname"><a href="sync_8h.html">sync.h</a></div></div>
+<div class="ttc" id="structgpr__cancellable__list___html_a425195e5ab594a2cfdcc976e5167242a"><div class="ttname"><a href="structgpr__cancellable__list__.html#a425195e5ab594a2cfdcc976e5167242a">gpr_cancellable_list_::next</a></div><div class="ttdeci">struct gpr_cancellable_list_ * next</div><div class="ttdef"><b>Definition:</b> cancellable_platform.h:42</div></div>
+<div class="ttc" id="atm__gcc__atomic_8h_html_aa9e4b16c09888debe306f14e8090b1cc"><div class="ttname"><a href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">gpr_atm</a></div><div class="ttdeci">gpr_intptr gpr_atm</div><div class="ttdef"><b>Definition:</b> atm_gcc_atomic.h:41</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 369 - 0
core/census_8h.html

@@ -0,0 +1,369 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/census.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">census.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="grpc_8h_source.html">grpc/grpc.h</a>&gt;</code><br/>
+</div>
+<p><a href="census_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="structcensus__stat.html">census_stat</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="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a27fc8788690179599713226f1f054736"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a></td></tr>
+<tr class="separator:a27fc8788690179599713226f1f054736"><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:abe92e59c22481b0de3742673cbbb1bf8"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census_features</a> { <br/>
+&#160;&#160;<a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">CENSUS_FEATURE_NONE</a> = 0, 
+<a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">CENSUS_FEATURE_TRACING</a> = 1, 
+<a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">CENSUS_FEATURE_STATS</a> = 2, 
+<a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">CENSUS_FEATURE_CPU</a> = 4, 
+<br/>
+&#160;&#160;<a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">CENSUS_FEATURE_ALL</a>
+<br/>
+ }</td></tr>
+<tr class="separator:abe92e59c22481b0de3742673cbbb1bf8"><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:a4cea92157f3de215724f6bf4aeaee1b6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6">census_initialize</a> (int features)</td></tr>
+<tr class="memdesc:a4cea92157f3de215724f6bf4aeaee1b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shutdown and startup census subsystem.  <a href="#a4cea92157f3de215724f6bf4aeaee1b6">More...</a><br/></td></tr>
+<tr class="separator:a4cea92157f3de215724f6bf4aeaee1b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa792b067548ecdd987d560b492c83d85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census_shutdown</a> (void)</td></tr>
+<tr class="separator:aa792b067548ecdd987d560b492c83d85"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad5f627a64ac4febbc61d2b89801d40e9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9">census_supported</a> (void)</td></tr>
+<tr class="memdesc:ad5f627a64ac4febbc61d2b89801d40e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the features supported by the current census implementation (not all features will be available on all platforms).  <a href="#ad5f627a64ac4febbc61d2b89801d40e9">More...</a><br/></td></tr>
+<tr class="separator:ad5f627a64ac4febbc61d2b89801d40e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a742616973e78aaf969389cea20feea9f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#a742616973e78aaf969389cea20feea9f">census_enabled</a> (void)</td></tr>
+<tr class="memdesc:a742616973e78aaf969389cea20feea9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the census features currently enabled.  <a href="#a742616973e78aaf969389cea20feea9f">More...</a><br/></td></tr>
+<tr class="separator:a742616973e78aaf969389cea20feea9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9a7d3170ecf720e1b22a4f255605748"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#ad9a7d3170ecf720e1b22a4f255605748">census_context_serialize</a> (const <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, char *buffer, size_t buf_size)</td></tr>
+<tr class="separator:ad9a7d3170ecf720e1b22a4f255605748"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9daab242b41571299ac5b3bca71fc0d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#ad9daab242b41571299ac5b3bca71fc0d">census_context_deserialize</a> (const char *buffer, <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> **context)</td></tr>
+<tr class="separator:ad9daab242b41571299ac5b3bca71fc0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5bfcd1edc546eeacf111c3316ae7785d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#a5bfcd1edc546eeacf111c3316ae7785d">census_context_destroy</a> (<a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context)</td></tr>
+<tr class="separator:a5bfcd1edc546eeacf111c3316ae7785d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cdd5ba86b080e6b5a4b47cfaa5b51cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#a0cdd5ba86b080e6b5a4b47cfaa5b51cb">census_record_stat</a> (<a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <a class="el" href="structcensus__stat.html">census_stat</a> *stats, size_t nstats)</td></tr>
+<tr class="separator:a0cdd5ba86b080e6b5a4b47cfaa5b51cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a27fc8788690179599713226f1f054736"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="abe92e59c22481b0de3742673cbbb1bf8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census_features</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="abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab"></a>CENSUS_FEATURE_NONE</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718"></a>CENSUS_FEATURE_TRACING</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a"></a>CENSUS_FEATURE_STATS</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5"></a>CENSUS_FEATURE_CPU</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c"></a>CENSUS_FEATURE_ALL</em>&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad9daab242b41571299ac5b3bca71fc0d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int census_context_deserialize </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> **&#160;</td>
+          <td class="paramname"><em>context</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5bfcd1edc546eeacf111c3316ae7785d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void census_context_destroy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *&#160;</td>
+          <td class="paramname"><em>context</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad9a7d3170ecf720e1b22a4f255605748"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t census_context_serialize </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *&#160;</td>
+          <td class="paramname"><em>context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>buf_size</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="a742616973e78aaf969389cea20feea9f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int census_enabled </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Return the census features currently enabled. </p>
+
+</div>
+</div>
+<a class="anchor" id="a4cea92157f3de215724f6bf4aeaee1b6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int census_initialize </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>features</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Shutdown and startup census subsystem. </p>
+<p>The 'features' argument should be the OR (|) of census_features values. If census fails to initialize, then <a class="el" href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6" title="Shutdown and startup census subsystem. ">census_initialize()</a> will return a non-zero value. It is an error to call <a class="el" href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6" title="Shutdown and startup census subsystem. ">census_initialize()</a> more than once (without an intervening <a class="el" href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census_shutdown()</a>). </p>
+
+</div>
+</div>
+<a class="anchor" id="a0cdd5ba86b080e6b5a4b47cfaa5b51cb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void census_record_stat </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *&#160;</td>
+          <td class="paramname"><em>context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structcensus__stat.html">census_stat</a> *&#160;</td>
+          <td class="paramname"><em>stats</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>nstats</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="aa792b067548ecdd987d560b492c83d85"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void census_shutdown </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad5f627a64ac4febbc61d2b89801d40e9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int census_supported </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Return the features supported by the current census implementation (not all features will be available on all platforms). </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 232 - 0
core/census_8h_source.html

@@ -0,0 +1,232 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/census.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">census.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="census_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="comment">/* RPC-internal Census API&#39;s. These are designed to be generic enough that</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="comment"> * they can (ultimately) be used in many different RPC systems (with differing</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="comment"> * implementations). */</span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#ifndef CENSUS_CENSUS_H</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define CENSUS_CENSUS_H</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">/* Identify census features that can be enabled via census_initialize(). */</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">   48</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census_features</a> {</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">   49</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">CENSUS_FEATURE_NONE</a> = 0,    <span class="comment">/* Do not enable census. */</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">   50</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">CENSUS_FEATURE_TRACING</a> = 1, <span class="comment">/* Enable census tracing. */</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">   51</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">CENSUS_FEATURE_STATS</a> = 2,   <span class="comment">/* Enable Census stats collection. */</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">   52</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">CENSUS_FEATURE_CPU</a> = 4,     <span class="comment">/* Enable Census CPU usage collection. */</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">   53</a></span>&#160;  <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">CENSUS_FEATURE_ALL</a> =</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;      <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">CENSUS_FEATURE_TRACING</a> | <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">CENSUS_FEATURE_STATS</a> | <a class="code" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">CENSUS_FEATURE_CPU</a></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;};</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6">census_initialize</a>(<span class="keywordtype">int</span> features);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census_shutdown</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9">census_supported</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#a742616973e78aaf969389cea20feea9f">census_enabled</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment">/* Internally, Census relies on a context, which should be propagated across</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment"> * RPC&#39;s. From the RPC subsystems viewpoint, this is an opaque data structure.</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="comment"> * A context must be used as the first argument to all other census</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="comment"> * functions. Conceptually, contexts should be thought of as specific to</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment"> * single RPC/thread. The context can be serialized for passing across the</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment"> * wire. */</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="census_8h.html#a27fc8788690179599713226f1f054736">   78</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">/* This function is called by the RPC subsystem whenever it needs to get a</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment"> * serialized form of the current census context (presumably to pass across</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment"> * the wire). Arguments:</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment"> * &#39;buffer&#39;: pointer to memory into which serialized context will be placed</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment"> * &#39;buf_size&#39;: size of &#39;buffer&#39;</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment"> * Returns: the number of bytes used in buffer if successful, or 0 if the</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment"> * buffer is of insufficient size.</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment"> * TODO(aveitch): determine how best to communicate required/max buffer size</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment"> * so caller doesn&#39;t have to guess. */</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="census_8h.html#ad9a7d3170ecf720e1b22a4f255605748">census_context_serialize</a>(<span class="keyword">const</span> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <span class="keywordtype">char</span> *buffer,</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;                                <span class="keywordtype">size_t</span> buf_size);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">/* Create a new census context, possibly from a serialized buffer. If &#39;buffer&#39;</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment"> * is non-NULL, it is assumed that it is a buffer encoded by</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="comment"> * census_context_serialize(). If `buffer` is NULL, a new, empty context is</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment"> * created. The decoded/new contest is returned in &#39;context&#39;.</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment"> * Returns 0 if no errors, non-zero if buffer is incorrectly formatted, in</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment"> * which case a new empty context will be returned. */</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keywordtype">int</span> <a class="code" href="census_8h.html#ad9daab242b41571299ac5b3bca71fc0d">census_context_deserialize</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *buffer, <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> **context);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment">/* The given context is destroyed. Once destroyed, using the context in</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment"> * future census calls will result in undefined behavior. */</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a5bfcd1edc546eeacf111c3316ae7785d">census_context_destroy</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">/* A census statistic to be recorded comprises two parts: an ID for the</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="comment"> * particular statistic and the value to be recorded against it. */</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structcensus__stat.html">  109</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structcensus__stat.html#a1151cb5a250db9b70ba8fc13453abcf3">  110</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structcensus__stat.html#a1151cb5a250db9b70ba8fc13453abcf3">id</a>;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structcensus__stat.html#a3daa951eaf025870b0ab4b63343fe179">  111</a></span>&#160;  <span class="keywordtype">double</span> <a class="code" href="structcensus__stat.html#a3daa951eaf025870b0ab4b63343fe179">value</a>;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;} <a class="code" href="structcensus__stat.html">census_stat</a>;</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment">/* Record new stats against the given context. */</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="keywordtype">void</span> <a class="code" href="census_8h.html#a0cdd5ba86b080e6b5a4b47cfaa5b51cb">census_record_stat</a>(<a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context, <a class="code" href="structcensus__stat.html">census_stat</a> *stats,</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                        <span class="keywordtype">size_t</span> nstats);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CENSUS_CENSUS_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="census_8h_html_a5bfcd1edc546eeacf111c3316ae7785d"><div class="ttname"><a href="census_8h.html#a5bfcd1edc546eeacf111c3316ae7785d">census_context_destroy</a></div><div class="ttdeci">void census_context_destroy(census_context *context)</div></div>
+<div class="ttc" id="census_8h_html_ad9daab242b41571299ac5b3bca71fc0d"><div class="ttname"><a href="census_8h.html#ad9daab242b41571299ac5b3bca71fc0d">census_context_deserialize</a></div><div class="ttdeci">int census_context_deserialize(const char *buffer, census_context **context)</div></div>
+<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">CENSUS_FEATURE_TRACING</a></div><div class="ttdef"><b>Definition:</b> census.h:50</div></div>
+<div class="ttc" id="census_8h_html_a4cea92157f3de215724f6bf4aeaee1b6"><div class="ttname"><a href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6">census_initialize</a></div><div class="ttdeci">int census_initialize(int features)</div><div class="ttdoc">Shutdown and startup census subsystem. </div></div>
+<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">CENSUS_FEATURE_CPU</a></div><div class="ttdef"><b>Definition:</b> census.h:52</div></div>
+<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">CENSUS_FEATURE_ALL</a></div><div class="ttdef"><b>Definition:</b> census.h:53</div></div>
+<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">CENSUS_FEATURE_STATS</a></div><div class="ttdef"><b>Definition:</b> census.h:51</div></div>
+<div class="ttc" id="census_8h_html_aa792b067548ecdd987d560b492c83d85"><div class="ttname"><a href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census_shutdown</a></div><div class="ttdeci">void census_shutdown(void)</div></div>
+<div class="ttc" id="structcensus__stat_html_a1151cb5a250db9b70ba8fc13453abcf3"><div class="ttname"><a href="structcensus__stat.html#a1151cb5a250db9b70ba8fc13453abcf3">census_stat::id</a></div><div class="ttdeci">int id</div><div class="ttdef"><b>Definition:</b> census.h:110</div></div>
+<div class="ttc" id="census_8h_html_ad5f627a64ac4febbc61d2b89801d40e9"><div class="ttname"><a href="census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9">census_supported</a></div><div class="ttdeci">int census_supported(void)</div><div class="ttdoc">Return the features supported by the current census implementation (not all features will be availabl...</div></div>
+<div class="ttc" id="structcensus__stat_html_a3daa951eaf025870b0ab4b63343fe179"><div class="ttname"><a href="structcensus__stat.html#a3daa951eaf025870b0ab4b63343fe179">census_stat::value</a></div><div class="ttdeci">double value</div><div class="ttdef"><b>Definition:</b> census.h:111</div></div>
+<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census_features</a></div><div class="ttdeci">census_features</div><div class="ttdef"><b>Definition:</b> census.h:48</div></div>
+<div class="ttc" id="census_8h_html_a0cdd5ba86b080e6b5a4b47cfaa5b51cb"><div class="ttname"><a href="census_8h.html#a0cdd5ba86b080e6b5a4b47cfaa5b51cb">census_record_stat</a></div><div class="ttdeci">void census_record_stat(census_context *context, census_stat *stats, size_t nstats)</div></div>
+<div class="ttc" id="census_8h_html_a742616973e78aaf969389cea20feea9f"><div class="ttname"><a href="census_8h.html#a742616973e78aaf969389cea20feea9f">census_enabled</a></div><div class="ttdeci">int census_enabled(void)</div><div class="ttdoc">Return the census features currently enabled. </div></div>
+<div class="ttc" id="grpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
+<div class="ttc" id="census_8h_html_ad9a7d3170ecf720e1b22a4f255605748"><div class="ttname"><a href="census_8h.html#ad9a7d3170ecf720e1b22a4f255605748">census_context_serialize</a></div><div class="ttdeci">size_t census_context_serialize(const census_context *context, char *buffer, size_t buf_size)</div></div>
+<div class="ttc" id="structcensus__stat_html"><div class="ttname"><a href="structcensus__stat.html">census_stat</a></div><div class="ttdef"><b>Definition:</b> census.h:109</div></div>
+<div class="ttc" id="census_8h_html_a27fc8788690179599713226f1f054736"><div class="ttname"><a href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a></div><div class="ttdeci">struct census_context census_context</div><div class="ttdef"><b>Definition:</b> census.h:78</div></div>
+<div class="ttc" id="census_8h_html_abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab"><div class="ttname"><a href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">CENSUS_FEATURE_NONE</a></div><div class="ttdef"><b>Definition:</b> census.h:49</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 110 - 0
core/classes.html

@@ -0,0 +1,110 @@
+<!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: Data Structure Index</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 class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="header">
+  <div class="headertitle">
+<div class="title">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structgpr__event.html">gpr_event</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__slice.html">gpr_slice</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__auth__property.html">grpc_auth_property</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__metadata.html">grpc_metadata</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structgpr__gcc__thread__local.html">gpr_gcc_thread_local</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__slice__buffer.html">gpr_slice_buffer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__metadata__array.html">grpc_metadata_array</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structcensus__stat.html">census_stat</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__log__func__args.html">gpr_log_func_args</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__slice__refcount.html">gpr_slice_refcount</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__op.html">grpc_op</a>&#160;&#160;&#160;</td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structgpr__msvc__thread__local.html">gpr_msvc_thread_local</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__stats__counter.html">gpr_stats_counter</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="structgpr__mu.html">gpr_mu</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__thd__options.html">gpr_thd_options</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__call__details.html">grpc_call_details</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structgpr__cancellable.html">gpr_cancellable</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__pthread__thread__local.html">gpr_pthread_thread_local</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structgpr__cancellable__list__.html">gpr_cancellable_list_</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgpr__refcount.html">gpr_refcount</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__arg.html">grpc_arg</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structgrpc__event.html">grpc_event</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_C">C</a>&#160;|&#160;<a class="qindex" href="#letter_G">G</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

二进制
core/closed.png


+ 391 - 0
core/cmdline_8h.html

@@ -0,0 +1,391 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/cmdline.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">cmdline.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="cmdline_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="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:aaad93cd9bfc32c54fc89f7c2f3b74eb6"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a></td></tr>
+<tr class="separator:aaad93cd9bfc32c54fc89f7c2f3b74eb6"><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:a608f6fbc4edfb4d2c18e3c0660fd8773"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#a608f6fbc4edfb4d2c18e3c0660fd8773">gpr_cmdline_create</a> (const char *description)</td></tr>
+<tr class="separator:a608f6fbc4edfb4d2c18e3c0660fd8773"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0fc8cd330751e9876e8635189a1bc10f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#a0fc8cd330751e9876e8635189a1bc10f">gpr_cmdline_add_int</a> (<a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, const char *name, const char *help, int *value)</td></tr>
+<tr class="separator:a0fc8cd330751e9876e8635189a1bc10f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac5ecfdfc605896c29df846b1e268045e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#ac5ecfdfc605896c29df846b1e268045e">gpr_cmdline_add_flag</a> (<a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, const char *name, const char *help, int *value)</td></tr>
+<tr class="separator:ac5ecfdfc605896c29df846b1e268045e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34568676c089f3284dc8f7d8d706b1d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#a34568676c089f3284dc8f7d8d706b1d3">gpr_cmdline_add_string</a> (<a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, const char *name, const char *help, char **value)</td></tr>
+<tr class="separator:a34568676c089f3284dc8f7d8d706b1d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afcf023a5eb082034a650a0f0177d1fe9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#afcf023a5eb082034a650a0f0177d1fe9">gpr_cmdline_on_extra_arg</a> (<a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, const char *name, const char *help, void(*on_extra_arg)(void *user_data, const char *arg), void *user_data)</td></tr>
+<tr class="separator:afcf023a5eb082034a650a0f0177d1fe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a34b66021bbbb9f6a6e8a60c0ae34f8a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#a34b66021bbbb9f6a6e8a60c0ae34f8a4">gpr_cmdline_parse</a> (<a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, int argc, char **argv)</td></tr>
+<tr class="separator:a34b66021bbbb9f6a6e8a60c0ae34f8a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a018f826ce313b02d2773ef97b8df5f98"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#a018f826ce313b02d2773ef97b8df5f98">gpr_cmdline_destroy</a> (<a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl)</td></tr>
+<tr class="separator:a018f826ce313b02d2773ef97b8df5f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4eac81d047bdc6e679079309bf60f030"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html#a4eac81d047bdc6e679079309bf60f030">gpr_cmdline_usage_string</a> (<a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, const char *argv0)</td></tr>
+<tr class="separator:a4eac81d047bdc6e679079309bf60f030"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aaad93cd9bfc32c54fc89f7c2f3b74eb6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> <a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ac5ecfdfc605896c29df846b1e268045e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_cmdline_add_flag </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td>
+          <td class="paramname"><em>cl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>help</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>value</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="a0fc8cd330751e9876e8635189a1bc10f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_cmdline_add_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td>
+          <td class="paramname"><em>cl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>help</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>value</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="a34568676c089f3284dc8f7d8d706b1d3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_cmdline_add_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td>
+          <td class="paramname"><em>cl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>help</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>value</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="a608f6fbc4edfb4d2c18e3c0660fd8773"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a>* gpr_cmdline_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>description</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a018f826ce313b02d2773ef97b8df5f98"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_cmdline_destroy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td>
+          <td class="paramname"><em>cl</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afcf023a5eb082034a650a0f0177d1fe9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_cmdline_on_extra_arg </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td>
+          <td class="paramname"><em>cl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>help</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void(*)(void *user_data, const char *arg)&#160;</td>
+          <td class="paramname"><em>on_extra_arg</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>user_data</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="a34b66021bbbb9f6a6e8a60c0ae34f8a4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_cmdline_parse </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td>
+          <td class="paramname"><em>cl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>argv</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="a4eac81d047bdc6e679079309bf60f030"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* gpr_cmdline_usage_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *&#160;</td>
+          <td class="paramname"><em>cl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>argv0</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></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:05 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>

+ 205 - 0
core/cmdline_8h_source.html

@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/cmdline.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">cmdline.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="cmdline_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_CMDLINE_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_CMDLINE_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">/* Simple command line parser.</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">   Supports flags that can be specified as -foo, --foo, --no-foo, -no-foo, etc</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">   And integers, strings that can be specified as -foo=4, -foo blah, etc</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">   No support for short command line options (but we may get that in the</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">   future.)</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">   Usage (for a program with a single flag argument &#39;foo&#39;):</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">   int main(int argc, char **argv) {</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">     gpr_cmdline *cl;</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">     int verbose = 0;</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">     cl = gpr_cmdline_create(&quot;My cool tool&quot;);</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">     gpr_cmdline_add_int(cl, &quot;verbose&quot;, &quot;Produce verbose output?&quot;, &amp;verbose);</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">     gpr_cmdline_parse(cl, argc, argv);</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="comment">     gpr_cmdline_destroy(cl);</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">     if (verbose) {</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">       gpr_log(GPR_INFO, &quot;Goodbye cruel world!&quot;);</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">     }</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">     return 0;</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">   } */</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">   67</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> <a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a>;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">/* Construct a command line parser: takes a short description of the tool</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">   doing the parsing */</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *<a class="code" href="cmdline_8h.html#a608f6fbc4edfb4d2c18e3c0660fd8773">gpr_cmdline_create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *description);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="comment">/* Add an integer parameter, with a name (used on the command line) and some</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment">   helpful text (used in the command usage) */</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="keywordtype">void</span> <a class="code" href="cmdline_8h.html#a0fc8cd330751e9876e8635189a1bc10f">gpr_cmdline_add_int</a>(<a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *help,</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;                         <span class="keywordtype">int</span> *value);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="comment">/* The same, for a boolean flag */</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keywordtype">void</span> <a class="code" href="cmdline_8h.html#ac5ecfdfc605896c29df846b1e268045e">gpr_cmdline_add_flag</a>(<a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *help,</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                          <span class="keywordtype">int</span> *value);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">/* And for a string */</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="keywordtype">void</span> <a class="code" href="cmdline_8h.html#a34568676c089f3284dc8f7d8d706b1d3">gpr_cmdline_add_string</a>(<a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *help,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                            <span class="keywordtype">char</span> **value);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">/* Set a callback for non-named arguments */</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">void</span> <a class="code" href="cmdline_8h.html#afcf023a5eb082034a650a0f0177d1fe9">gpr_cmdline_on_extra_arg</a>(</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, <span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keyword">const</span> <span class="keywordtype">char</span> *help,</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keywordtype">void</span> (*on_extra_arg)(<span class="keywordtype">void</span> *user_data, <span class="keyword">const</span> <span class="keywordtype">char</span> *arg), <span class="keywordtype">void</span> *user_data);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">/* Parse the command line */</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="keywordtype">void</span> <a class="code" href="cmdline_8h.html#a34b66021bbbb9f6a6e8a60c0ae34f8a4">gpr_cmdline_parse</a>(<a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> **argv);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">/* Destroy the parser */</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keywordtype">void</span> <a class="code" href="cmdline_8h.html#a018f826ce313b02d2773ef97b8df5f98">gpr_cmdline_destroy</a>(<a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">/* Get a string describing usage */</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="cmdline_8h.html#a4eac81d047bdc6e679079309bf60f030">gpr_cmdline_usage_string</a>(<a class="code" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a> *cl, <span class="keyword">const</span> <span class="keywordtype">char</span> *argv0);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_CMDLINE_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="cmdline_8h_html_aaad93cd9bfc32c54fc89f7c2f3b74eb6"><div class="ttname"><a href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">gpr_cmdline</a></div><div class="ttdeci">struct gpr_cmdline gpr_cmdline</div><div class="ttdef"><b>Definition:</b> cmdline.h:67</div></div>
+<div class="ttc" id="cmdline_8h_html_a018f826ce313b02d2773ef97b8df5f98"><div class="ttname"><a href="cmdline_8h.html#a018f826ce313b02d2773ef97b8df5f98">gpr_cmdline_destroy</a></div><div class="ttdeci">void gpr_cmdline_destroy(gpr_cmdline *cl)</div></div>
+<div class="ttc" id="cmdline_8h_html_a34b66021bbbb9f6a6e8a60c0ae34f8a4"><div class="ttname"><a href="cmdline_8h.html#a34b66021bbbb9f6a6e8a60c0ae34f8a4">gpr_cmdline_parse</a></div><div class="ttdeci">void gpr_cmdline_parse(gpr_cmdline *cl, int argc, char **argv)</div></div>
+<div class="ttc" id="cmdline_8h_html_a0fc8cd330751e9876e8635189a1bc10f"><div class="ttname"><a href="cmdline_8h.html#a0fc8cd330751e9876e8635189a1bc10f">gpr_cmdline_add_int</a></div><div class="ttdeci">void gpr_cmdline_add_int(gpr_cmdline *cl, const char *name, const char *help, int *value)</div></div>
+<div class="ttc" id="cmdline_8h_html_afcf023a5eb082034a650a0f0177d1fe9"><div class="ttname"><a href="cmdline_8h.html#afcf023a5eb082034a650a0f0177d1fe9">gpr_cmdline_on_extra_arg</a></div><div class="ttdeci">void gpr_cmdline_on_extra_arg(gpr_cmdline *cl, const char *name, const char *help, void(*on_extra_arg)(void *user_data, const char *arg), void *user_data)</div></div>
+<div class="ttc" id="cmdline_8h_html_a608f6fbc4edfb4d2c18e3c0660fd8773"><div class="ttname"><a href="cmdline_8h.html#a608f6fbc4edfb4d2c18e3c0660fd8773">gpr_cmdline_create</a></div><div class="ttdeci">gpr_cmdline * gpr_cmdline_create(const char *description)</div></div>
+<div class="ttc" id="cmdline_8h_html_a4eac81d047bdc6e679079309bf60f030"><div class="ttname"><a href="cmdline_8h.html#a4eac81d047bdc6e679079309bf60f030">gpr_cmdline_usage_string</a></div><div class="ttdeci">char * gpr_cmdline_usage_string(gpr_cmdline *cl, const char *argv0)</div></div>
+<div class="ttc" id="cmdline_8h_html_ac5ecfdfc605896c29df846b1e268045e"><div class="ttname"><a href="cmdline_8h.html#ac5ecfdfc605896c29df846b1e268045e">gpr_cmdline_add_flag</a></div><div class="ttdeci">void gpr_cmdline_add_flag(gpr_cmdline *cl, const char *name, const char *help, int *value)</div></div>
+<div class="ttc" id="cmdline_8h_html_a34568676c089f3284dc8f7d8d706b1d3"><div class="ttname"><a href="cmdline_8h.html#a34568676c089f3284dc8f7d8d706b1d3">gpr_cmdline_add_string</a></div><div class="ttdeci">void gpr_cmdline_add_string(gpr_cmdline *cl, const char *name, const char *help, char **value)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 305 - 0
core/compression_8h.html

@@ -0,0 +1,305 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/compression.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">compression.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="compression_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="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a9340488e193921e62bb1f240f9016a9b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html#a9340488e193921e62bb1f240f9016a9b">GRPC_COMPRESSION_ALGORITHM_ARG</a>&#160;&#160;&#160;&quot;grpc.compression_algorithm&quot;</td></tr>
+<tr class="memdesc:a9340488e193921e62bb1f240f9016a9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">To be used in channel arguments.  <a href="#a9340488e193921e62bb1f240f9016a9b">More...</a><br/></td></tr>
+<tr class="separator:a9340488e193921e62bb1f240f9016a9b"><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:ab9de0f68bfb1ef8ed09bd00643db14c9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> { <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8">GRPC_COMPRESS_NONE</a> = 0, 
+<a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913">GRPC_COMPRESS_DEFLATE</a>, 
+<a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e">GRPC_COMPRESS_GZIP</a>, 
+<a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d">GRPC_COMPRESS_ALGORITHMS_COUNT</a>
+ }</td></tr>
+<tr class="separator:ab9de0f68bfb1ef8ed09bd00643db14c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14a79ed6b5ebd7e1dda7c2684f499cc7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> { <br/>
+&#160;&#160;<a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c">GRPC_COMPRESS_LEVEL_NONE</a> = 0, 
+<a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673">GRPC_COMPRESS_LEVEL_LOW</a>, 
+<a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce">GRPC_COMPRESS_LEVEL_MED</a>, 
+<a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22">GRPC_COMPRESS_LEVEL_HIGH</a>, 
+<br/>
+&#160;&#160;<a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43">GRPC_COMPRESS_LEVEL_COUNT</a>
+<br/>
+ }</td></tr>
+<tr class="separator:a14a79ed6b5ebd7e1dda7c2684f499cc7"><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:a996f65ae42d05dd7ef9da9c6d6586397"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html#a996f65ae42d05dd7ef9da9c6d6586397">grpc_compression_algorithm_parse</a> (const char *name, <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> *algorithm)</td></tr>
+<tr class="memdesc:a996f65ae42d05dd7ef9da9c6d6586397"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parses <em>name</em> as a grpc_compression_algorithm instance, updating <em>algorithm</em>.  <a href="#a996f65ae42d05dd7ef9da9c6d6586397">More...</a><br/></td></tr>
+<tr class="separator:a996f65ae42d05dd7ef9da9c6d6586397"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adce0341ab8fd560dc39e9e96daf7cb14"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html#adce0341ab8fd560dc39e9e96daf7cb14">grpc_compression_algorithm_name</a> (<a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm, char **name)</td></tr>
+<tr class="memdesc:adce0341ab8fd560dc39e9e96daf7cb14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Updates <em>name</em> with the encoding name corresponding to a valid <em>algorithm</em>.  <a href="#adce0341ab8fd560dc39e9e96daf7cb14">More...</a><br/></td></tr>
+<tr class="separator:adce0341ab8fd560dc39e9e96daf7cb14"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace80040d9c2a916ddd4d2f2d2ec44dba"><td class="memItemLeft" align="right" valign="top"><a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html#ace80040d9c2a916ddd4d2f2d2ec44dba">grpc_compression_level_for_algorithm</a> (<a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm)</td></tr>
+<tr class="memdesc:ace80040d9c2a916ddd4d2f2d2ec44dba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the compression level corresponding to <em>algorithm</em>.  <a href="#ace80040d9c2a916ddd4d2f2d2ec44dba">More...</a><br/></td></tr>
+<tr class="separator:ace80040d9c2a916ddd4d2f2d2ec44dba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a382cce802b53a6f85deb706caf1dccd6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html#a382cce802b53a6f85deb706caf1dccd6">grpc_compression_algorithm_for_level</a> (<a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> level)</td></tr>
+<tr class="memdesc:a382cce802b53a6f85deb706caf1dccd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the compression algorithm corresponding to <em>level</em>.  <a href="#a382cce802b53a6f85deb706caf1dccd6">More...</a><br/></td></tr>
+<tr class="separator:a382cce802b53a6f85deb706caf1dccd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a9340488e193921e62bb1f240f9016a9b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_COMPRESSION_ALGORITHM_ARG&#160;&#160;&#160;&quot;grpc.compression_algorithm&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>To be used in channel arguments. </p>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ab9de0f68bfb1ef8ed09bd00643db14c9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</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="ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8"></a>GRPC_COMPRESS_NONE</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913"></a>GRPC_COMPRESS_DEFLATE</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e"></a>GRPC_COMPRESS_GZIP</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d"></a>GRPC_COMPRESS_ALGORITHMS_COUNT</em>&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="a14a79ed6b5ebd7e1dda7c2684f499cc7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</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="a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c"></a>GRPC_COMPRESS_LEVEL_NONE</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673"></a>GRPC_COMPRESS_LEVEL_LOW</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce"></a>GRPC_COMPRESS_LEVEL_MED</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22"></a>GRPC_COMPRESS_LEVEL_HIGH</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43"></a>GRPC_COMPRESS_LEVEL_COUNT</em>&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a382cce802b53a6f85deb706caf1dccd6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> grpc_compression_algorithm_for_level </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a>&#160;</td>
+          <td class="paramname"><em>level</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the compression algorithm corresponding to <em>level</em>. </p>
+<p>It abort()s for unknown levels . </p>
+
+</div>
+</div>
+<a class="anchor" id="adce0341ab8fd560dc39e9e96daf7cb14"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int grpc_compression_algorithm_name </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td>
+          <td class="paramname"><em>algorithm</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Updates <em>name</em> with the encoding name corresponding to a valid <em>algorithm</em>. </p>
+<p>Returns 1 upon success, 0 otherwise. </p>
+
+</div>
+</div>
+<a class="anchor" id="a996f65ae42d05dd7ef9da9c6d6586397"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int grpc_compression_algorithm_parse </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> *&#160;</td>
+          <td class="paramname"><em>algorithm</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Parses <em>name</em> as a grpc_compression_algorithm instance, updating <em>algorithm</em>. </p>
+<p>Returns 1 upon success, 0 otherwise. </p>
+
+</div>
+</div>
+<a class="anchor" id="ace80040d9c2a916ddd4d2f2d2ec44dba"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> grpc_compression_level_for_algorithm </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>&#160;</td>
+          <td class="paramname"><em>algorithm</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the compression level corresponding to <em>algorithm</em>. </p>
+<p>It abort()s for unknown algorithms. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 190 - 0
core/compression_8h_source.html

@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/compression.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">compression.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="compression_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_COMPRESSION_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_COMPRESSION_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="compression_8h.html#a9340488e193921e62bb1f240f9016a9b">   42</a></span>&#160;<span class="preprocessor">#define GRPC_COMPRESSION_ALGORITHM_ARG &quot;grpc.compression_algorithm&quot;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">/* The various compression algorithms supported by GRPC */</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">   45</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8">   46</a></span>&#160;  <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8">GRPC_COMPRESS_NONE</a> = 0,</div>
+<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913">   47</a></span>&#160;  <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913">GRPC_COMPRESS_DEFLATE</a>,</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e">   48</a></span>&#160;  <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e">GRPC_COMPRESS_GZIP</a>,</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;  <span class="comment">/* TODO(ctiller): snappy */</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d">   50</a></span>&#160;  <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d">GRPC_COMPRESS_ALGORITHMS_COUNT</a></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;} <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">   53</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c">   54</a></span>&#160;  <a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c">GRPC_COMPRESS_LEVEL_NONE</a> = 0,</div>
+<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673">   55</a></span>&#160;  <a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673">GRPC_COMPRESS_LEVEL_LOW</a>,</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce">   56</a></span>&#160;  <a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce">GRPC_COMPRESS_LEVEL_MED</a>,</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22">   57</a></span>&#160;  <a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22">GRPC_COMPRESS_LEVEL_HIGH</a>,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43">   58</a></span>&#160;  <a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43">GRPC_COMPRESS_LEVEL_COUNT</a></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;} <a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">int</span> <a class="code" href="compression_8h.html#a996f65ae42d05dd7ef9da9c6d6586397">grpc_compression_algorithm_parse</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                                     <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> *algorithm);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="keywordtype">int</span> <a class="code" href="compression_8h.html#adce0341ab8fd560dc39e9e96daf7cb14">grpc_compression_algorithm_name</a>(<a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                                    <span class="keywordtype">char</span> **name);</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> <a class="code" href="compression_8h.html#ace80040d9c2a916ddd4d2f2d2ec44dba">grpc_compression_level_for_algorithm</a>(</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<a class="code" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="code" href="compression_8h.html#a382cce802b53a6f85deb706caf1dccd6">grpc_compression_algorithm_for_level</a>(</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <a class="code" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> level);</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_COMPRESSION_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="compression_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d"><div class="ttname"><a href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d">GRPC_COMPRESS_ALGORITHMS_COUNT</a></div><div class="ttdef"><b>Definition:</b> compression.h:50</div></div>
+<div class="ttc" id="compression_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9"><div class="ttname"><a href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a></div><div class="ttdeci">grpc_compression_algorithm</div><div class="ttdef"><b>Definition:</b> compression.h:45</div></div>
+<div class="ttc" id="compression_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e"><div class="ttname"><a href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e">GRPC_COMPRESS_GZIP</a></div><div class="ttdef"><b>Definition:</b> compression.h:48</div></div>
+<div class="ttc" id="compression_8h_html_a996f65ae42d05dd7ef9da9c6d6586397"><div class="ttname"><a href="compression_8h.html#a996f65ae42d05dd7ef9da9c6d6586397">grpc_compression_algorithm_parse</a></div><div class="ttdeci">int grpc_compression_algorithm_parse(const char *name, grpc_compression_algorithm *algorithm)</div><div class="ttdoc">Parses name as a grpc_compression_algorithm instance, updating algorithm. </div></div>
+<div class="ttc" id="compression_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913"><div class="ttname"><a href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913">GRPC_COMPRESS_DEFLATE</a></div><div class="ttdef"><b>Definition:</b> compression.h:47</div></div>
+<div class="ttc" id="compression_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c"><div class="ttname"><a href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c">GRPC_COMPRESS_LEVEL_NONE</a></div><div class="ttdef"><b>Definition:</b> compression.h:54</div></div>
+<div class="ttc" id="compression_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673"><div class="ttname"><a href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673">GRPC_COMPRESS_LEVEL_LOW</a></div><div class="ttdef"><b>Definition:</b> compression.h:55</div></div>
+<div class="ttc" id="compression_8h_html_ace80040d9c2a916ddd4d2f2d2ec44dba"><div class="ttname"><a href="compression_8h.html#ace80040d9c2a916ddd4d2f2d2ec44dba">grpc_compression_level_for_algorithm</a></div><div class="ttdeci">grpc_compression_level grpc_compression_level_for_algorithm(grpc_compression_algorithm algorithm)</div><div class="ttdoc">Returns the compression level corresponding to algorithm. </div></div>
+<div class="ttc" id="compression_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7"><div class="ttname"><a href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a></div><div class="ttdeci">grpc_compression_level</div><div class="ttdef"><b>Definition:</b> compression.h:53</div></div>
+<div class="ttc" id="compression_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8"><div class="ttname"><a href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8">GRPC_COMPRESS_NONE</a></div><div class="ttdef"><b>Definition:</b> compression.h:46</div></div>
+<div class="ttc" id="compression_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce"><div class="ttname"><a href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce">GRPC_COMPRESS_LEVEL_MED</a></div><div class="ttdef"><b>Definition:</b> compression.h:56</div></div>
+<div class="ttc" id="compression_8h_html_adce0341ab8fd560dc39e9e96daf7cb14"><div class="ttname"><a href="compression_8h.html#adce0341ab8fd560dc39e9e96daf7cb14">grpc_compression_algorithm_name</a></div><div class="ttdeci">int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm, char **name)</div><div class="ttdoc">Updates name with the encoding name corresponding to a valid algorithm. </div></div>
+<div class="ttc" id="compression_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43"><div class="ttname"><a href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43">GRPC_COMPRESS_LEVEL_COUNT</a></div><div class="ttdef"><b>Definition:</b> compression.h:58</div></div>
+<div class="ttc" id="compression_8h_html_a382cce802b53a6f85deb706caf1dccd6"><div class="ttname"><a href="compression_8h.html#a382cce802b53a6f85deb706caf1dccd6">grpc_compression_algorithm_for_level</a></div><div class="ttdeci">grpc_compression_algorithm grpc_compression_algorithm_for_level(grpc_compression_level level)</div><div class="ttdoc">Returns the compression algorithm corresponding to level. </div></div>
+<div class="ttc" id="compression_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22"><div class="ttname"><a href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22">GRPC_COMPRESS_LEVEL_HIGH</a></div><div class="ttdef"><b>Definition:</b> compression.h:57</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 144 - 0
core/cpu_8h.html

@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/cpu.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">cpu.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="cpu_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="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:abfe660c6872b008de80de5b39ac2538d"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cpu_8h.html#abfe660c6872b008de80de5b39ac2538d">gpr_cpu_num_cores</a> (void)</td></tr>
+<tr class="separator:abfe660c6872b008de80de5b39ac2538d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad713326192eea685047b742f1da87c1d"><td class="memItemLeft" align="right" valign="top">unsigned&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cpu_8h.html#ad713326192eea685047b742f1da87c1d">gpr_cpu_current_cpu</a> (void)</td></tr>
+<tr class="separator:ad713326192eea685047b742f1da87c1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad713326192eea685047b742f1da87c1d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned gpr_cpu_current_cpu </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abfe660c6872b008de80de5b39ac2538d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned gpr_cpu_num_cores </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></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:05 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>

+ 158 - 0
core/cpu_8h_source.html

@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/cpu.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">cpu.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="cpu_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_CPU_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_CPU_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">/* Interface providing CPU information for currently running system */</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">/* Return the number of CPU cores on the current system. Will return 0 if</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">   the information is not available. */</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keywordtype">unsigned</span> <a class="code" href="cpu_8h.html#abfe660c6872b008de80de5b39ac2538d">gpr_cpu_num_cores</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">/* Return the CPU on which the current thread is executing; N.B. This should</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">   be considered advisory only - it is possible that the thread is switched</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">   to a different CPU at any time. Returns a value in range</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">   [0, gpr_cpu_num_cores() - 1] */</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keywordtype">unsigned</span> <a class="code" href="cpu_8h.html#ad713326192eea685047b742f1da87c1d">gpr_cpu_current_cpu</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor"></span>}  <span class="comment">// extern &quot;C&quot;</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_CPU_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="cpu_8h_html_abfe660c6872b008de80de5b39ac2538d"><div class="ttname"><a href="cpu_8h.html#abfe660c6872b008de80de5b39ac2538d">gpr_cpu_num_cores</a></div><div class="ttdeci">unsigned gpr_cpu_num_cores(void)</div></div>
+<div class="ttc" id="cpu_8h_html_ad713326192eea685047b742f1da87c1d"><div class="ttname"><a href="cpu_8h.html#ad713326192eea685047b742f1da87c1d">gpr_cpu_current_cpu</a></div><div class="ttdeci">unsigned gpr_cpu_current_cpu(void)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 116 - 0
core/dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html

@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc Directory 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><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>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">grpc Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_cad3142e04109052413f2d2a2d1813b0"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</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="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:byte__buffer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer_8h.html">byte_buffer.h</a> <a href="byte__buffer_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:byte__buffer__reader_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="byte__buffer__reader_8h.html">byte_buffer_reader.h</a> <a href="byte__buffer__reader_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:census_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html">census.h</a> <a href="census_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:compression_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html">compression.h</a> <a href="compression_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:grpc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html">grpc.h</a> <a href="grpc_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:grpc__security_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html">grpc_security.h</a> <a href="grpc__security_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:status_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="status_8h.html">status.h</a> <a href="status_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 153 - 0
core/dir_cad3142e04109052413f2d2a2d1813b0.html

@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support Directory 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><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>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">support Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:alloc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="alloc_8h.html">alloc.h</a> <a href="alloc_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:atm_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm_8h.html">atm.h</a> <a href="atm_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:atm__gcc__atomic_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__atomic_8h.html">atm_gcc_atomic.h</a> <a href="atm__gcc__atomic_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:atm__gcc__sync_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__gcc__sync_8h.html">atm_gcc_sync.h</a> <a href="atm__gcc__sync_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:atm__win32_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="atm__win32_8h.html">atm_win32.h</a> <a href="atm__win32_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:cancellable__platform_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cancellable__platform_8h.html">cancellable_platform.h</a> <a href="cancellable__platform_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:cmdline_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmdline_8h.html">cmdline.h</a> <a href="cmdline_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:cpu_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cpu_8h.html">cpu.h</a> <a href="cpu_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:histogram_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html">histogram.h</a> <a href="histogram_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:host__port_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="host__port_8h.html">host_port.h</a> <a href="host__port_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:log_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html">log.h</a> <a href="log_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:log__win32_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log__win32_8h.html">log_win32.h</a> <a href="log__win32_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:port__platform_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html">port_platform.h</a> <a href="port__platform_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:slice_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice_8h.html">slice.h</a> <a href="slice_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:slice__buffer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html">slice_buffer.h</a> <a href="slice__buffer_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:string__util_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string__util_8h.html">string_util.h</a> <a href="string__util_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:subprocess_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="subprocess_8h.html">subprocess.h</a> <a href="subprocess_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:sync_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sync_8h.html">sync.h</a> <a href="sync_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:sync__generic_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sync__generic_8h.html">sync_generic.h</a> <a href="sync__generic_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:sync__posix_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sync__posix_8h.html">sync_posix.h</a> <a href="sync__posix_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:sync__win32_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="sync__win32_8h.html">sync_win32.h</a> <a href="sync__win32_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:thd_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="thd_8h.html">thd.h</a> <a href="thd_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:time_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="time_8h.html">time.h</a> <a href="time_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:tls_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tls_8h.html">tls.h</a> <a href="tls_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:tls__gcc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tls__gcc_8h.html">tls_gcc.h</a> <a href="tls__gcc_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:tls__msvc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tls__msvc_8h.html">tls_msvc.h</a> <a href="tls__msvc_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:tls__pthread_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="tls__pthread_8h.html">tls_pthread.h</a> <a href="tls__pthread_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:useful_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="useful_8h.html">useful.h</a> <a href="useful_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 99 - 0
core/dir_d44c64559bbebec7f509842c48db8b23.html

@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include Directory 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><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>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">include Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_9d7a14d6d9adcbe4c35dbdb88d867e2e"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 1366 - 0
core/doxygen.css

@@ -0,0 +1,1366 @@
+/* The standard CSS for doxygen 1.8.6 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+div.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: bold;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        -moz-border-radius-topleft: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+        -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 20px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+

二进制
core/doxygen.png


+ 97 - 0
core/dynsections.js

@@ -0,0 +1,97 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ } 
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function(){ 
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.attr('src','ftv2folderopen.png');
+      a.attr('src','ftv2mnode.png');
+      $(this).show();
+    } else if (l==level+1) {
+      i.attr('src','ftv2folderclosed.png');
+      a.attr('src','ftv2pnode.png');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  //The clicked row
+  var currentRow = $('#row_'+id);
+  var currentRowImages = currentRow.find("img");
+
+  //All rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  //Only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() {
+    var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+    return this.id.match(re);
+  });
+
+  //First row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
+    currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
+    rows.filter("[id^=row_"+id+"]").hide();
+  } else { //We are SHOWING
+    //All sub images
+    var childImages = childRows.find("img");
+    var childImg = childImages.filter("[id^=img]");
+    var childArr = childImages.filter("[id^=arr]");
+
+    currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
+    currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
+    childImg.attr('src','ftv2folderclosed.png'); //children closed
+    childArr.attr('src','ftv2pnode.png'); //children closed
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+

+ 137 - 0
core/files.html

@@ -0,0 +1,137 @@
+<!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: File List</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 class="current"><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_')"/><img id="img_0_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_')"/><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html" target="_self">include</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_0_" src="ftv2mlastnode.png" alt="\" width="16" height="22" onclick="toggleFolder('0_0_')"/><img id="img_0_0_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_0_')"/><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html" target="_self">grpc</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img id="arr_0_0_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_0_0_')"/><img id="img_0_0_0_" src="ftv2folderopen.png" alt="-" width="24" height="22" onclick="toggleFolder('0_0_0_')"/><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html" target="_self">support</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_0_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="alloc_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="alloc_8h.html" target="_self">alloc.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_1_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="atm_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="atm_8h.html" target="_self">atm.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_2_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="atm__gcc__atomic_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="atm__gcc__atomic_8h.html" target="_self">atm_gcc_atomic.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_3_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="atm__gcc__sync_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="atm__gcc__sync_8h.html" target="_self">atm_gcc_sync.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_4_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="atm__win32_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="atm__win32_8h.html" target="_self">atm_win32.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_5_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="cancellable__platform_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="cancellable__platform_8h.html" target="_self">cancellable_platform.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_6_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="cmdline_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="cmdline_8h.html" target="_self">cmdline.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_7_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="cpu_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="cpu_8h.html" target="_self">cpu.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_8_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="histogram_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="histogram_8h.html" target="_self">histogram.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_9_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="host__port_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="host__port_8h.html" target="_self">host_port.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_10_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="log_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="log_8h.html" target="_self">log.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_11_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="log__win32_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="log__win32_8h.html" target="_self">log_win32.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_12_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="port__platform_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="port__platform_8h.html" target="_self">port_platform.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_13_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="slice_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="slice_8h.html" target="_self">slice.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_14_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="slice__buffer_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="slice__buffer_8h.html" target="_self">slice_buffer.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_15_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="string__util_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="string__util_8h.html" target="_self">string_util.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_16_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="subprocess_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="subprocess_8h.html" target="_self">subprocess.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_17_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="sync_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="sync_8h.html" target="_self">sync.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_18_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="sync__generic_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="sync__generic_8h.html" target="_self">sync_generic.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_19_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="sync__posix_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="sync__posix_8h.html" target="_self">sync_posix.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_20_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="sync__win32_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="sync__win32_8h.html" target="_self">sync_win32.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_21_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="thd_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="thd_8h.html" target="_self">thd.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_22_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="time_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="time_8h.html" target="_self">time.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_23_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="tls_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="tls_8h.html" target="_self">tls.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_24_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="tls__gcc_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="tls__gcc_8h.html" target="_self">tls_gcc.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_25_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="tls__msvc_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="tls__msvc_8h.html" target="_self">tls_msvc.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_26_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="tls__pthread_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="tls__pthread_8h.html" target="_self">tls_pthread.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_0_27_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="useful_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="useful_8h.html" target="_self">useful.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_1_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="byte__buffer_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="byte__buffer_8h.html" target="_self">byte_buffer.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_2_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="byte__buffer__reader_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="byte__buffer__reader_8h.html" target="_self">byte_buffer_reader.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_3_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="census_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="census_8h.html" target="_self">census.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_4_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="compression_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="compression_8h.html" target="_self">compression.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_5_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="grpc_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="grpc_8h.html" target="_self">grpc.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_6_" class="even"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a href="grpc__security_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="grpc__security_8h.html" target="_self">grpc_security.h</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_7_"><td class="entry"><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2blank.png" alt="&#160;" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a href="status_8h_source.html"><img src="ftv2doc.png" alt="*" width="24" height="22" /></a><a class="el" href="status_8h.html" target="_self">status.h</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

二进制
core/ftv2blank.png


二进制
core/ftv2cl.png


二进制
core/ftv2doc.png


二进制
core/ftv2folderclosed.png


二进制
core/ftv2folderopen.png


二进制
core/ftv2lastnode.png


二进制
core/ftv2link.png


二进制
core/ftv2mlastnode.png


二进制
core/ftv2mnode.png


二进制
core/ftv2mo.png


二进制
core/ftv2node.png


二进制
core/ftv2ns.png


二进制
core/ftv2plastnode.png


二进制
core/ftv2pnode.png


二进制
core/ftv2splitbar.png


二进制
core/ftv2vertline.png


+ 447 - 0
core/functions.html

@@ -0,0 +1,447 @@
+<!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: Data Fields</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 class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="functions.html"><span>All</span></a></li>
+      <li><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_m"><span>m</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+      <li class="current"><a href="#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>args
+: <a class="el" href="structgrpc__channel__args.html#a05aa7aeb14aa9ae5f4d6a34f5c222b76">grpc_channel_args</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>buffer_in
+: <a class="el" href="structgrpc__byte__buffer__reader.html#a8856d955b045dab1a425fac372e0be22">grpc_byte_buffer_reader</a>
+</li>
+<li>buffer_out
+: <a class="el" href="structgrpc__byte__buffer__reader.html#aa947e8d51e0b4333e2b68f0ac55f4e47">grpc_byte_buffer_reader</a>
+</li>
+<li>bytes
+: <a class="el" href="structgpr__slice.html#a16646e1a137851f2b031cf2c431b2864">gpr_slice</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cancelled
+: <a class="el" href="structgpr__cancellable.html#a1729b5836bf4181d092f3636368d17b2">gpr_cancellable</a>
+, <a class="el" href="structgrpc__op.html#ae5a9717d4a69c46f343381596e223874">grpc_op</a>
+</li>
+<li>capacity
+: <a class="el" href="structgpr__slice__buffer.html#a48b6efc57238e7abd0bcbb579219456e">gpr_slice_buffer</a>
+, <a class="el" href="structgrpc__metadata__array.html#a5b293b4f8e734b032b80741abf538a97">grpc_metadata_array</a>
+</li>
+<li>cert_chain
+: <a class="el" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">grpc_ssl_pem_key_cert_pair</a>
+</li>
+<li>clock_type
+: <a class="el" href="structgpr__timespec.html#a6dd26976820fa71a7c5a710d4c1845ff">gpr_timespec</a>
+</li>
+<li>compression
+: <a class="el" href="structgrpc__byte__buffer.html#a3663648016e1076b82c5e731dc5b2399">grpc_byte_buffer</a>
+</li>
+<li>copy
+: <a class="el" href="structgrpc__arg.html#abef4f8be0109b19fcbe7f614f1243303">grpc_arg</a>
+</li>
+<li>count
+: <a class="el" href="structgpr__refcount.html#ae1e2d58344b59ff6c0db0dc4f2953470">gpr_refcount</a>
+, <a class="el" href="structgpr__slice__buffer.html#a3adc77c3ef399ae0aa1ce1377e0e9fff">gpr_slice_buffer</a>
+, <a class="el" href="structgrpc__metadata__array.html#a314ce51b22a5934cc672f3736d44b9e4">grpc_metadata_array</a>
+, <a class="el" href="structgrpc__op.html#ac5983d0a5d60c26ca2d1b37d31ba2e2a">grpc_op</a>
+</li>
+<li>cs
+: <a class="el" href="structgpr__mu.html#abab5a72a693be27488fb7a9b2cb23e5c">gpr_mu</a>
+</li>
+<li>ctx
+: <a class="el" href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58">grpc_auth_property_iterator</a>
+</li>
+<li>current
+: <a class="el" href="structgrpc__byte__buffer__reader.html#aaa53ee469c319cbdd72d44548d1f981f">grpc_byte_buffer_reader</a>
+</li>
+<li>cv
+: <a class="el" href="structgpr__cancellable__list__.html#ae47b7ccae73001ae1539dfe3bcc8a459">gpr_cancellable_list_</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structgpr__slice.html#ad2cc3f68d4be2fc4d359722060ba4b29">gpr_slice</a>
+, <a class="el" href="structgrpc__byte__buffer.html#a9bee8905a97b4972f9ec1d18e5fe513f">grpc_byte_buffer</a>
+, <a class="el" href="structgrpc__op.html#a39a29ba59e6482692adfcdef46ec66ad">grpc_op</a>
+</li>
+<li>deadline
+: <a class="el" href="structgrpc__call__details.html#a6b72caadcf800d975987de18012f0f15">grpc_call_details</a>
+</li>
+<li>destroy
+: <a class="el" href="structgrpc__arg.html#a15c9a748974a6ac525074f3ed1e04eb4">grpc_arg</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>file
+: <a class="el" href="structgpr__log__func__args.html#a7961b2303b10d4f66d1aee6b5857ef89">gpr_log_func_args</a>
+</li>
+<li>flags
+: <a class="el" href="structgpr__thd__options.html#aaa966777aca6604109eb4cd6cae7984c">gpr_thd_options</a>
+, <a class="el" href="structgrpc__op.html#a9e6087665c90f146e5570f12c66d04fb">grpc_op</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>host
+: <a class="el" href="structgrpc__call__details.html#a869b5db96e2e0fbd573381e77b859631">grpc_call_details</a>
+</li>
+<li>host_capacity
+: <a class="el" href="structgrpc__call__details.html#aeab0d9e754bbb1aac1a21ad4ef63d8b1">grpc_call_details</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>id
+: <a class="el" href="structcensus__stat.html#a1151cb5a250db9b70ba8fc13453abcf3">census_stat</a>
+</li>
+<li>index
+: <a class="el" href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6">grpc_auth_property_iterator</a>
+, <a class="el" href="structgrpc__byte__buffer__reader.html#a948b75a404899c348fc6a52e1a6e63cb">grpc_byte_buffer_reader</a>
+</li>
+<li>inlined
+: <a class="el" href="structgpr__slice.html#acb2a3c15512987fda16bb9e243e432f6">gpr_slice</a>
+, <a class="el" href="structgpr__slice__buffer.html#adb678a23dc27e50c478bc48d365420e2">gpr_slice_buffer</a>
+</li>
+<li>integer
+: <a class="el" href="structgrpc__arg.html#a6871bfca9c52e7f56abbd71c81d97554">grpc_arg</a>
+</li>
+<li>internal_data
+: <a class="el" href="structgrpc__metadata.html#a342799d4f78fcc6dd29ee44f56a6d553">grpc_metadata</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>key
+: <a class="el" href="structgpr__pthread__thread__local.html#a006cbb5f30eb7c7c53a99a19f242fece">gpr_pthread_thread_local</a>
+, <a class="el" href="structgrpc__arg.html#aeb230fbd50daacfe654abc3500a44968">grpc_arg</a>
+, <a class="el" href="structgrpc__metadata.html#abe93a3d24cd534d9387e05ad1f0b36f7">grpc_metadata</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>length
+: <a class="el" href="structgpr__slice.html#a8867b2d660a87061534be9c8098d4fa5">gpr_slice</a>
+, <a class="el" href="structgpr__slice__buffer.html#a2150637602d9080cdb111d09c1d669c3">gpr_slice_buffer</a>
+</li>
+<li>line
+: <a class="el" href="structgpr__log__func__args.html#ae1a051bbc7e0ef6c58de0db3efda24bb">gpr_log_func_args</a>
+</li>
+<li>locked
+: <a class="el" href="structgpr__mu.html#ac16a7b74cd7175a34b776215fd357342">gpr_mu</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>message
+: <a class="el" href="structgpr__log__func__args.html#ad9ce882bef15e3127620a8ef47f2b74b">gpr_log_func_args</a>
+</li>
+<li>metadata
+: <a class="el" href="structgrpc__metadata__array.html#ac930a0cc901913fafcd09ca9cca156fe">grpc_metadata_array</a>
+, <a class="el" href="structgrpc__op.html#a2e0f0c709658960593d5a36915c8d079">grpc_op</a>
+</li>
+<li>method
+: <a class="el" href="structgrpc__call__details.html#a97c8019d8fa7cbe2014d97c91f9ed0a5">grpc_call_details</a>
+</li>
+<li>method_capacity
+: <a class="el" href="structgrpc__call__details.html#a8a7da868f60a88f42918cc9bdd4d26c0">grpc_call_details</a>
+</li>
+<li>mu
+: <a class="el" href="structgpr__cancellable.html#a423e728b92c8890d63490cf4b1fdc30f">gpr_cancellable</a>
+, <a class="el" href="structgpr__cancellable__list__.html#abf62ecf7376ec1e9f708e2671e494282">gpr_cancellable_list_</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>name
+: <a class="el" href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27">grpc_auth_property</a>
+, <a class="el" href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7">grpc_auth_property_iterator</a>
+</li>
+<li>next
+: <a class="el" href="structgpr__cancellable__list__.html#a425195e5ab594a2cfdcc976e5167242a">gpr_cancellable_list_</a>
+</li>
+<li>num_args
+: <a class="el" href="structgrpc__channel__args.html#a41e5d0b22449f062b3a7798dd528afde">grpc_channel_args</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>obfuscated
+: <a class="el" href="structgrpc__metadata.html#ae7478a66f65862018cd89768a578ff4f">grpc_metadata</a>
+</li>
+<li>op
+: <a class="el" href="structgrpc__op.html#a702bcecc2462646b6740ed7c05f42115">grpc_op</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>p
+: <a class="el" href="structgrpc__arg.html#aab5d11432a11b03a53e5d959d9a5328d">grpc_arg</a>
+</li>
+<li>pointer
+: <a class="el" href="structgrpc__arg.html#a85b5bbfbdec09ae46cff15628096137a">grpc_arg</a>
+</li>
+<li>prev
+: <a class="el" href="structgpr__cancellable__list__.html#a58fba7e59ac49bbb9468c2669e21b8b4">gpr_cancellable_list_</a>
+</li>
+<li>private_key
+: <a class="el" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">grpc_ssl_pem_key_cert_pair</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>raw
+: <a class="el" href="structgrpc__byte__buffer.html#ae8231d6e62b3d7f4cfbc6a564c84bae6">grpc_byte_buffer</a>
+</li>
+<li>recv_close_on_server
+: <a class="el" href="structgrpc__op.html#af327bcd87b609572c39ca6bfe8dbd9f1">grpc_op</a>
+</li>
+<li>recv_initial_metadata
+: <a class="el" href="structgrpc__op.html#a81ebfcab8db61dd485b88cafc51f2749">grpc_op</a>
+</li>
+<li>recv_message
+: <a class="el" href="structgrpc__op.html#afca6c4cc5b0c2629bb559d2037907ac1">grpc_op</a>
+</li>
+<li>recv_status_on_client
+: <a class="el" href="structgrpc__op.html#a42f88554cd082ce8c66560ea24d8a8e3">grpc_op</a>
+</li>
+<li>ref
+: <a class="el" href="structgpr__slice__refcount.html#abf3fba35fdc6a4cd2d47e5ca19107ed7">gpr_slice_refcount</a>
+</li>
+<li>refcount
+: <a class="el" href="structgpr__slice.html#a04d0bcc8331409fa3b3af29ee0b86a24">gpr_slice</a>
+</li>
+<li>refcounted
+: <a class="el" href="structgpr__slice.html#a444e942bd541117b82ca32a6d2b79d67">gpr_slice</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>send_initial_metadata
+: <a class="el" href="structgrpc__op.html#a8e6202e19130ecb872de211a95dcee83">grpc_op</a>
+</li>
+<li>send_message
+: <a class="el" href="structgrpc__op.html#a3b6c1b3456306a802f6eb0e3e8d0e434">grpc_op</a>
+</li>
+<li>send_status_from_server
+: <a class="el" href="structgrpc__op.html#afe7b3ae8f4c495a187f155a5fd6956bb">grpc_op</a>
+</li>
+<li>severity
+: <a class="el" href="structgpr__log__func__args.html#af0b4b9d8beace1cae0d1a24783d70ccc">gpr_log_func_args</a>
+</li>
+<li>slice_buffer
+: <a class="el" href="structgrpc__byte__buffer.html#ae93126777b4832bc327b7e10104f0eae">grpc_byte_buffer</a>
+</li>
+<li>slices
+: <a class="el" href="structgpr__slice__buffer.html#a07c0e3196f5e197af878ee94fd5df3ba">gpr_slice_buffer</a>
+</li>
+<li>state
+: <a class="el" href="structgpr__event.html#a9eb43867719fcdf48f33df11cd138be9">gpr_event</a>
+</li>
+<li>status
+: <a class="el" href="structgrpc__op.html#ae0d5a9db463391c0897914ef2d016b25">grpc_op</a>
+</li>
+<li>status_details
+: <a class="el" href="structgrpc__op.html#ae460836040d79eb2bd0a6d581b36c461">grpc_op</a>
+</li>
+<li>status_details_capacity
+: <a class="el" href="structgrpc__op.html#a6cacd1d5311683ee077931c94a9dd6e9">grpc_op</a>
+</li>
+<li>string
+: <a class="el" href="structgrpc__arg.html#a05bc3701718db73608ef3598480e8fa8">grpc_arg</a>
+</li>
+<li>success
+: <a class="el" href="structgrpc__event.html#a99d4215e5df50869af320b1cca5540db">grpc_event</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>tag
+: <a class="el" href="structgrpc__event.html#a883ab15e862db582116c72cdcdc4c201">grpc_event</a>
+</li>
+<li>trailing_metadata
+: <a class="el" href="structgrpc__op.html#a521b48faec3b3f7646a877055f118d47">grpc_op</a>
+</li>
+<li>trailing_metadata_count
+: <a class="el" href="structgrpc__op.html#a4b9454278c105e08d54142adff37b5ab">grpc_op</a>
+</li>
+<li>tv_nsec
+: <a class="el" href="structgpr__timespec.html#ac326c2133cd003cb206715cf5f500268">gpr_timespec</a>
+</li>
+<li>tv_sec
+: <a class="el" href="structgpr__timespec.html#af9294cf0049fd33c76ad2da925d9051e">gpr_timespec</a>
+</li>
+<li>type
+: <a class="el" href="structgrpc__arg.html#aa26f2d3c4b1649c9eb061d24a8c10fd4">grpc_arg</a>
+, <a class="el" href="structgrpc__byte__buffer.html#aa7357d67e401d5bc9d10d8fed008dec8">grpc_byte_buffer</a>
+, <a class="el" href="structgrpc__event.html#a8e7f571b759f55db4f6bebc2a4f56ad7">grpc_event</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>unref
+: <a class="el" href="structgpr__slice__refcount.html#ae31a3f84f0032dd388418eee26aa9c00">gpr_slice_refcount</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structcensus__stat.html#a3daa951eaf025870b0ab4b63343fe179">census_stat</a>
+, <a class="el" href="structgpr__gcc__thread__local.html#a057ec2885013c01ce37fffc6d9afece1">gpr_gcc_thread_local</a>
+, <a class="el" href="structgpr__msvc__thread__local.html#a0187c953da78c5a0620d75aaaaaa5798">gpr_msvc_thread_local</a>
+, <a class="el" href="structgpr__stats__counter.html#ab9338ff7b5fd9f0c0830a8a788aab04a">gpr_stats_counter</a>
+, <a class="el" href="structgrpc__arg.html#ad2be4ee606c82fc084af1661d30f6f7f">grpc_arg</a>
+, <a class="el" href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e">grpc_auth_property</a>
+, <a class="el" href="structgrpc__metadata.html#a57b63d7b7a3e4720a0cc0d20bb2ecf36">grpc_metadata</a>
+</li>
+<li>value_length
+: <a class="el" href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101">grpc_auth_property</a>
+, <a class="el" href="structgrpc__metadata.html#a2084add9ffe64cf337576114d189af3f">grpc_metadata</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>waiters
+: <a class="el" href="structgpr__cancellable.html#a99dfebf899cae60307fb8b83e8cfdb43">gpr_cancellable</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 447 - 0
core/functions_vars.html

@@ -0,0 +1,447 @@
+<!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: Data Fields - Variables</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 class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="functions.html"><span>All</span></a></li>
+      <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_a"><span>a</span></a></li>
+      <li><a href="#index_b"><span>b</span></a></li>
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li><a href="#index_d"><span>d</span></a></li>
+      <li><a href="#index_f"><span>f</span></a></li>
+      <li><a href="#index_h"><span>h</span></a></li>
+      <li><a href="#index_i"><span>i</span></a></li>
+      <li><a href="#index_k"><span>k</span></a></li>
+      <li><a href="#index_l"><span>l</span></a></li>
+      <li><a href="#index_m"><span>m</span></a></li>
+      <li><a href="#index_n"><span>n</span></a></li>
+      <li><a href="#index_o"><span>o</span></a></li>
+      <li><a href="#index_p"><span>p</span></a></li>
+      <li><a href="#index_r"><span>r</span></a></li>
+      <li><a href="#index_s"><span>s</span></a></li>
+      <li><a href="#index_t"><span>t</span></a></li>
+      <li><a href="#index_u"><span>u</span></a></li>
+      <li><a href="#index_v"><span>v</span></a></li>
+      <li class="current"><a href="#index_w"><span>w</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
+<li>args
+: <a class="el" href="structgrpc__channel__args.html#a05aa7aeb14aa9ae5f4d6a34f5c222b76">grpc_channel_args</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
+<li>buffer_in
+: <a class="el" href="structgrpc__byte__buffer__reader.html#a8856d955b045dab1a425fac372e0be22">grpc_byte_buffer_reader</a>
+</li>
+<li>buffer_out
+: <a class="el" href="structgrpc__byte__buffer__reader.html#aa947e8d51e0b4333e2b68f0ac55f4e47">grpc_byte_buffer_reader</a>
+</li>
+<li>bytes
+: <a class="el" href="structgpr__slice.html#a16646e1a137851f2b031cf2c431b2864">gpr_slice</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>cancelled
+: <a class="el" href="structgpr__cancellable.html#a1729b5836bf4181d092f3636368d17b2">gpr_cancellable</a>
+, <a class="el" href="structgrpc__op.html#ae5a9717d4a69c46f343381596e223874">grpc_op</a>
+</li>
+<li>capacity
+: <a class="el" href="structgpr__slice__buffer.html#a48b6efc57238e7abd0bcbb579219456e">gpr_slice_buffer</a>
+, <a class="el" href="structgrpc__metadata__array.html#a5b293b4f8e734b032b80741abf538a97">grpc_metadata_array</a>
+</li>
+<li>cert_chain
+: <a class="el" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">grpc_ssl_pem_key_cert_pair</a>
+</li>
+<li>clock_type
+: <a class="el" href="structgpr__timespec.html#a6dd26976820fa71a7c5a710d4c1845ff">gpr_timespec</a>
+</li>
+<li>compression
+: <a class="el" href="structgrpc__byte__buffer.html#a3663648016e1076b82c5e731dc5b2399">grpc_byte_buffer</a>
+</li>
+<li>copy
+: <a class="el" href="structgrpc__arg.html#abef4f8be0109b19fcbe7f614f1243303">grpc_arg</a>
+</li>
+<li>count
+: <a class="el" href="structgpr__refcount.html#ae1e2d58344b59ff6c0db0dc4f2953470">gpr_refcount</a>
+, <a class="el" href="structgpr__slice__buffer.html#a3adc77c3ef399ae0aa1ce1377e0e9fff">gpr_slice_buffer</a>
+, <a class="el" href="structgrpc__metadata__array.html#a314ce51b22a5934cc672f3736d44b9e4">grpc_metadata_array</a>
+, <a class="el" href="structgrpc__op.html#ac5983d0a5d60c26ca2d1b37d31ba2e2a">grpc_op</a>
+</li>
+<li>cs
+: <a class="el" href="structgpr__mu.html#abab5a72a693be27488fb7a9b2cb23e5c">gpr_mu</a>
+</li>
+<li>ctx
+: <a class="el" href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58">grpc_auth_property_iterator</a>
+</li>
+<li>current
+: <a class="el" href="structgrpc__byte__buffer__reader.html#aaa53ee469c319cbdd72d44548d1f981f">grpc_byte_buffer_reader</a>
+</li>
+<li>cv
+: <a class="el" href="structgpr__cancellable__list__.html#ae47b7ccae73001ae1539dfe3bcc8a459">gpr_cancellable_list_</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structgpr__slice.html#ad2cc3f68d4be2fc4d359722060ba4b29">gpr_slice</a>
+, <a class="el" href="structgrpc__byte__buffer.html#a9bee8905a97b4972f9ec1d18e5fe513f">grpc_byte_buffer</a>
+, <a class="el" href="structgrpc__op.html#a39a29ba59e6482692adfcdef46ec66ad">grpc_op</a>
+</li>
+<li>deadline
+: <a class="el" href="structgrpc__call__details.html#a6b72caadcf800d975987de18012f0f15">grpc_call_details</a>
+</li>
+<li>destroy
+: <a class="el" href="structgrpc__arg.html#a15c9a748974a6ac525074f3ed1e04eb4">grpc_arg</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
+<li>file
+: <a class="el" href="structgpr__log__func__args.html#a7961b2303b10d4f66d1aee6b5857ef89">gpr_log_func_args</a>
+</li>
+<li>flags
+: <a class="el" href="structgpr__thd__options.html#aaa966777aca6604109eb4cd6cae7984c">gpr_thd_options</a>
+, <a class="el" href="structgrpc__op.html#a9e6087665c90f146e5570f12c66d04fb">grpc_op</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
+<li>host
+: <a class="el" href="structgrpc__call__details.html#a869b5db96e2e0fbd573381e77b859631">grpc_call_details</a>
+</li>
+<li>host_capacity
+: <a class="el" href="structgrpc__call__details.html#aeab0d9e754bbb1aac1a21ad4ef63d8b1">grpc_call_details</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
+<li>id
+: <a class="el" href="structcensus__stat.html#a1151cb5a250db9b70ba8fc13453abcf3">census_stat</a>
+</li>
+<li>index
+: <a class="el" href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6">grpc_auth_property_iterator</a>
+, <a class="el" href="structgrpc__byte__buffer__reader.html#a948b75a404899c348fc6a52e1a6e63cb">grpc_byte_buffer_reader</a>
+</li>
+<li>inlined
+: <a class="el" href="structgpr__slice.html#acb2a3c15512987fda16bb9e243e432f6">gpr_slice</a>
+, <a class="el" href="structgpr__slice__buffer.html#adb678a23dc27e50c478bc48d365420e2">gpr_slice_buffer</a>
+</li>
+<li>integer
+: <a class="el" href="structgrpc__arg.html#a6871bfca9c52e7f56abbd71c81d97554">grpc_arg</a>
+</li>
+<li>internal_data
+: <a class="el" href="structgrpc__metadata.html#a342799d4f78fcc6dd29ee44f56a6d553">grpc_metadata</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
+<li>key
+: <a class="el" href="structgpr__pthread__thread__local.html#a006cbb5f30eb7c7c53a99a19f242fece">gpr_pthread_thread_local</a>
+, <a class="el" href="structgrpc__arg.html#aeb230fbd50daacfe654abc3500a44968">grpc_arg</a>
+, <a class="el" href="structgrpc__metadata.html#abe93a3d24cd534d9387e05ad1f0b36f7">grpc_metadata</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
+<li>length
+: <a class="el" href="structgpr__slice.html#a8867b2d660a87061534be9c8098d4fa5">gpr_slice</a>
+, <a class="el" href="structgpr__slice__buffer.html#a2150637602d9080cdb111d09c1d669c3">gpr_slice_buffer</a>
+</li>
+<li>line
+: <a class="el" href="structgpr__log__func__args.html#ae1a051bbc7e0ef6c58de0db3efda24bb">gpr_log_func_args</a>
+</li>
+<li>locked
+: <a class="el" href="structgpr__mu.html#ac16a7b74cd7175a34b776215fd357342">gpr_mu</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
+<li>message
+: <a class="el" href="structgpr__log__func__args.html#ad9ce882bef15e3127620a8ef47f2b74b">gpr_log_func_args</a>
+</li>
+<li>metadata
+: <a class="el" href="structgrpc__metadata__array.html#ac930a0cc901913fafcd09ca9cca156fe">grpc_metadata_array</a>
+, <a class="el" href="structgrpc__op.html#a2e0f0c709658960593d5a36915c8d079">grpc_op</a>
+</li>
+<li>method
+: <a class="el" href="structgrpc__call__details.html#a97c8019d8fa7cbe2014d97c91f9ed0a5">grpc_call_details</a>
+</li>
+<li>method_capacity
+: <a class="el" href="structgrpc__call__details.html#a8a7da868f60a88f42918cc9bdd4d26c0">grpc_call_details</a>
+</li>
+<li>mu
+: <a class="el" href="structgpr__cancellable.html#a423e728b92c8890d63490cf4b1fdc30f">gpr_cancellable</a>
+, <a class="el" href="structgpr__cancellable__list__.html#abf62ecf7376ec1e9f708e2671e494282">gpr_cancellable_list_</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
+<li>name
+: <a class="el" href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27">grpc_auth_property</a>
+, <a class="el" href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7">grpc_auth_property_iterator</a>
+</li>
+<li>next
+: <a class="el" href="structgpr__cancellable__list__.html#a425195e5ab594a2cfdcc976e5167242a">gpr_cancellable_list_</a>
+</li>
+<li>num_args
+: <a class="el" href="structgrpc__channel__args.html#a41e5d0b22449f062b3a7798dd528afde">grpc_channel_args</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>obfuscated
+: <a class="el" href="structgrpc__metadata.html#ae7478a66f65862018cd89768a578ff4f">grpc_metadata</a>
+</li>
+<li>op
+: <a class="el" href="structgrpc__op.html#a702bcecc2462646b6740ed7c05f42115">grpc_op</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
+<li>p
+: <a class="el" href="structgrpc__arg.html#aab5d11432a11b03a53e5d959d9a5328d">grpc_arg</a>
+</li>
+<li>pointer
+: <a class="el" href="structgrpc__arg.html#a85b5bbfbdec09ae46cff15628096137a">grpc_arg</a>
+</li>
+<li>prev
+: <a class="el" href="structgpr__cancellable__list__.html#a58fba7e59ac49bbb9468c2669e21b8b4">gpr_cancellable_list_</a>
+</li>
+<li>private_key
+: <a class="el" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">grpc_ssl_pem_key_cert_pair</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
+<li>raw
+: <a class="el" href="structgrpc__byte__buffer.html#ae8231d6e62b3d7f4cfbc6a564c84bae6">grpc_byte_buffer</a>
+</li>
+<li>recv_close_on_server
+: <a class="el" href="structgrpc__op.html#af327bcd87b609572c39ca6bfe8dbd9f1">grpc_op</a>
+</li>
+<li>recv_initial_metadata
+: <a class="el" href="structgrpc__op.html#a81ebfcab8db61dd485b88cafc51f2749">grpc_op</a>
+</li>
+<li>recv_message
+: <a class="el" href="structgrpc__op.html#afca6c4cc5b0c2629bb559d2037907ac1">grpc_op</a>
+</li>
+<li>recv_status_on_client
+: <a class="el" href="structgrpc__op.html#a42f88554cd082ce8c66560ea24d8a8e3">grpc_op</a>
+</li>
+<li>ref
+: <a class="el" href="structgpr__slice__refcount.html#abf3fba35fdc6a4cd2d47e5ca19107ed7">gpr_slice_refcount</a>
+</li>
+<li>refcount
+: <a class="el" href="structgpr__slice.html#a04d0bcc8331409fa3b3af29ee0b86a24">gpr_slice</a>
+</li>
+<li>refcounted
+: <a class="el" href="structgpr__slice.html#a444e942bd541117b82ca32a6d2b79d67">gpr_slice</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>send_initial_metadata
+: <a class="el" href="structgrpc__op.html#a8e6202e19130ecb872de211a95dcee83">grpc_op</a>
+</li>
+<li>send_message
+: <a class="el" href="structgrpc__op.html#a3b6c1b3456306a802f6eb0e3e8d0e434">grpc_op</a>
+</li>
+<li>send_status_from_server
+: <a class="el" href="structgrpc__op.html#afe7b3ae8f4c495a187f155a5fd6956bb">grpc_op</a>
+</li>
+<li>severity
+: <a class="el" href="structgpr__log__func__args.html#af0b4b9d8beace1cae0d1a24783d70ccc">gpr_log_func_args</a>
+</li>
+<li>slice_buffer
+: <a class="el" href="structgrpc__byte__buffer.html#ae93126777b4832bc327b7e10104f0eae">grpc_byte_buffer</a>
+</li>
+<li>slices
+: <a class="el" href="structgpr__slice__buffer.html#a07c0e3196f5e197af878ee94fd5df3ba">gpr_slice_buffer</a>
+</li>
+<li>state
+: <a class="el" href="structgpr__event.html#a9eb43867719fcdf48f33df11cd138be9">gpr_event</a>
+</li>
+<li>status
+: <a class="el" href="structgrpc__op.html#ae0d5a9db463391c0897914ef2d016b25">grpc_op</a>
+</li>
+<li>status_details
+: <a class="el" href="structgrpc__op.html#ae460836040d79eb2bd0a6d581b36c461">grpc_op</a>
+</li>
+<li>status_details_capacity
+: <a class="el" href="structgrpc__op.html#a6cacd1d5311683ee077931c94a9dd6e9">grpc_op</a>
+</li>
+<li>string
+: <a class="el" href="structgrpc__arg.html#a05bc3701718db73608ef3598480e8fa8">grpc_arg</a>
+</li>
+<li>success
+: <a class="el" href="structgrpc__event.html#a99d4215e5df50869af320b1cca5540db">grpc_event</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
+<li>tag
+: <a class="el" href="structgrpc__event.html#a883ab15e862db582116c72cdcdc4c201">grpc_event</a>
+</li>
+<li>trailing_metadata
+: <a class="el" href="structgrpc__op.html#a521b48faec3b3f7646a877055f118d47">grpc_op</a>
+</li>
+<li>trailing_metadata_count
+: <a class="el" href="structgrpc__op.html#a4b9454278c105e08d54142adff37b5ab">grpc_op</a>
+</li>
+<li>tv_nsec
+: <a class="el" href="structgpr__timespec.html#ac326c2133cd003cb206715cf5f500268">gpr_timespec</a>
+</li>
+<li>tv_sec
+: <a class="el" href="structgpr__timespec.html#af9294cf0049fd33c76ad2da925d9051e">gpr_timespec</a>
+</li>
+<li>type
+: <a class="el" href="structgrpc__arg.html#aa26f2d3c4b1649c9eb061d24a8c10fd4">grpc_arg</a>
+, <a class="el" href="structgrpc__byte__buffer.html#aa7357d67e401d5bc9d10d8fed008dec8">grpc_byte_buffer</a>
+, <a class="el" href="structgrpc__event.html#a8e7f571b759f55db4f6bebc2a4f56ad7">grpc_event</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
+<li>unref
+: <a class="el" href="structgpr__slice__refcount.html#ae31a3f84f0032dd388418eee26aa9c00">gpr_slice_refcount</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structcensus__stat.html#a3daa951eaf025870b0ab4b63343fe179">census_stat</a>
+, <a class="el" href="structgpr__gcc__thread__local.html#a057ec2885013c01ce37fffc6d9afece1">gpr_gcc_thread_local</a>
+, <a class="el" href="structgpr__msvc__thread__local.html#a0187c953da78c5a0620d75aaaaaa5798">gpr_msvc_thread_local</a>
+, <a class="el" href="structgpr__stats__counter.html#ab9338ff7b5fd9f0c0830a8a788aab04a">gpr_stats_counter</a>
+, <a class="el" href="structgrpc__arg.html#ad2be4ee606c82fc084af1661d30f6f7f">grpc_arg</a>
+, <a class="el" href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e">grpc_auth_property</a>
+, <a class="el" href="structgrpc__metadata.html#a57b63d7b7a3e4720a0cc0d20bb2ecf36">grpc_metadata</a>
+</li>
+<li>value_length
+: <a class="el" href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101">grpc_auth_property</a>
+, <a class="el" href="structgrpc__metadata.html#a2084add9ffe64cf337576114d189af3f">grpc_metadata</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_w"></a>- w -</h3><ul>
+<li>waiters
+: <a class="el" href="structgpr__cancellable.html#a99dfebf899cae60307fb8b83e8cfdb43">gpr_cancellable</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 157 - 0
core/globals.html

@@ -0,0 +1,157 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_g.html#index_g"><span>g</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>census_context
+: <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census.h</a>
+</li>
+<li>census_context_deserialize()
+: <a class="el" href="census_8h.html#ad9daab242b41571299ac5b3bca71fc0d">census.h</a>
+</li>
+<li>census_context_destroy()
+: <a class="el" href="census_8h.html#a5bfcd1edc546eeacf111c3316ae7785d">census.h</a>
+</li>
+<li>census_context_serialize()
+: <a class="el" href="census_8h.html#ad9a7d3170ecf720e1b22a4f255605748">census.h</a>
+</li>
+<li>census_enabled()
+: <a class="el" href="census_8h.html#a742616973e78aaf969389cea20feea9f">census.h</a>
+</li>
+<li>CENSUS_FEATURE_ALL
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">census.h</a>
+</li>
+<li>CENSUS_FEATURE_CPU
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">census.h</a>
+</li>
+<li>CENSUS_FEATURE_NONE
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">census.h</a>
+</li>
+<li>CENSUS_FEATURE_STATS
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">census.h</a>
+</li>
+<li>CENSUS_FEATURE_TRACING
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">census.h</a>
+</li>
+<li>census_features
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census.h</a>
+</li>
+<li>census_initialize()
+: <a class="el" href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6">census.h</a>
+</li>
+<li>census_record_stat()
+: <a class="el" href="census_8h.html#a0cdd5ba86b080e6b5a4b47cfaa5b51cb">census.h</a>
+</li>
+<li>census_shutdown()
+: <a class="el" href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census.h</a>
+</li>
+<li>census_supported()
+: <a class="el" href="census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9">census.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 344 - 0
core/globals_defs.html

@@ -0,0 +1,344 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li class="current"><a href="#index_g"><span>g</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GPR_ARRAY_SIZE
+: <a class="el" href="useful_8h.html#a0e411d4f81a169c97c319d4e84df5747">useful.h</a>
+</li>
+<li>GPR_ASSERT
+: <a class="el" href="log_8h.html#a6ccf52ff690655cc22cd9d053650876f">log.h</a>
+</li>
+<li>gpr_atm_acq_cas
+: <a class="el" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_acq_load
+: <a class="el" href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">atm_gcc_atomic.h</a>
+</li>
+<li>GPR_ATM_COMPILE_BARRIER_
+: <a class="el" href="atm__gcc__sync_8h.html#a5a1f94112dcd03309d6716d43c8edf3f">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_full_barrier
+: <a class="el" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">atm_win32.h</a>
+, <a class="el" href="atm__gcc__atomic_8h.html#a95f86e51ae9a479026bd237cb792193e">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#a95f86e51ae9a479026bd237cb792193e">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_full_fetch_add
+: <a class="el" href="atm__gcc__atomic_8h.html#abada8771b338845e4c6ef93c8392582c">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">atm_gcc_sync.h</a>
+</li>
+<li>GPR_ATM_LS_BARRIER_
+: <a class="el" href="atm__gcc__sync_8h.html#a4ceb46c9b854db0ade8cfe2f37edb878">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_no_barrier_cas
+: <a class="el" href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_no_barrier_fetch_add
+: <a class="el" href="atm__gcc__atomic_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_no_barrier_load
+: <a class="el" href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">atm_gcc_atomic.h</a>
+</li>
+<li>gpr_atm_no_barrier_store
+: <a class="el" href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">atm_gcc_atomic.h</a>
+</li>
+<li>gpr_atm_rel_cas
+: <a class="el" href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_rel_store
+: <a class="el" href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">atm_gcc_atomic.h</a>
+</li>
+<li>GPR_BITCLEAR
+: <a class="el" href="useful_8h.html#af797bf1803f9809b3ccceaa619078c89">useful.h</a>
+</li>
+<li>GPR_BITCOUNT
+: <a class="el" href="useful_8h.html#a8f51444fe97eb3f83184b98035e3357f">useful.h</a>
+</li>
+<li>GPR_BITGET
+: <a class="el" href="useful_8h.html#a7c54bb2fffdaae24ba38ca5e5c53ab41">useful.h</a>
+</li>
+<li>GPR_BITSET
+: <a class="el" href="useful_8h.html#a28de4ed955bfc2bff309061b7820a37a">useful.h</a>
+</li>
+<li>GPR_CACHELINE_SIZE
+: <a class="el" href="port__platform_8h.html#ad9b7cc620233bbab0bc57cfbbe9519ad">port_platform.h</a>
+</li>
+<li>GPR_CACHELINE_SIZE_LOG
+: <a class="el" href="port__platform_8h.html#a4e8b19add0d8d0be9464f748be985576">port_platform.h</a>
+</li>
+<li>GPR_CLAMP
+: <a class="el" href="useful_8h.html#ac974b8c13ee716193e0ee30d9513672c">useful.h</a>
+</li>
+<li>GPR_DEBUG
+: <a class="el" href="log_8h.html#a3e793245091f13bb7318a18b1166a773">log.h</a>
+</li>
+<li>GPR_ERROR
+: <a class="el" href="log_8h.html#a63faedb3eefd93d1c0e79974be80cc36">log.h</a>
+</li>
+<li>GPR_EVENT_INIT
+: <a class="el" href="sync__generic_8h.html#a6f38fe7692eaa6663c1f79ff5847c050">sync_generic.h</a>
+</li>
+<li>GPR_INFO
+: <a class="el" href="log_8h.html#af0d0d75690f79edc9294498c88f96703">log.h</a>
+</li>
+<li>GPR_INT64_MAX
+: <a class="el" href="port__platform_8h.html#aaff7a6a2f0868f8b0648b74828ef0e4f">port_platform.h</a>
+</li>
+<li>GPR_INTERNAL_HEXDIGIT_BITCOUNT
+: <a class="el" href="useful_8h.html#a601e1be692fe7922b52991a5d410b945">useful.h</a>
+</li>
+<li>GPR_MAX
+: <a class="el" href="useful_8h.html#af50c518bb1183da84adb7d8a86cd568a">useful.h</a>
+</li>
+<li>GPR_MAX_ALIGNMENT
+: <a class="el" href="port__platform_8h.html#a53c934fa255faf3f8c4f028df105c8e2">port_platform.h</a>
+</li>
+<li>GPR_MIN
+: <a class="el" href="useful_8h.html#a298322c952526928cf8dbc7aaba7b84d">useful.h</a>
+</li>
+<li>GPR_MS_PER_SEC
+: <a class="el" href="time_8h.html#af2c8091db4e2a3133b93131f64db859e">time.h</a>
+</li>
+<li>GPR_NS_PER_MS
+: <a class="el" href="time_8h.html#a3c63ee76f91a122abf3a0806b64318eb">time.h</a>
+</li>
+<li>GPR_NS_PER_SEC
+: <a class="el" href="time_8h.html#a447d0913b0cfdc943df51585f0e2785e">time.h</a>
+</li>
+<li>GPR_NS_PER_US
+: <a class="el" href="time_8h.html#adc295bf07c72edae8a2ad49e24da2f32">time.h</a>
+</li>
+<li>GPR_ONCE_INIT
+: <a class="el" href="sync__posix_8h.html#a8edd7eb4f6860a4f79defbad49c35666">sync_posix.h</a>
+, <a class="el" href="sync__win32_8h.html#a8edd7eb4f6860a4f79defbad49c35666">sync_win32.h</a>
+</li>
+<li>GPR_PLATFORM_STRING
+: <a class="el" href="port__platform_8h.html#a99f34e9b119908109486e91abedc933e">port_platform.h</a>
+</li>
+<li>GPR_ROTL
+: <a class="el" href="useful_8h.html#a6f7a8aba8e044f6b20fc8a7560f28f85">useful.h</a>
+</li>
+<li>GPR_ROTR
+: <a class="el" href="useful_8h.html#a5ff4b278972e799dc134963a0249f316">useful.h</a>
+</li>
+<li>GPR_SLICE_END_PTR
+: <a class="el" href="slice_8h.html#a9b7e9acd0eb92039a9bc897712a62a14">slice.h</a>
+</li>
+<li>GPR_SLICE_INLINED_SIZE
+: <a class="el" href="slice_8h.html#a4063c3d8d4820472a4cf2655dd662a31">slice.h</a>
+</li>
+<li>GPR_SLICE_IS_EMPTY
+: <a class="el" href="slice_8h.html#ad4fe3efa7a8938045ce79271d79f79ef">slice.h</a>
+</li>
+<li>GPR_SLICE_LENGTH
+: <a class="el" href="slice_8h.html#ae97c2f992c1ebccaf44ceeee1f9fdabb">slice.h</a>
+</li>
+<li>GPR_SLICE_SET_LENGTH
+: <a class="el" href="slice_8h.html#a1f5333a1260aef2efe086d4e2188e613">slice.h</a>
+</li>
+<li>GPR_SLICE_START_PTR
+: <a class="el" href="slice_8h.html#ab8258afc3398c1426974b0b48dbf5a15">slice.h</a>
+</li>
+<li>GPR_STATS_INIT
+: <a class="el" href="sync__generic_8h.html#ada230498c8e2aca51e9349709e70e1ef">sync_generic.h</a>
+</li>
+<li>GPR_SWAP
+: <a class="el" href="useful_8h.html#a9f884f8218a97ed9739e2dac467f0719">useful.h</a>
+</li>
+<li>GPR_TLS_DECL
+: <a class="el" href="tls__gcc_8h.html#ab2c3baa4e4ceb366668aaf51379340fd">tls_gcc.h</a>
+, <a class="el" href="tls__msvc_8h.html#ab2c3baa4e4ceb366668aaf51379340fd">tls_msvc.h</a>
+, <a class="el" href="tls__pthread_8h.html#ab2c3baa4e4ceb366668aaf51379340fd">tls_pthread.h</a>
+</li>
+<li>gpr_tls_destroy
+: <a class="el" href="tls__gcc_8h.html#a187108e1078d2ce05388cb17bc59ce74">tls_gcc.h</a>
+, <a class="el" href="tls__msvc_8h.html#a187108e1078d2ce05388cb17bc59ce74">tls_msvc.h</a>
+, <a class="el" href="tls__pthread_8h.html#a187108e1078d2ce05388cb17bc59ce74">tls_pthread.h</a>
+</li>
+<li>gpr_tls_get
+: <a class="el" href="tls__msvc_8h.html#a9aa9e55eddbe7fed424526c23e1b55a3">tls_msvc.h</a>
+, <a class="el" href="tls__gcc_8h.html#a9aa9e55eddbe7fed424526c23e1b55a3">tls_gcc.h</a>
+, <a class="el" href="tls__pthread_8h.html#a9aa9e55eddbe7fed424526c23e1b55a3">tls_pthread.h</a>
+</li>
+<li>gpr_tls_init
+: <a class="el" href="tls__msvc_8h.html#a43768a42ff705cc028b4a483dc3b65c5">tls_msvc.h</a>
+, <a class="el" href="tls__pthread_8h.html#a43768a42ff705cc028b4a483dc3b65c5">tls_pthread.h</a>
+, <a class="el" href="tls__gcc_8h.html#a43768a42ff705cc028b4a483dc3b65c5">tls_gcc.h</a>
+</li>
+<li>gpr_tls_set
+: <a class="el" href="tls__gcc_8h.html#aa8f01b3e40178b80d098650f42c529e7">tls_gcc.h</a>
+, <a class="el" href="tls__msvc_8h.html#aa8f01b3e40178b80d098650f42c529e7">tls_msvc.h</a>
+</li>
+<li>GPR_US_PER_MS
+: <a class="el" href="time_8h.html#a33dba9a222266cf2270c9b09c1f64336">time.h</a>
+</li>
+<li>GPR_US_PER_SEC
+: <a class="el" href="time_8h.html#a48433e202646afa00d9694585b05b9e3">time.h</a>
+</li>
+<li>GRPC_ARG_DEFAULT_AUTHORITY
+: <a class="el" href="grpc_8h.html#add42f97666fbfc66b7dac253ac3b73ae">grpc.h</a>
+</li>
+<li>GRPC_ARG_ENABLE_CENSUS
+: <a class="el" href="grpc_8h.html#ae498934a02de89ce29cec570b02a2037">grpc.h</a>
+</li>
+<li>GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
+: <a class="el" href="grpc_8h.html#aecc45a63163796ca1bc5453938bdfb36">grpc.h</a>
+</li>
+<li>GRPC_ARG_MAX_CONCURRENT_STREAMS
+: <a class="el" href="grpc_8h.html#a5bb9256d0b457cab219f4d9d765148b6">grpc.h</a>
+</li>
+<li>GRPC_ARG_MAX_MESSAGE_LENGTH
+: <a class="el" href="grpc_8h.html#a50f37feb7c000a23b3b0edf4c31d4367">grpc.h</a>
+</li>
+<li>GRPC_ARG_PRIMARY_USER_AGENT_STRING
+: <a class="el" href="grpc_8h.html#a0732df2d9003e9ee1c01e50e41b5a8e2">grpc.h</a>
+</li>
+<li>GRPC_ARG_SECONDARY_USER_AGENT_STRING
+: <a class="el" href="grpc_8h.html#af47b4048c11e4f8f4162f12c135c2da4">grpc.h</a>
+</li>
+<li>GRPC_COMPRESSION_ALGORITHM_ARG
+: <a class="el" href="compression_8h.html#a9340488e193921e62bb1f240f9016a9b">compression.h</a>
+</li>
+<li>GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR
+: <a class="el" href="grpc__security_8h.html#a48565da473b7c82fa2453798f620fd59">grpc_security.h</a>
+</li>
+<li>GRPC_GOOGLE_CREDENTIALS_ENV_VAR
+: <a class="el" href="grpc__security_8h.html#a3874f70577fc9fe15fd2c4ce68a36ecd">grpc_security.h</a>
+</li>
+<li>GRPC_MUST_USE_RESULT
+: <a class="el" href="port__platform_8h.html#aef49047a3be38448a61332117b306686">port_platform.h</a>
+</li>
+<li>GRPC_SLICE_BUFFER_INLINE_ELEMENTS
+: <a class="el" href="slice__buffer_8h.html#a81db47a2be0a079aa797cd77f3864809">slice_buffer.h</a>
+</li>
+<li>GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
+: <a class="el" href="grpc__security_8h.html#a218bf55b665134a11baf07ada5980825">grpc_security.h</a>
+</li>
+<li>GRPC_SSL_TRANSPORT_SECURITY_TYPE
+: <a class="el" href="grpc__security_8h.html#a35a35c597b7090b8ac7e2d854c9bcc7a">grpc_security.h</a>
+</li>
+<li>GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME
+: <a class="el" href="grpc__security_8h.html#aff82fdff9e7c40c4dd4bdc650e38e25a">grpc_security.h</a>
+</li>
+<li>GRPC_WRITE_BUFFER_HINT
+: <a class="el" href="grpc_8h.html#adf29fd8b7df2ecc47d14a7f5a3a079c0">grpc.h</a>
+</li>
+<li>GRPC_WRITE_NO_COMPRESS
+: <a class="el" href="grpc_8h.html#ae09000181671f031ed0e319ed557da4e">grpc.h</a>
+</li>
+<li>GRPC_WRITE_USED_MASK
+: <a class="el" href="grpc_8h.html#a3317259e1098b2b6f49982d6997bbf6a">grpc.h</a>
+</li>
+<li>GRPC_X509_CN_PROPERTY_NAME
+: <a class="el" href="grpc__security_8h.html#afee5e0fade6e0af1954529f1f08afe0c">grpc_security.h</a>
+</li>
+<li>GRPC_X509_SAN_PROPERTY_NAME
+: <a class="el" href="grpc__security_8h.html#a1412421653b7999544296f56025a0f36">grpc_security.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 140 - 0
core/globals_enum.html

@@ -0,0 +1,140 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;<ul>
+<li>census_features
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8">census.h</a>
+</li>
+<li>gpr_clock_type
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281">time.h</a>
+</li>
+<li>gpr_log_severity
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">log.h</a>
+</li>
+<li>grpc_arg_type
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">grpc.h</a>
+</li>
+<li>grpc_byte_buffer_type
+: <a class="el" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">byte_buffer.h</a>
+</li>
+<li>grpc_call_error
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc.h</a>
+</li>
+<li>grpc_completion_type
+: <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc.h</a>
+</li>
+<li>grpc_compression_algorithm
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">compression.h</a>
+</li>
+<li>grpc_compression_level
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">compression.h</a>
+</li>
+<li>grpc_connectivity_state
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc.h</a>
+</li>
+<li>grpc_op_type
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">grpc.h</a>
+</li>
+<li>grpc_status_code
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">status.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 326 - 0
core/globals_eval.html

@@ -0,0 +1,326 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li class="current"><a href="#index_g"><span>g</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>CENSUS_FEATURE_ALL
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c">census.h</a>
+</li>
+<li>CENSUS_FEATURE_CPU
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5">census.h</a>
+</li>
+<li>CENSUS_FEATURE_NONE
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab">census.h</a>
+</li>
+<li>CENSUS_FEATURE_STATS
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a">census.h</a>
+</li>
+<li>CENSUS_FEATURE_TRACING
+: <a class="el" href="census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718">census.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GPR_CLOCK_MONOTONIC
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281a6ddd11813c5172c7b3e0e46e5ce7f01c">time.h</a>
+</li>
+<li>GPR_CLOCK_REALTIME
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281a685c67eccb0b9e3de6311b1e1330a746">time.h</a>
+</li>
+<li>GPR_LOG_SEVERITY_DEBUG
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">log.h</a>
+</li>
+<li>GPR_LOG_SEVERITY_ERROR
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">log.h</a>
+</li>
+<li>GPR_LOG_SEVERITY_INFO
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">log.h</a>
+</li>
+<li>GPR_TIMESPAN
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281a52f75e587240b7b44d3b8bc7fb3d5741">time.h</a>
+</li>
+<li>GRPC_ARG_INTEGER
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689">grpc.h</a>
+</li>
+<li>GRPC_ARG_POINTER
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b">grpc.h</a>
+</li>
+<li>GRPC_ARG_STRING
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d">grpc.h</a>
+</li>
+<li>GRPC_BB_RAW
+: <a class="el" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">byte_buffer.h</a>
+</li>
+<li>GRPC_CALL_ERROR
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_ALREADY_ACCEPTED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_ALREADY_FINISHED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_ALREADY_INVOKED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_INVALID_FLAGS
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_INVALID_METADATA
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_INVOKED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_ON_CLIENT
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_ON_SERVER
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454">grpc.h</a>
+</li>
+<li>GRPC_CALL_OK
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_CONNECTING
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_FATAL_FAILURE
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_IDLE
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_READY
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_TRANSIENT_FAILURE
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6">grpc.h</a>
+</li>
+<li>GRPC_COMPRESS_ALGORITHMS_COUNT
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_DEFLATE
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_GZIP
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_COUNT
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_HIGH
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_LOW
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_MED
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_NONE
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_NONE
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8">compression.h</a>
+</li>
+<li>GRPC_OP_COMPLETE
+: <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_CLOSE_ON_SERVER
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_INITIAL_METADATA
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_MESSAGE
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_STATUS_ON_CLIENT
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_CLOSE_FROM_CLIENT
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_INITIAL_METADATA
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_MESSAGE
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_STATUS_FROM_SERVER
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64">grpc.h</a>
+</li>
+<li>GRPC_QUEUE_SHUTDOWN
+: <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5">grpc.h</a>
+</li>
+<li>GRPC_QUEUE_TIMEOUT
+: <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6">grpc.h</a>
+</li>
+<li>GRPC_STATUS__DO_NOT_USE
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebab924d4c4c646bdb3130162b8e359dd96">status.h</a>
+</li>
+<li>GRPC_STATUS_ABORTED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba3570bc43d5eb08c95a7f4c24c13010d9">status.h</a>
+</li>
+<li>GRPC_STATUS_ALREADY_EXISTS
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebad357565db8655b6635fae96a11c4009b">status.h</a>
+</li>
+<li>GRPC_STATUS_CANCELLED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba30e6e0c37df1389dd4c460a53f831038">status.h</a>
+</li>
+<li>GRPC_STATUS_DATA_LOSS
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba275db05856f4af884c48e86440414db7">status.h</a>
+</li>
+<li>GRPC_STATUS_DEADLINE_EXCEEDED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba5451711361db6b8d8e80be30cbb1a208">status.h</a>
+</li>
+<li>GRPC_STATUS_FAILED_PRECONDITION
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba503abd183544b43a83bc01d999adda5f">status.h</a>
+</li>
+<li>GRPC_STATUS_INTERNAL
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebae648dab84c58ef5b1cfeea35867c4520">status.h</a>
+</li>
+<li>GRPC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba3dd64296110db7e7fafb1062b5587731">status.h</a>
+</li>
+<li>GRPC_STATUS_NOT_FOUND
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebafdf14cb6f2da868d76b209ac490c14e2">status.h</a>
+</li>
+<li>GRPC_STATUS_OK
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba9da5601150b267ab5509d151fa7df201">status.h</a>
+</li>
+<li>GRPC_STATUS_OUT_OF_RANGE
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebacd0d05ab2f0af48b0f535c3dd0816d9b">status.h</a>
+</li>
+<li>GRPC_STATUS_PERMISSION_DENIED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba4149925007957bf1a04184d88e8293f4">status.h</a>
+</li>
+<li>GRPC_STATUS_RESOURCE_EXHAUSTED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebab1a76cb91e6992f6f7a31a7fe862e0e9">status.h</a>
+</li>
+<li>GRPC_STATUS_UNAUTHENTICATED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba1a6fd47361ad9298879dd8760ca1a0cb">status.h</a>
+</li>
+<li>GRPC_STATUS_UNAVAILABLE
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebaad91b67998cb5df7bc6821e362189e79">status.h</a>
+</li>
+<li>GRPC_STATUS_UNIMPLEMENTED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba6912537b4dfd1030f50ff2f5448f1bc2">status.h</a>
+</li>
+<li>GRPC_STATUS_UNKNOWN
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba5f02c0e431162618ab422d27fd39dd08">status.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 136 - 0
core/globals_func.html

@@ -0,0 +1,136 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li class="current"><a href="globals_func.html#index_c"><span>c</span></a></li>
+      <li><a href="globals_func_g.html#index_g"><span>g</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>census_context_deserialize()
+: <a class="el" href="census_8h.html#ad9daab242b41571299ac5b3bca71fc0d">census.h</a>
+</li>
+<li>census_context_destroy()
+: <a class="el" href="census_8h.html#a5bfcd1edc546eeacf111c3316ae7785d">census.h</a>
+</li>
+<li>census_context_serialize()
+: <a class="el" href="census_8h.html#ad9a7d3170ecf720e1b22a4f255605748">census.h</a>
+</li>
+<li>census_enabled()
+: <a class="el" href="census_8h.html#a742616973e78aaf969389cea20feea9f">census.h</a>
+</li>
+<li>census_initialize()
+: <a class="el" href="census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6">census.h</a>
+</li>
+<li>census_record_stat()
+: <a class="el" href="census_8h.html#a0cdd5ba86b080e6b5a4b47cfaa5b51cb">census.h</a>
+</li>
+<li>census_shutdown()
+: <a class="el" href="census_8h.html#aa792b067548ecdd987d560b492c83d85">census.h</a>
+</li>
+<li>census_supported()
+: <a class="el" href="census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9">census.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 715 - 0
core/globals_func_g.html

@@ -0,0 +1,715 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals_func.html#index_c"><span>c</span></a></li>
+      <li class="current"><a href="globals_func_g.html#index_g"><span>g</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>gpr_asprintf()
+: <a class="el" href="string__util_8h.html#a0e5cc621bf7ca14112c72aa7a0ca73d0">string_util.h</a>
+</li>
+<li>gpr_cancellable_cancel()
+: <a class="el" href="sync_8h.html#a895fb73161d2dd1fa19be10d5395001c">sync.h</a>
+</li>
+<li>gpr_cancellable_destroy()
+: <a class="el" href="sync_8h.html#aa82b7172b992bd33bd6fd4b4dc89e338">sync.h</a>
+</li>
+<li>gpr_cancellable_init()
+: <a class="el" href="sync_8h.html#aec0b0e9b9f084550cdec300da1f31add">sync.h</a>
+</li>
+<li>gpr_cancellable_is_cancelled()
+: <a class="el" href="sync_8h.html#a1e53047443e5eb1f9895be0c90bc790b">sync.h</a>
+</li>
+<li>gpr_cmdline_add_flag()
+: <a class="el" href="cmdline_8h.html#ac5ecfdfc605896c29df846b1e268045e">cmdline.h</a>
+</li>
+<li>gpr_cmdline_add_int()
+: <a class="el" href="cmdline_8h.html#a0fc8cd330751e9876e8635189a1bc10f">cmdline.h</a>
+</li>
+<li>gpr_cmdline_add_string()
+: <a class="el" href="cmdline_8h.html#a34568676c089f3284dc8f7d8d706b1d3">cmdline.h</a>
+</li>
+<li>gpr_cmdline_create()
+: <a class="el" href="cmdline_8h.html#a608f6fbc4edfb4d2c18e3c0660fd8773">cmdline.h</a>
+</li>
+<li>gpr_cmdline_destroy()
+: <a class="el" href="cmdline_8h.html#a018f826ce313b02d2773ef97b8df5f98">cmdline.h</a>
+</li>
+<li>gpr_cmdline_on_extra_arg()
+: <a class="el" href="cmdline_8h.html#afcf023a5eb082034a650a0f0177d1fe9">cmdline.h</a>
+</li>
+<li>gpr_cmdline_parse()
+: <a class="el" href="cmdline_8h.html#a34b66021bbbb9f6a6e8a60c0ae34f8a4">cmdline.h</a>
+</li>
+<li>gpr_cmdline_usage_string()
+: <a class="el" href="cmdline_8h.html#a4eac81d047bdc6e679079309bf60f030">cmdline.h</a>
+</li>
+<li>gpr_convert_clock_type()
+: <a class="el" href="time_8h.html#a5da0bdd7a1b8735bf1594a2068b7ec74">time.h</a>
+</li>
+<li>gpr_cpu_current_cpu()
+: <a class="el" href="cpu_8h.html#ad713326192eea685047b742f1da87c1d">cpu.h</a>
+</li>
+<li>gpr_cpu_num_cores()
+: <a class="el" href="cpu_8h.html#abfe660c6872b008de80de5b39ac2538d">cpu.h</a>
+</li>
+<li>gpr_cv_broadcast()
+: <a class="el" href="sync_8h.html#ad5a4b4a5844668d188db89dda6ad205b">sync.h</a>
+</li>
+<li>gpr_cv_cancellable_wait()
+: <a class="el" href="sync_8h.html#a5f1df649a9885ff2354dd4ce611017d9">sync.h</a>
+</li>
+<li>gpr_cv_destroy()
+: <a class="el" href="sync_8h.html#a652900a910676d5cae9ccba052adb6b0">sync.h</a>
+</li>
+<li>gpr_cv_init()
+: <a class="el" href="sync_8h.html#ad24aac3d86113f0fcffc6c4595da9cb2">sync.h</a>
+</li>
+<li>gpr_cv_signal()
+: <a class="el" href="sync_8h.html#aba119d0b92b0bd50e6efa9e2abe07a5f">sync.h</a>
+</li>
+<li>gpr_cv_wait()
+: <a class="el" href="sync_8h.html#ad5d8d01509b75addc44e5a43783a826e">sync.h</a>
+</li>
+<li>gpr_empty_slice()
+: <a class="el" href="slice_8h.html#a1a8906400c956fb8c508326a072b0662">slice.h</a>
+</li>
+<li>gpr_event_cancellable_wait()
+: <a class="el" href="sync_8h.html#ae048c7e762b723821e35a07fd0d85e22">sync.h</a>
+</li>
+<li>gpr_event_get()
+: <a class="el" href="sync_8h.html#ac0a2305d9e6575cc5a3d92bc3f12c161">sync.h</a>
+</li>
+<li>gpr_event_init()
+: <a class="el" href="sync_8h.html#a93f37cd27964fda51acd4cd8e6737922">sync.h</a>
+</li>
+<li>gpr_event_set()
+: <a class="el" href="sync_8h.html#a1b1d014640e00512f6789dacc4ff88bd">sync.h</a>
+</li>
+<li>gpr_event_wait()
+: <a class="el" href="sync_8h.html#a01d442a76ff77f64d9f898b22ea33db7">sync.h</a>
+</li>
+<li>gpr_format_message()
+: <a class="el" href="log__win32_8h.html#ad8115cf8df2332d225d12cb87c21f536">log_win32.h</a>
+</li>
+<li>gpr_free()
+: <a class="el" href="alloc_8h.html#ae0d621b472031a64c77bd2e9fea495e8">alloc.h</a>
+</li>
+<li>gpr_free_aligned()
+: <a class="el" href="alloc_8h.html#af9b603aefd33752e1b473856af77cbc9">alloc.h</a>
+</li>
+<li>gpr_histogram_add()
+: <a class="el" href="histogram_8h.html#a63815a52b0236626a30480915ff51847">histogram.h</a>
+</li>
+<li>gpr_histogram_count()
+: <a class="el" href="histogram_8h.html#a242b0541ee25271812d867d8f2734255">histogram.h</a>
+</li>
+<li>gpr_histogram_create()
+: <a class="el" href="histogram_8h.html#a5da9d3dac4262c5ae1e974a649edbd5c">histogram.h</a>
+</li>
+<li>gpr_histogram_destroy()
+: <a class="el" href="histogram_8h.html#a7411a760aa075c1c27eeb9249d951c6c">histogram.h</a>
+</li>
+<li>gpr_histogram_get_contents()
+: <a class="el" href="histogram_8h.html#aa7807dc3f06172d1513498761c3ad8c4">histogram.h</a>
+</li>
+<li>gpr_histogram_maximum()
+: <a class="el" href="histogram_8h.html#a71e5aa88087c8595c7f5d01750f919cb">histogram.h</a>
+</li>
+<li>gpr_histogram_mean()
+: <a class="el" href="histogram_8h.html#a14d68ff71978bda93a07d019d993d83c">histogram.h</a>
+</li>
+<li>gpr_histogram_merge()
+: <a class="el" href="histogram_8h.html#a41caac8747588e75cf5fed974fcd90f2">histogram.h</a>
+</li>
+<li>gpr_histogram_merge_contents()
+: <a class="el" href="histogram_8h.html#aa1acf09b75809398b4e45729e6a3ba30">histogram.h</a>
+</li>
+<li>gpr_histogram_minimum()
+: <a class="el" href="histogram_8h.html#ab89af54f76a690d82d1f065ceeda6a76">histogram.h</a>
+</li>
+<li>gpr_histogram_percentile()
+: <a class="el" href="histogram_8h.html#a1a0a1b854c2af4d29175872fe5bb4431">histogram.h</a>
+</li>
+<li>gpr_histogram_stddev()
+: <a class="el" href="histogram_8h.html#a0979c6470e9192e5f83bcab01542dd91">histogram.h</a>
+</li>
+<li>gpr_histogram_sum()
+: <a class="el" href="histogram_8h.html#a0332c47f841d8b0607e3327d8bc9a933">histogram.h</a>
+</li>
+<li>gpr_histogram_sum_of_squares()
+: <a class="el" href="histogram_8h.html#a5788652eb5350afcc534f563fd0265d3">histogram.h</a>
+</li>
+<li>gpr_histogram_variance()
+: <a class="el" href="histogram_8h.html#a4ef00ceaa619ca09da4de17fc5a5769b">histogram.h</a>
+</li>
+<li>gpr_inf_future()
+: <a class="el" href="time_8h.html#a9324a2b33d5d7686fb14714c59ff026d">time.h</a>
+</li>
+<li>gpr_inf_past()
+: <a class="el" href="time_8h.html#abd2eba8066648fe0d94146d8310b4283">time.h</a>
+</li>
+<li>gpr_join_host_port()
+: <a class="el" href="host__port_8h.html#a75d6ea0faeed039dc132873afce91508">host_port.h</a>
+</li>
+<li>gpr_log()
+: <a class="el" href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">log.h</a>
+</li>
+<li>gpr_log_message()
+: <a class="el" href="log_8h.html#a7a3d59528754f8fbcfe54f6f8a72ec61">log.h</a>
+</li>
+<li>gpr_log_severity_string()
+: <a class="el" href="log_8h.html#a3badccbc5ec4c725eadbc07b8e5706eb">log.h</a>
+</li>
+<li>gpr_malloc()
+: <a class="el" href="alloc_8h.html#af5896bb446b6179f35651730357149bb">alloc.h</a>
+</li>
+<li>gpr_malloc_aligned()
+: <a class="el" href="alloc_8h.html#a73551a6249ae9b0a73ad75733c67ead4">alloc.h</a>
+</li>
+<li>gpr_mu_destroy()
+: <a class="el" href="sync_8h.html#a52ae2524c7dade8cecb9f01ff4792c9e">sync.h</a>
+</li>
+<li>gpr_mu_init()
+: <a class="el" href="sync_8h.html#a16694f755266c254390b041a0f069094">sync.h</a>
+</li>
+<li>gpr_mu_lock()
+: <a class="el" href="sync_8h.html#a44b385455d169e6c84659adb222c1d42">sync.h</a>
+</li>
+<li>gpr_mu_trylock()
+: <a class="el" href="sync_8h.html#a65a42bb7ca9072b0e7b581d715a8e777">sync.h</a>
+</li>
+<li>gpr_mu_unlock()
+: <a class="el" href="sync_8h.html#a91370fd0eb76bc1323c80815ad6e9cff">sync.h</a>
+</li>
+<li>gpr_now()
+: <a class="el" href="time_8h.html#adf5debcac2bc854e733ca2dec2a1ff19">time.h</a>
+</li>
+<li>gpr_once_init()
+: <a class="el" href="sync_8h.html#ad5c88872723a129b09200b1892d2323f">sync.h</a>
+</li>
+<li>gpr_realloc()
+: <a class="el" href="alloc_8h.html#a25d9a067b093e9c76dbbd77995b1bc91">alloc.h</a>
+</li>
+<li>gpr_ref()
+: <a class="el" href="sync_8h.html#ac0e52c6bfc7a04ba8a269f3227104571">sync.h</a>
+</li>
+<li>gpr_ref_init()
+: <a class="el" href="sync_8h.html#a235584f36572b5410b042ee63cb0740b">sync.h</a>
+</li>
+<li>gpr_refn()
+: <a class="el" href="sync_8h.html#a516e26b66b1aa53fba8f5f52b249cb25">sync.h</a>
+</li>
+<li>gpr_set_log_function()
+: <a class="el" href="log_8h.html#a75771a41e3bb2831df8043a57de05330">log.h</a>
+</li>
+<li>gpr_sleep_until()
+: <a class="el" href="time_8h.html#ad037af8b7288a3f2e5ce46d3e3ca50d7">time.h</a>
+</li>
+<li>gpr_slice_buffer_add()
+: <a class="el" href="slice__buffer_8h.html#a8fd6443c77c7602be19b9152355a8e12">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_add_indexed()
+: <a class="el" href="slice__buffer_8h.html#acd745eec745573eeace3861da3e2c045">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_addn()
+: <a class="el" href="slice__buffer_8h.html#a615be732e655de9980c321eb075e4a46">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_destroy()
+: <a class="el" href="slice__buffer_8h.html#a60c8b437918c3a81651b5f9a892f6399">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_init()
+: <a class="el" href="slice__buffer_8h.html#aab5ed508480703c7b856e92ef6d7e4c8">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_move_into()
+: <a class="el" href="slice__buffer_8h.html#a0289912040151750bbee19ba632a88f1">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_pop()
+: <a class="el" href="slice__buffer_8h.html#ae3bd1bc560aad5b69a6ef0b09286cc79">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_reset_and_unref()
+: <a class="el" href="slice__buffer_8h.html#aa2819a201e9dcf62e31a6dbfc6fe3010">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_swap()
+: <a class="el" href="slice__buffer_8h.html#a672b80e16cdabf26c7b558a54edfcd2d">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_tiny_add()
+: <a class="el" href="slice__buffer_8h.html#a223fc0bf1beb3866aee902dea0a599c0">slice_buffer.h</a>
+</li>
+<li>gpr_slice_cmp()
+: <a class="el" href="slice_8h.html#add3c8736c46bea7517991f178c82ba3c">slice.h</a>
+</li>
+<li>gpr_slice_from_copied_buffer()
+: <a class="el" href="slice_8h.html#a83e8110a7a98132963f01eb9c7f7418e">slice.h</a>
+</li>
+<li>gpr_slice_from_copied_string()
+: <a class="el" href="slice_8h.html#adf4df32e55b1b09d3f11c39447dcc68b">slice.h</a>
+</li>
+<li>gpr_slice_malloc()
+: <a class="el" href="slice_8h.html#ab57463740ccedc00b50721dce66ebd7b">slice.h</a>
+</li>
+<li>gpr_slice_new()
+: <a class="el" href="slice_8h.html#aea43587a11bfe2e06fb8532035229bb2">slice.h</a>
+</li>
+<li>gpr_slice_new_with_len()
+: <a class="el" href="slice_8h.html#affd1fef2ffaca67e0b2e7b60923da812">slice.h</a>
+</li>
+<li>gpr_slice_ref()
+: <a class="el" href="slice_8h.html#ad28a2bcca348046cbe660a44180e75ca">slice.h</a>
+</li>
+<li>gpr_slice_split_head()
+: <a class="el" href="slice_8h.html#a842ea6b4a9ab4d0d3becd6fda03bbc24">slice.h</a>
+</li>
+<li>gpr_slice_split_tail()
+: <a class="el" href="slice_8h.html#a51315f2a9217a1d42711f48bfec9d39e">slice.h</a>
+</li>
+<li>gpr_slice_str_cmp()
+: <a class="el" href="slice_8h.html#aef752203db50c932010a74c6845872c2">slice.h</a>
+</li>
+<li>gpr_slice_sub()
+: <a class="el" href="slice_8h.html#ac9d4e6e264e22c6c6d3748f522da91eb">slice.h</a>
+</li>
+<li>gpr_slice_sub_no_ref()
+: <a class="el" href="slice_8h.html#accf08ddad530a5f1cca82c834dc70965">slice.h</a>
+</li>
+<li>gpr_slice_unref()
+: <a class="el" href="slice_8h.html#a024429b0dd15e43a09e48e35ca8810d7">slice.h</a>
+</li>
+<li>gpr_split_host_port()
+: <a class="el" href="host__port_8h.html#aacb0efdff2bb1b15d5e7edeb62ae4aea">host_port.h</a>
+</li>
+<li>gpr_stats_inc()
+: <a class="el" href="sync_8h.html#a8e51ec3b46c7c03602e2279a802daa1c">sync.h</a>
+</li>
+<li>gpr_stats_init()
+: <a class="el" href="sync_8h.html#a76b8e5de6e1baa4fd66c014417dc0a30">sync.h</a>
+</li>
+<li>gpr_stats_read()
+: <a class="el" href="sync_8h.html#abb2c58da7d0b785887266b3b1890764d">sync.h</a>
+</li>
+<li>gpr_strdup()
+: <a class="el" href="string__util_8h.html#a7a021bce444344f0a96cb022038eed93">string_util.h</a>
+</li>
+<li>gpr_subprocess_binary_extension()
+: <a class="el" href="subprocess_8h.html#a6d393aed4f99f9ba49286715c5da8fd3">subprocess.h</a>
+</li>
+<li>gpr_subprocess_create()
+: <a class="el" href="subprocess_8h.html#a761755433d8809a68024b03176341242">subprocess.h</a>
+</li>
+<li>gpr_subprocess_destroy()
+: <a class="el" href="subprocess_8h.html#a880657b78894ae66b9c5d7416ee7839b">subprocess.h</a>
+</li>
+<li>gpr_subprocess_interrupt()
+: <a class="el" href="subprocess_8h.html#aee2ddbe0e8a58271a6a9a3cf451dd67d">subprocess.h</a>
+</li>
+<li>gpr_subprocess_join()
+: <a class="el" href="subprocess_8h.html#ac5c4e7eccc737f473dd73a1fb502f0d5">subprocess.h</a>
+</li>
+<li>gpr_thd_currentid()
+: <a class="el" href="thd_8h.html#a8c875ae5410d10d658cfb7b917909624">thd.h</a>
+</li>
+<li>gpr_thd_join()
+: <a class="el" href="thd_8h.html#a73509f851051b4d5f02ca1982d216776">thd.h</a>
+</li>
+<li>gpr_thd_new()
+: <a class="el" href="thd_8h.html#a9184cf0e025d8a9b098af6c08755b8ea">thd.h</a>
+</li>
+<li>gpr_thd_options_default()
+: <a class="el" href="thd_8h.html#abf8bb34ba7d26ddab0696e24b1fcc862">thd.h</a>
+</li>
+<li>gpr_thd_options_is_detached()
+: <a class="el" href="thd_8h.html#a1647c2e991d269cdaf146dc33f61ce89">thd.h</a>
+</li>
+<li>gpr_thd_options_is_joinable()
+: <a class="el" href="thd_8h.html#afb8d6ad4dcc8ebcdb6a786e8f4ef442b">thd.h</a>
+</li>
+<li>gpr_thd_options_set_detached()
+: <a class="el" href="thd_8h.html#a704882e5c65d29c817fae9173085e5ba">thd.h</a>
+</li>
+<li>gpr_thd_options_set_joinable()
+: <a class="el" href="thd_8h.html#a87ad3ff4d439450ae1318151c1526745">thd.h</a>
+</li>
+<li>gpr_time_0()
+: <a class="el" href="time_8h.html#a4f552f0628cc389dfbe3674a1a978108">time.h</a>
+</li>
+<li>gpr_time_add()
+: <a class="el" href="time_8h.html#a6f2c6fbc9fef45d74670c446e2bad004">time.h</a>
+</li>
+<li>gpr_time_cmp()
+: <a class="el" href="time_8h.html#aeb10778e9b7c1dd7e6c47099d55f0fa0">time.h</a>
+</li>
+<li>gpr_time_from_hours()
+: <a class="el" href="time_8h.html#af7a9aca2af5348cbb8dc835853dc2756">time.h</a>
+</li>
+<li>gpr_time_from_micros()
+: <a class="el" href="time_8h.html#a79956c6fba5b660aeee24b09ae026d6c">time.h</a>
+</li>
+<li>gpr_time_from_millis()
+: <a class="el" href="time_8h.html#a491cdb7a2d2da81c337ed4c8c6a24946">time.h</a>
+</li>
+<li>gpr_time_from_minutes()
+: <a class="el" href="time_8h.html#ad2ae89810eabe8c224b15a4ae0991eba">time.h</a>
+</li>
+<li>gpr_time_from_nanos()
+: <a class="el" href="time_8h.html#a16f57f7df5d09bfc38e8b8fcd323e50a">time.h</a>
+</li>
+<li>gpr_time_from_seconds()
+: <a class="el" href="time_8h.html#a4bc0bd3df3e9537035fc2b8675f01916">time.h</a>
+</li>
+<li>gpr_time_init()
+: <a class="el" href="time_8h.html#a2a3da26a2eb15fcd312f1b8ef00cad56">time.h</a>
+</li>
+<li>gpr_time_max()
+: <a class="el" href="time_8h.html#a4e1c94c1e488381e9f01d4318c2a45d8">time.h</a>
+</li>
+<li>gpr_time_min()
+: <a class="el" href="time_8h.html#af15f574932e56662f57bd3573e3cc469">time.h</a>
+</li>
+<li>gpr_time_similar()
+: <a class="el" href="time_8h.html#a914f666c6cfe709650d96c986600de15">time.h</a>
+</li>
+<li>gpr_time_sub()
+: <a class="el" href="time_8h.html#a1eaf8db9ee9e94bd4af005f1049f967a">time.h</a>
+</li>
+<li>gpr_time_to_millis()
+: <a class="el" href="time_8h.html#aebea7c2faef2e16b802a5e9ae1f3b7df">time.h</a>
+</li>
+<li>gpr_timespec_to_micros()
+: <a class="el" href="time_8h.html#a1704f2028070b3c92bd5420864458bac">time.h</a>
+</li>
+<li>gpr_tls_set()
+: <a class="el" href="tls__pthread_8h.html#a02e97731a7a6668a2cb73a7e791e93ea">tls_pthread.h</a>
+</li>
+<li>gpr_unref()
+: <a class="el" href="sync_8h.html#a76b570c831b14070c37e708dde91b795">sync.h</a>
+</li>
+<li>grpc_access_token_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a7ef8e179bb5d15c81dfd363924db0041">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_find_properties_by_name()
+: <a class="el" href="grpc__security_8h.html#a5298ac64614986581fc314f63fa9afd7">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_peer_identity()
+: <a class="el" href="grpc__security_8h.html#a144c6f3a56c8592489b3978e0c5caced">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_peer_identity_property_name()
+: <a class="el" href="grpc__security_8h.html#ac05022ccd5b972ba089950437727ff23">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_peer_is_authenticated()
+: <a class="el" href="grpc__security_8h.html#af33fe6681dedb389edbf708020680093">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_property_iterator()
+: <a class="el" href="grpc__security_8h.html#aaad9fed074f7aebed63ed075bb6ff780">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_release()
+: <a class="el" href="grpc__security_8h.html#a2eea99f76030b21ad58afdf615f4d2b9">grpc_security.h</a>
+</li>
+<li>grpc_auth_property_iterator_next()
+: <a class="el" href="grpc__security_8h.html#ac20e3890d5e5e0de6ae6b5cb57cae1ae">grpc_security.h</a>
+</li>
+<li>grpc_byte_buffer_copy()
+: <a class="el" href="byte__buffer_8h.html#aac8a5605c5de93a78da7e8ca06a80efb">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_destroy()
+: <a class="el" href="byte__buffer_8h.html#a5a9ccea69a6ba41d34a6985837fd88f5">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_length()
+: <a class="el" href="byte__buffer_8h.html#a61b6ac03d6a50664786e45d616ba435d">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader_destroy()
+: <a class="el" href="byte__buffer_8h.html#aed5f40a76941741b7672c14f15be0778">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader_init()
+: <a class="el" href="byte__buffer_8h.html#a71016674849f4f57c1a4319d7964d268">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader_next()
+: <a class="el" href="byte__buffer_8h.html#aff713900a0177997a0be49a40781bcc9">byte_buffer.h</a>
+</li>
+<li>grpc_call_auth_context()
+: <a class="el" href="grpc__security_8h.html#a0b439e6d2875c8b5e2e901a959f6a2fe">grpc_security.h</a>
+</li>
+<li>grpc_call_cancel()
+: <a class="el" href="grpc_8h.html#adce32a3168cfc0048423af94a3961878">grpc.h</a>
+</li>
+<li>grpc_call_cancel_with_status()
+: <a class="el" href="grpc_8h.html#a8332e3ac6611ae4012ed17707d7dbcf2">grpc.h</a>
+</li>
+<li>grpc_call_destroy()
+: <a class="el" href="grpc_8h.html#a3edbb9347e32fd0152c8ed4bbbaf5125">grpc.h</a>
+</li>
+<li>grpc_call_details_destroy()
+: <a class="el" href="grpc_8h.html#a436819189c9155a0761db7667f9078f9">grpc.h</a>
+</li>
+<li>grpc_call_details_init()
+: <a class="el" href="grpc_8h.html#a29fa3bfb0a561ba465260154a4ef3bb5">grpc.h</a>
+</li>
+<li>grpc_call_get_peer()
+: <a class="el" href="grpc_8h.html#adf4ac8b78da7b957ce05dc0f62719ada">grpc.h</a>
+</li>
+<li>grpc_call_set_credentials()
+: <a class="el" href="grpc__security_8h.html#a56de54ae2563e67e236c10e8fa419f60">grpc_security.h</a>
+</li>
+<li>grpc_call_start_batch()
+: <a class="el" href="grpc_8h.html#ae0e60993c9d6e5ceccaf2e61f690b101">grpc.h</a>
+</li>
+<li>grpc_census_call_get_context()
+: <a class="el" href="grpc_8h.html#a0f2c6a97262a251d18b76ad470af0e66">grpc.h</a>
+</li>
+<li>grpc_census_call_set_context()
+: <a class="el" href="grpc_8h.html#a9d5bbdac3a9068747ef3639c4e52af9a">grpc.h</a>
+</li>
+<li>grpc_channel_check_connectivity_state()
+: <a class="el" href="grpc_8h.html#a9623d8e4df1d17eb26b67d905f1d7cb3">grpc.h</a>
+</li>
+<li>grpc_channel_create_call()
+: <a class="el" href="grpc_8h.html#a368ca2e4f76495c3c4bfbb27eb88936e">grpc.h</a>
+</li>
+<li>grpc_channel_create_registered_call()
+: <a class="el" href="grpc_8h.html#a38aa45cdbc3d9a9529bcb6ee8b2c68aa">grpc.h</a>
+</li>
+<li>grpc_channel_destroy()
+: <a class="el" href="grpc_8h.html#a16e4b95581ad12e8e0af2af8d41b71b3">grpc.h</a>
+</li>
+<li>grpc_channel_get_target()
+: <a class="el" href="grpc_8h.html#a108ef86bc0e5ebcb05f744315e2a6499">grpc.h</a>
+</li>
+<li>grpc_channel_register_call()
+: <a class="el" href="grpc_8h.html#af00855f27d8b7c6b232982446371c04d">grpc.h</a>
+</li>
+<li>grpc_channel_watch_connectivity_state()
+: <a class="el" href="grpc_8h.html#a29aa98ca6ce9f7e5116e43b0c414e96b">grpc.h</a>
+</li>
+<li>grpc_completion_queue_create()
+: <a class="el" href="grpc_8h.html#a9f69c76c26125e6581491864a06ea44a">grpc.h</a>
+</li>
+<li>grpc_completion_queue_destroy()
+: <a class="el" href="grpc_8h.html#a629a77a358721f1a3bbb8fef34c3996e">grpc.h</a>
+</li>
+<li>grpc_completion_queue_next()
+: <a class="el" href="grpc_8h.html#a56a4ff1f046393205c3418c24f5d5587">grpc.h</a>
+</li>
+<li>grpc_completion_queue_pluck()
+: <a class="el" href="grpc_8h.html#a21e38dd0146d244eb0e262fd1b6a50ee">grpc.h</a>
+</li>
+<li>grpc_completion_queue_shutdown()
+: <a class="el" href="grpc_8h.html#a4051b4036c5132f02064430f67420ecd">grpc.h</a>
+</li>
+<li>grpc_composite_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a4f65f01fb23e963cc88bcdfbede70da7">grpc_security.h</a>
+</li>
+<li>grpc_compression_algorithm_for_level()
+: <a class="el" href="compression_8h.html#a382cce802b53a6f85deb706caf1dccd6">compression.h</a>
+</li>
+<li>grpc_compression_algorithm_name()
+: <a class="el" href="compression_8h.html#adce0341ab8fd560dc39e9e96daf7cb14">compression.h</a>
+</li>
+<li>grpc_compression_algorithm_parse()
+: <a class="el" href="compression_8h.html#a996f65ae42d05dd7ef9da9c6d6586397">compression.h</a>
+</li>
+<li>grpc_compression_level_for_algorithm()
+: <a class="el" href="compression_8h.html#ace80040d9c2a916ddd4d2f2d2ec44dba">compression.h</a>
+</li>
+<li>grpc_compute_engine_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a3beb3fe683139856e1a13c27d760eb95">grpc_security.h</a>
+</li>
+<li>grpc_credentials_release()
+: <a class="el" href="grpc__security_8h.html#a6c01e107d41e964458fdf701b8b81440">grpc_security.h</a>
+</li>
+<li>grpc_google_default_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a5e3fb8f208c302245a1392c7ef16d170">grpc_security.h</a>
+</li>
+<li>grpc_iam_credentials_create()
+: <a class="el" href="grpc__security_8h.html#ae42c358e718847c988aa690cb0fccab3">grpc_security.h</a>
+</li>
+<li>grpc_init()
+: <a class="el" href="grpc_8h.html#aa78606c93951c49eadd8d83d739798d6">grpc.h</a>
+</li>
+<li>grpc_insecure_channel_create()
+: <a class="el" href="grpc_8h.html#aa710e7e68b23098900f924cf69797496">grpc.h</a>
+</li>
+<li>grpc_lame_client_channel_create()
+: <a class="el" href="grpc_8h.html#acd59697f4b8bedea662939da3668ab9b">grpc.h</a>
+</li>
+<li>grpc_metadata_array_destroy()
+: <a class="el" href="grpc_8h.html#aad125726d8b689cc5fc1a0444c91ed44">grpc.h</a>
+</li>
+<li>grpc_metadata_array_init()
+: <a class="el" href="grpc_8h.html#a52cfda44034115720a0e88037dedbfb5">grpc.h</a>
+</li>
+<li>grpc_raw_byte_buffer_create()
+: <a class="el" href="byte__buffer_8h.html#a1aaaa0d8a1609166e0b0bb2b42332618">byte_buffer.h</a>
+</li>
+<li>grpc_raw_byte_buffer_from_reader()
+: <a class="el" href="byte__buffer_8h.html#a9b4f877e32f45e0e704970e89582e0df">byte_buffer.h</a>
+</li>
+<li>grpc_raw_compressed_byte_buffer_create()
+: <a class="el" href="byte__buffer_8h.html#af9801acc1dbfd02b2c51ed9d504cd12b">byte_buffer.h</a>
+</li>
+<li>grpc_refresh_token_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a7a2440ad02b6a96adbd2c6e5d66fd7d2">grpc_security.h</a>
+</li>
+<li>grpc_secure_channel_create()
+: <a class="el" href="grpc__security_8h.html#a4d63d4cac74652ec3fac7782acb4a2d4">grpc_security.h</a>
+</li>
+<li>grpc_server_add_http2_port()
+: <a class="el" href="grpc_8h.html#a48cab64480658b97a775b2c7837456f9">grpc.h</a>
+</li>
+<li>grpc_server_add_secure_http2_port()
+: <a class="el" href="grpc__security_8h.html#a5d0db200d00b62b79138472dc9b1fe59">grpc_security.h</a>
+</li>
+<li>grpc_server_cancel_all_calls()
+: <a class="el" href="grpc_8h.html#ac5c1e4f3e270a7afbc39403fff0dc803">grpc.h</a>
+</li>
+<li>grpc_server_create()
+: <a class="el" href="grpc_8h.html#a4036710ea12eccabbbbf050d6bad4cd4">grpc.h</a>
+</li>
+<li>grpc_server_credentials_release()
+: <a class="el" href="grpc__security_8h.html#a6e9f9320f4f8d2d534d04ed642f032ea">grpc_security.h</a>
+</li>
+<li>grpc_server_destroy()
+: <a class="el" href="grpc_8h.html#a34cba45da7c32a21ac82305d670e4620">grpc.h</a>
+</li>
+<li>grpc_server_register_completion_queue()
+: <a class="el" href="grpc_8h.html#ac174712f87fdae4b5757a1370e2a31cb">grpc.h</a>
+</li>
+<li>grpc_server_register_method()
+: <a class="el" href="grpc_8h.html#a283062a2209f464f234b0e645c6fffb2">grpc.h</a>
+</li>
+<li>grpc_server_request_call()
+: <a class="el" href="grpc_8h.html#a636d8fd8c888ba0a0fefacf8dcab7257">grpc.h</a>
+</li>
+<li>grpc_server_request_registered_call()
+: <a class="el" href="grpc_8h.html#a7207900db3bba2f1ae2e3f2dfc2822de">grpc.h</a>
+</li>
+<li>grpc_server_shutdown_and_notify()
+: <a class="el" href="grpc_8h.html#a56fffa23c1c4bab9a469e2ac607b6db7">grpc.h</a>
+</li>
+<li>grpc_server_start()
+: <a class="el" href="grpc_8h.html#ac5010d26419e14f5a9ab2fa86a4f7d1e">grpc.h</a>
+</li>
+<li>grpc_service_account_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a15aa83608fad085b6244de659d322b27">grpc_security.h</a>
+</li>
+<li>grpc_service_account_jwt_access_credentials_create()
+: <a class="el" href="grpc__security_8h.html#af26993774cc991debd61e4a84ed49187">grpc_security.h</a>
+</li>
+<li>grpc_shutdown()
+: <a class="el" href="grpc_8h.html#af1130720e50ffedd0bb065c84843b032">grpc.h</a>
+</li>
+<li>grpc_ssl_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a0d627ca897718091e4ceca5dce3ef10e">grpc_security.h</a>
+</li>
+<li>grpc_ssl_server_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a3382907a4689c034a6f55bab4d5135b9">grpc_security.h</a>
+</li>
+<li>grpc_tracer_set_enabled()
+: <a class="el" href="grpc_8h.html#ae6984d3f0c3b9bc9a47859fd4dddc350">grpc.h</a>
+</li>
+<li>grpc_version_string()
+: <a class="el" href="grpc_8h.html#a250ca547d790874bd7b5ceec25f18c51">grpc.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 1292 - 0
core/globals_g.html

@@ -0,0 +1,1292 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="globals.html#index_c"><span>c</span></a></li>
+      <li class="current"><a href="globals_g.html#index_g"><span>g</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>GPR_ARRAY_SIZE
+: <a class="el" href="useful_8h.html#a0e411d4f81a169c97c319d4e84df5747">useful.h</a>
+</li>
+<li>gpr_asprintf()
+: <a class="el" href="string__util_8h.html#a0e5cc621bf7ca14112c72aa7a0ca73d0">string_util.h</a>
+</li>
+<li>GPR_ASSERT
+: <a class="el" href="log_8h.html#a6ccf52ff690655cc22cd9d053650876f">log.h</a>
+</li>
+<li>gpr_atm
+: <a class="el" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#aa9e4b16c09888debe306f14e8090b1cc">atm_gcc_sync.h</a>
+, <a class="el" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">atm_win32.h</a>
+</li>
+<li>gpr_atm_acq_cas
+: <a class="el" href="atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_acq_load
+: <a class="el" href="atm__gcc__atomic_8h.html#a44607f95f7ee40eba592c7fe10960a06">atm_gcc_atomic.h</a>
+</li>
+<li>GPR_ATM_COMPILE_BARRIER_
+: <a class="el" href="atm__gcc__sync_8h.html#a5a1f94112dcd03309d6716d43c8edf3f">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_full_barrier
+: <a class="el" href="atm__gcc__atomic_8h.html#a95f86e51ae9a479026bd237cb792193e">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#a95f86e51ae9a479026bd237cb792193e">atm_gcc_sync.h</a>
+, <a class="el" href="atm__win32_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">atm_win32.h</a>
+</li>
+<li>gpr_atm_full_fetch_add
+: <a class="el" href="atm__gcc__atomic_8h.html#abada8771b338845e4c6ef93c8392582c">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">atm_gcc_sync.h</a>
+</li>
+<li>GPR_ATM_LS_BARRIER_
+: <a class="el" href="atm__gcc__sync_8h.html#a4ceb46c9b854db0ade8cfe2f37edb878">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_no_barrier_cas
+: <a class="el" href="atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_no_barrier_fetch_add
+: <a class="el" href="atm__gcc__atomic_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_no_barrier_load
+: <a class="el" href="atm__gcc__atomic_8h.html#aa647aa9c97294a6709bbf2ac401cd9a6">atm_gcc_atomic.h</a>
+</li>
+<li>gpr_atm_no_barrier_store
+: <a class="el" href="atm__gcc__atomic_8h.html#afad47d4c311c5439371fcdd4a0b6794e">atm_gcc_atomic.h</a>
+</li>
+<li>gpr_atm_rel_cas
+: <a class="el" href="atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">atm_gcc_sync.h</a>
+</li>
+<li>gpr_atm_rel_store
+: <a class="el" href="atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">atm_gcc_atomic.h</a>
+</li>
+<li>GPR_BITCLEAR
+: <a class="el" href="useful_8h.html#af797bf1803f9809b3ccceaa619078c89">useful.h</a>
+</li>
+<li>GPR_BITCOUNT
+: <a class="el" href="useful_8h.html#a8f51444fe97eb3f83184b98035e3357f">useful.h</a>
+</li>
+<li>GPR_BITGET
+: <a class="el" href="useful_8h.html#a7c54bb2fffdaae24ba38ca5e5c53ab41">useful.h</a>
+</li>
+<li>GPR_BITSET
+: <a class="el" href="useful_8h.html#a28de4ed955bfc2bff309061b7820a37a">useful.h</a>
+</li>
+<li>GPR_CACHELINE_SIZE
+: <a class="el" href="port__platform_8h.html#ad9b7cc620233bbab0bc57cfbbe9519ad">port_platform.h</a>
+</li>
+<li>GPR_CACHELINE_SIZE_LOG
+: <a class="el" href="port__platform_8h.html#a4e8b19add0d8d0be9464f748be985576">port_platform.h</a>
+</li>
+<li>gpr_cancellable_cancel()
+: <a class="el" href="sync_8h.html#a895fb73161d2dd1fa19be10d5395001c">sync.h</a>
+</li>
+<li>gpr_cancellable_destroy()
+: <a class="el" href="sync_8h.html#aa82b7172b992bd33bd6fd4b4dc89e338">sync.h</a>
+</li>
+<li>gpr_cancellable_init()
+: <a class="el" href="sync_8h.html#aec0b0e9b9f084550cdec300da1f31add">sync.h</a>
+</li>
+<li>gpr_cancellable_is_cancelled()
+: <a class="el" href="sync_8h.html#a1e53047443e5eb1f9895be0c90bc790b">sync.h</a>
+</li>
+<li>GPR_CLAMP
+: <a class="el" href="useful_8h.html#ac974b8c13ee716193e0ee30d9513672c">useful.h</a>
+</li>
+<li>GPR_CLOCK_MONOTONIC
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281a6ddd11813c5172c7b3e0e46e5ce7f01c">time.h</a>
+</li>
+<li>GPR_CLOCK_REALTIME
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281a685c67eccb0b9e3de6311b1e1330a746">time.h</a>
+</li>
+<li>gpr_clock_type
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281">time.h</a>
+</li>
+<li>gpr_cmdline
+: <a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">cmdline.h</a>
+</li>
+<li>gpr_cmdline_add_flag()
+: <a class="el" href="cmdline_8h.html#ac5ecfdfc605896c29df846b1e268045e">cmdline.h</a>
+</li>
+<li>gpr_cmdline_add_int()
+: <a class="el" href="cmdline_8h.html#a0fc8cd330751e9876e8635189a1bc10f">cmdline.h</a>
+</li>
+<li>gpr_cmdline_add_string()
+: <a class="el" href="cmdline_8h.html#a34568676c089f3284dc8f7d8d706b1d3">cmdline.h</a>
+</li>
+<li>gpr_cmdline_create()
+: <a class="el" href="cmdline_8h.html#a608f6fbc4edfb4d2c18e3c0660fd8773">cmdline.h</a>
+</li>
+<li>gpr_cmdline_destroy()
+: <a class="el" href="cmdline_8h.html#a018f826ce313b02d2773ef97b8df5f98">cmdline.h</a>
+</li>
+<li>gpr_cmdline_on_extra_arg()
+: <a class="el" href="cmdline_8h.html#afcf023a5eb082034a650a0f0177d1fe9">cmdline.h</a>
+</li>
+<li>gpr_cmdline_parse()
+: <a class="el" href="cmdline_8h.html#a34b66021bbbb9f6a6e8a60c0ae34f8a4">cmdline.h</a>
+</li>
+<li>gpr_cmdline_usage_string()
+: <a class="el" href="cmdline_8h.html#a4eac81d047bdc6e679079309bf60f030">cmdline.h</a>
+</li>
+<li>gpr_convert_clock_type()
+: <a class="el" href="time_8h.html#a5da0bdd7a1b8735bf1594a2068b7ec74">time.h</a>
+</li>
+<li>gpr_cpu_current_cpu()
+: <a class="el" href="cpu_8h.html#ad713326192eea685047b742f1da87c1d">cpu.h</a>
+</li>
+<li>gpr_cpu_num_cores()
+: <a class="el" href="cpu_8h.html#abfe660c6872b008de80de5b39ac2538d">cpu.h</a>
+</li>
+<li>gpr_cv
+: <a class="el" href="sync__posix_8h.html#a1ad613e07180c0459cda9f3f6d881885">sync_posix.h</a>
+, <a class="el" href="sync__win32_8h.html#a81241bed6e85e9b106a1311060a04d9d">sync_win32.h</a>
+</li>
+<li>gpr_cv_broadcast()
+: <a class="el" href="sync_8h.html#ad5a4b4a5844668d188db89dda6ad205b">sync.h</a>
+</li>
+<li>gpr_cv_cancellable_wait()
+: <a class="el" href="sync_8h.html#a5f1df649a9885ff2354dd4ce611017d9">sync.h</a>
+</li>
+<li>gpr_cv_destroy()
+: <a class="el" href="sync_8h.html#a652900a910676d5cae9ccba052adb6b0">sync.h</a>
+</li>
+<li>gpr_cv_init()
+: <a class="el" href="sync_8h.html#ad24aac3d86113f0fcffc6c4595da9cb2">sync.h</a>
+</li>
+<li>gpr_cv_signal()
+: <a class="el" href="sync_8h.html#aba119d0b92b0bd50e6efa9e2abe07a5f">sync.h</a>
+</li>
+<li>gpr_cv_wait()
+: <a class="el" href="sync_8h.html#ad5d8d01509b75addc44e5a43783a826e">sync.h</a>
+</li>
+<li>GPR_DEBUG
+: <a class="el" href="log_8h.html#a3e793245091f13bb7318a18b1166a773">log.h</a>
+</li>
+<li>gpr_empty_slice()
+: <a class="el" href="slice_8h.html#a1a8906400c956fb8c508326a072b0662">slice.h</a>
+</li>
+<li>GPR_ERROR
+: <a class="el" href="log_8h.html#a63faedb3eefd93d1c0e79974be80cc36">log.h</a>
+</li>
+<li>gpr_event_cancellable_wait()
+: <a class="el" href="sync_8h.html#ae048c7e762b723821e35a07fd0d85e22">sync.h</a>
+</li>
+<li>gpr_event_get()
+: <a class="el" href="sync_8h.html#ac0a2305d9e6575cc5a3d92bc3f12c161">sync.h</a>
+</li>
+<li>gpr_event_init()
+: <a class="el" href="sync_8h.html#a93f37cd27964fda51acd4cd8e6737922">sync.h</a>
+</li>
+<li>GPR_EVENT_INIT
+: <a class="el" href="sync__generic_8h.html#a6f38fe7692eaa6663c1f79ff5847c050">sync_generic.h</a>
+</li>
+<li>gpr_event_set()
+: <a class="el" href="sync_8h.html#a1b1d014640e00512f6789dacc4ff88bd">sync.h</a>
+</li>
+<li>gpr_event_wait()
+: <a class="el" href="sync_8h.html#a01d442a76ff77f64d9f898b22ea33db7">sync.h</a>
+</li>
+<li>gpr_format_message()
+: <a class="el" href="log__win32_8h.html#ad8115cf8df2332d225d12cb87c21f536">log_win32.h</a>
+</li>
+<li>gpr_free()
+: <a class="el" href="alloc_8h.html#ae0d621b472031a64c77bd2e9fea495e8">alloc.h</a>
+</li>
+<li>gpr_free_aligned()
+: <a class="el" href="alloc_8h.html#af9b603aefd33752e1b473856af77cbc9">alloc.h</a>
+</li>
+<li>gpr_histogram
+: <a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">histogram.h</a>
+</li>
+<li>gpr_histogram_add()
+: <a class="el" href="histogram_8h.html#a63815a52b0236626a30480915ff51847">histogram.h</a>
+</li>
+<li>gpr_histogram_count()
+: <a class="el" href="histogram_8h.html#a242b0541ee25271812d867d8f2734255">histogram.h</a>
+</li>
+<li>gpr_histogram_create()
+: <a class="el" href="histogram_8h.html#a5da9d3dac4262c5ae1e974a649edbd5c">histogram.h</a>
+</li>
+<li>gpr_histogram_destroy()
+: <a class="el" href="histogram_8h.html#a7411a760aa075c1c27eeb9249d951c6c">histogram.h</a>
+</li>
+<li>gpr_histogram_get_contents()
+: <a class="el" href="histogram_8h.html#aa7807dc3f06172d1513498761c3ad8c4">histogram.h</a>
+</li>
+<li>gpr_histogram_maximum()
+: <a class="el" href="histogram_8h.html#a71e5aa88087c8595c7f5d01750f919cb">histogram.h</a>
+</li>
+<li>gpr_histogram_mean()
+: <a class="el" href="histogram_8h.html#a14d68ff71978bda93a07d019d993d83c">histogram.h</a>
+</li>
+<li>gpr_histogram_merge()
+: <a class="el" href="histogram_8h.html#a41caac8747588e75cf5fed974fcd90f2">histogram.h</a>
+</li>
+<li>gpr_histogram_merge_contents()
+: <a class="el" href="histogram_8h.html#aa1acf09b75809398b4e45729e6a3ba30">histogram.h</a>
+</li>
+<li>gpr_histogram_minimum()
+: <a class="el" href="histogram_8h.html#ab89af54f76a690d82d1f065ceeda6a76">histogram.h</a>
+</li>
+<li>gpr_histogram_percentile()
+: <a class="el" href="histogram_8h.html#a1a0a1b854c2af4d29175872fe5bb4431">histogram.h</a>
+</li>
+<li>gpr_histogram_stddev()
+: <a class="el" href="histogram_8h.html#a0979c6470e9192e5f83bcab01542dd91">histogram.h</a>
+</li>
+<li>gpr_histogram_sum()
+: <a class="el" href="histogram_8h.html#a0332c47f841d8b0607e3327d8bc9a933">histogram.h</a>
+</li>
+<li>gpr_histogram_sum_of_squares()
+: <a class="el" href="histogram_8h.html#a5788652eb5350afcc534f563fd0265d3">histogram.h</a>
+</li>
+<li>gpr_histogram_variance()
+: <a class="el" href="histogram_8h.html#a4ef00ceaa619ca09da4de17fc5a5769b">histogram.h</a>
+</li>
+<li>gpr_inf_future()
+: <a class="el" href="time_8h.html#a9324a2b33d5d7686fb14714c59ff026d">time.h</a>
+</li>
+<li>gpr_inf_past()
+: <a class="el" href="time_8h.html#abd2eba8066648fe0d94146d8310b4283">time.h</a>
+</li>
+<li>GPR_INFO
+: <a class="el" href="log_8h.html#af0d0d75690f79edc9294498c88f96703">log.h</a>
+</li>
+<li>gpr_int16
+: <a class="el" href="port__platform_8h.html#a6c41ac43b02ec37b1e07967a8706e709">port_platform.h</a>
+</li>
+<li>gpr_int32
+: <a class="el" href="port__platform_8h.html#a7c9027ffa98b5efe1767efe79903c6b7">port_platform.h</a>
+</li>
+<li>gpr_int64
+: <a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">port_platform.h</a>
+</li>
+<li>GPR_INT64_MAX
+: <a class="el" href="port__platform_8h.html#aaff7a6a2f0868f8b0648b74828ef0e4f">port_platform.h</a>
+</li>
+<li>GPR_INTERNAL_HEXDIGIT_BITCOUNT
+: <a class="el" href="useful_8h.html#a601e1be692fe7922b52991a5d410b945">useful.h</a>
+</li>
+<li>gpr_intmax
+: <a class="el" href="port__platform_8h.html#a3ecb17ae580dbde63199ac206a732139">port_platform.h</a>
+</li>
+<li>gpr_intptr
+: <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">port_platform.h</a>
+</li>
+<li>gpr_join_host_port()
+: <a class="el" href="host__port_8h.html#a75d6ea0faeed039dc132873afce91508">host_port.h</a>
+</li>
+<li>gpr_log()
+: <a class="el" href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">log.h</a>
+</li>
+<li>gpr_log_func
+: <a class="el" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">log.h</a>
+</li>
+<li>gpr_log_message()
+: <a class="el" href="log_8h.html#a7a3d59528754f8fbcfe54f6f8a72ec61">log.h</a>
+</li>
+<li>gpr_log_severity
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">log.h</a>
+</li>
+<li>GPR_LOG_SEVERITY_DEBUG
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">log.h</a>
+</li>
+<li>GPR_LOG_SEVERITY_ERROR
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">log.h</a>
+</li>
+<li>GPR_LOG_SEVERITY_INFO
+: <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">log.h</a>
+</li>
+<li>gpr_log_severity_string()
+: <a class="el" href="log_8h.html#a3badccbc5ec4c725eadbc07b8e5706eb">log.h</a>
+</li>
+<li>gpr_malloc()
+: <a class="el" href="alloc_8h.html#af5896bb446b6179f35651730357149bb">alloc.h</a>
+</li>
+<li>gpr_malloc_aligned()
+: <a class="el" href="alloc_8h.html#a73551a6249ae9b0a73ad75733c67ead4">alloc.h</a>
+</li>
+<li>GPR_MAX
+: <a class="el" href="useful_8h.html#af50c518bb1183da84adb7d8a86cd568a">useful.h</a>
+</li>
+<li>GPR_MAX_ALIGNMENT
+: <a class="el" href="port__platform_8h.html#a53c934fa255faf3f8c4f028df105c8e2">port_platform.h</a>
+</li>
+<li>GPR_MIN
+: <a class="el" href="useful_8h.html#a298322c952526928cf8dbc7aaba7b84d">useful.h</a>
+</li>
+<li>GPR_MS_PER_SEC
+: <a class="el" href="time_8h.html#af2c8091db4e2a3133b93131f64db859e">time.h</a>
+</li>
+<li>gpr_mu
+: <a class="el" href="sync__posix_8h.html#aa66fb6a11304ef6759d76f84a34ee28f">sync_posix.h</a>
+</li>
+<li>gpr_mu_destroy()
+: <a class="el" href="sync_8h.html#a52ae2524c7dade8cecb9f01ff4792c9e">sync.h</a>
+</li>
+<li>gpr_mu_init()
+: <a class="el" href="sync_8h.html#a16694f755266c254390b041a0f069094">sync.h</a>
+</li>
+<li>gpr_mu_lock()
+: <a class="el" href="sync_8h.html#a44b385455d169e6c84659adb222c1d42">sync.h</a>
+</li>
+<li>gpr_mu_trylock()
+: <a class="el" href="sync_8h.html#a65a42bb7ca9072b0e7b581d715a8e777">sync.h</a>
+</li>
+<li>gpr_mu_unlock()
+: <a class="el" href="sync_8h.html#a91370fd0eb76bc1323c80815ad6e9cff">sync.h</a>
+</li>
+<li>gpr_now()
+: <a class="el" href="time_8h.html#adf5debcac2bc854e733ca2dec2a1ff19">time.h</a>
+</li>
+<li>GPR_NS_PER_MS
+: <a class="el" href="time_8h.html#a3c63ee76f91a122abf3a0806b64318eb">time.h</a>
+</li>
+<li>GPR_NS_PER_SEC
+: <a class="el" href="time_8h.html#a447d0913b0cfdc943df51585f0e2785e">time.h</a>
+</li>
+<li>GPR_NS_PER_US
+: <a class="el" href="time_8h.html#adc295bf07c72edae8a2ad49e24da2f32">time.h</a>
+</li>
+<li>gpr_once
+: <a class="el" href="sync__posix_8h.html#a28731dc17a4158343f58f453a4d5e37f">sync_posix.h</a>
+, <a class="el" href="sync__win32_8h.html#a6a752a459fe345c616c26b5a556ccc13">sync_win32.h</a>
+</li>
+<li>gpr_once_init()
+: <a class="el" href="sync_8h.html#ad5c88872723a129b09200b1892d2323f">sync.h</a>
+</li>
+<li>GPR_ONCE_INIT
+: <a class="el" href="sync__posix_8h.html#a8edd7eb4f6860a4f79defbad49c35666">sync_posix.h</a>
+, <a class="el" href="sync__win32_8h.html#a8edd7eb4f6860a4f79defbad49c35666">sync_win32.h</a>
+</li>
+<li>GPR_PLATFORM_STRING
+: <a class="el" href="port__platform_8h.html#a99f34e9b119908109486e91abedc933e">port_platform.h</a>
+</li>
+<li>gpr_realloc()
+: <a class="el" href="alloc_8h.html#a25d9a067b093e9c76dbbd77995b1bc91">alloc.h</a>
+</li>
+<li>gpr_ref()
+: <a class="el" href="sync_8h.html#ac0e52c6bfc7a04ba8a269f3227104571">sync.h</a>
+</li>
+<li>gpr_ref_init()
+: <a class="el" href="sync_8h.html#a235584f36572b5410b042ee63cb0740b">sync.h</a>
+</li>
+<li>gpr_refn()
+: <a class="el" href="sync_8h.html#a516e26b66b1aa53fba8f5f52b249cb25">sync.h</a>
+</li>
+<li>GPR_ROTL
+: <a class="el" href="useful_8h.html#a6f7a8aba8e044f6b20fc8a7560f28f85">useful.h</a>
+</li>
+<li>GPR_ROTR
+: <a class="el" href="useful_8h.html#a5ff4b278972e799dc134963a0249f316">useful.h</a>
+</li>
+<li>gpr_set_log_function()
+: <a class="el" href="log_8h.html#a75771a41e3bb2831df8043a57de05330">log.h</a>
+</li>
+<li>gpr_sleep_until()
+: <a class="el" href="time_8h.html#ad037af8b7288a3f2e5ce46d3e3ca50d7">time.h</a>
+</li>
+<li>gpr_slice
+: <a class="el" href="slice_8h.html#a91fe16db371db7c53d6e3adc90a6678c">slice.h</a>
+</li>
+<li>gpr_slice_buffer_add()
+: <a class="el" href="slice__buffer_8h.html#a8fd6443c77c7602be19b9152355a8e12">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_add_indexed()
+: <a class="el" href="slice__buffer_8h.html#acd745eec745573eeace3861da3e2c045">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_addn()
+: <a class="el" href="slice__buffer_8h.html#a615be732e655de9980c321eb075e4a46">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_destroy()
+: <a class="el" href="slice__buffer_8h.html#a60c8b437918c3a81651b5f9a892f6399">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_init()
+: <a class="el" href="slice__buffer_8h.html#aab5ed508480703c7b856e92ef6d7e4c8">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_move_into()
+: <a class="el" href="slice__buffer_8h.html#a0289912040151750bbee19ba632a88f1">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_pop()
+: <a class="el" href="slice__buffer_8h.html#ae3bd1bc560aad5b69a6ef0b09286cc79">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_reset_and_unref()
+: <a class="el" href="slice__buffer_8h.html#aa2819a201e9dcf62e31a6dbfc6fe3010">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_swap()
+: <a class="el" href="slice__buffer_8h.html#a672b80e16cdabf26c7b558a54edfcd2d">slice_buffer.h</a>
+</li>
+<li>gpr_slice_buffer_tiny_add()
+: <a class="el" href="slice__buffer_8h.html#a223fc0bf1beb3866aee902dea0a599c0">slice_buffer.h</a>
+</li>
+<li>gpr_slice_cmp()
+: <a class="el" href="slice_8h.html#add3c8736c46bea7517991f178c82ba3c">slice.h</a>
+</li>
+<li>GPR_SLICE_END_PTR
+: <a class="el" href="slice_8h.html#a9b7e9acd0eb92039a9bc897712a62a14">slice.h</a>
+</li>
+<li>gpr_slice_from_copied_buffer()
+: <a class="el" href="slice_8h.html#a83e8110a7a98132963f01eb9c7f7418e">slice.h</a>
+</li>
+<li>gpr_slice_from_copied_string()
+: <a class="el" href="slice_8h.html#adf4df32e55b1b09d3f11c39447dcc68b">slice.h</a>
+</li>
+<li>GPR_SLICE_INLINED_SIZE
+: <a class="el" href="slice_8h.html#a4063c3d8d4820472a4cf2655dd662a31">slice.h</a>
+</li>
+<li>GPR_SLICE_IS_EMPTY
+: <a class="el" href="slice_8h.html#ad4fe3efa7a8938045ce79271d79f79ef">slice.h</a>
+</li>
+<li>GPR_SLICE_LENGTH
+: <a class="el" href="slice_8h.html#ae97c2f992c1ebccaf44ceeee1f9fdabb">slice.h</a>
+</li>
+<li>gpr_slice_malloc()
+: <a class="el" href="slice_8h.html#ab57463740ccedc00b50721dce66ebd7b">slice.h</a>
+</li>
+<li>gpr_slice_new()
+: <a class="el" href="slice_8h.html#aea43587a11bfe2e06fb8532035229bb2">slice.h</a>
+</li>
+<li>gpr_slice_new_with_len()
+: <a class="el" href="slice_8h.html#affd1fef2ffaca67e0b2e7b60923da812">slice.h</a>
+</li>
+<li>gpr_slice_ref()
+: <a class="el" href="slice_8h.html#ad28a2bcca348046cbe660a44180e75ca">slice.h</a>
+</li>
+<li>gpr_slice_refcount
+: <a class="el" href="slice_8h.html#af8841873e741f6cf38b2192147ea4f3e">slice.h</a>
+</li>
+<li>GPR_SLICE_SET_LENGTH
+: <a class="el" href="slice_8h.html#a1f5333a1260aef2efe086d4e2188e613">slice.h</a>
+</li>
+<li>gpr_slice_split_head()
+: <a class="el" href="slice_8h.html#a842ea6b4a9ab4d0d3becd6fda03bbc24">slice.h</a>
+</li>
+<li>gpr_slice_split_tail()
+: <a class="el" href="slice_8h.html#a51315f2a9217a1d42711f48bfec9d39e">slice.h</a>
+</li>
+<li>GPR_SLICE_START_PTR
+: <a class="el" href="slice_8h.html#ab8258afc3398c1426974b0b48dbf5a15">slice.h</a>
+</li>
+<li>gpr_slice_str_cmp()
+: <a class="el" href="slice_8h.html#aef752203db50c932010a74c6845872c2">slice.h</a>
+</li>
+<li>gpr_slice_sub()
+: <a class="el" href="slice_8h.html#ac9d4e6e264e22c6c6d3748f522da91eb">slice.h</a>
+</li>
+<li>gpr_slice_sub_no_ref()
+: <a class="el" href="slice_8h.html#accf08ddad530a5f1cca82c834dc70965">slice.h</a>
+</li>
+<li>gpr_slice_unref()
+: <a class="el" href="slice_8h.html#a024429b0dd15e43a09e48e35ca8810d7">slice.h</a>
+</li>
+<li>gpr_split_host_port()
+: <a class="el" href="host__port_8h.html#aacb0efdff2bb1b15d5e7edeb62ae4aea">host_port.h</a>
+</li>
+<li>gpr_stats_inc()
+: <a class="el" href="sync_8h.html#a8e51ec3b46c7c03602e2279a802daa1c">sync.h</a>
+</li>
+<li>gpr_stats_init()
+: <a class="el" href="sync_8h.html#a76b8e5de6e1baa4fd66c014417dc0a30">sync.h</a>
+</li>
+<li>GPR_STATS_INIT
+: <a class="el" href="sync__generic_8h.html#ada230498c8e2aca51e9349709e70e1ef">sync_generic.h</a>
+</li>
+<li>gpr_stats_read()
+: <a class="el" href="sync_8h.html#abb2c58da7d0b785887266b3b1890764d">sync.h</a>
+</li>
+<li>gpr_strdup()
+: <a class="el" href="string__util_8h.html#a7a021bce444344f0a96cb022038eed93">string_util.h</a>
+</li>
+<li>gpr_subprocess
+: <a class="el" href="subprocess_8h.html#a1c3492c3aef738e6eef6b8cb1b435095">subprocess.h</a>
+</li>
+<li>gpr_subprocess_binary_extension()
+: <a class="el" href="subprocess_8h.html#a6d393aed4f99f9ba49286715c5da8fd3">subprocess.h</a>
+</li>
+<li>gpr_subprocess_create()
+: <a class="el" href="subprocess_8h.html#a761755433d8809a68024b03176341242">subprocess.h</a>
+</li>
+<li>gpr_subprocess_destroy()
+: <a class="el" href="subprocess_8h.html#a880657b78894ae66b9c5d7416ee7839b">subprocess.h</a>
+</li>
+<li>gpr_subprocess_interrupt()
+: <a class="el" href="subprocess_8h.html#aee2ddbe0e8a58271a6a9a3cf451dd67d">subprocess.h</a>
+</li>
+<li>gpr_subprocess_join()
+: <a class="el" href="subprocess_8h.html#ac5c4e7eccc737f473dd73a1fb502f0d5">subprocess.h</a>
+</li>
+<li>GPR_SWAP
+: <a class="el" href="useful_8h.html#a9f884f8218a97ed9739e2dac467f0719">useful.h</a>
+</li>
+<li>gpr_thd_currentid()
+: <a class="el" href="thd_8h.html#a8c875ae5410d10d658cfb7b917909624">thd.h</a>
+</li>
+<li>gpr_thd_id
+: <a class="el" href="thd_8h.html#a04194350e2fb18edc439ab0a9d355a72">thd.h</a>
+</li>
+<li>gpr_thd_join()
+: <a class="el" href="thd_8h.html#a73509f851051b4d5f02ca1982d216776">thd.h</a>
+</li>
+<li>gpr_thd_new()
+: <a class="el" href="thd_8h.html#a9184cf0e025d8a9b098af6c08755b8ea">thd.h</a>
+</li>
+<li>gpr_thd_options_default()
+: <a class="el" href="thd_8h.html#abf8bb34ba7d26ddab0696e24b1fcc862">thd.h</a>
+</li>
+<li>gpr_thd_options_is_detached()
+: <a class="el" href="thd_8h.html#a1647c2e991d269cdaf146dc33f61ce89">thd.h</a>
+</li>
+<li>gpr_thd_options_is_joinable()
+: <a class="el" href="thd_8h.html#afb8d6ad4dcc8ebcdb6a786e8f4ef442b">thd.h</a>
+</li>
+<li>gpr_thd_options_set_detached()
+: <a class="el" href="thd_8h.html#a704882e5c65d29c817fae9173085e5ba">thd.h</a>
+</li>
+<li>gpr_thd_options_set_joinable()
+: <a class="el" href="thd_8h.html#a87ad3ff4d439450ae1318151c1526745">thd.h</a>
+</li>
+<li>gpr_time_0()
+: <a class="el" href="time_8h.html#a4f552f0628cc389dfbe3674a1a978108">time.h</a>
+</li>
+<li>gpr_time_add()
+: <a class="el" href="time_8h.html#a6f2c6fbc9fef45d74670c446e2bad004">time.h</a>
+</li>
+<li>gpr_time_cmp()
+: <a class="el" href="time_8h.html#aeb10778e9b7c1dd7e6c47099d55f0fa0">time.h</a>
+</li>
+<li>gpr_time_from_hours()
+: <a class="el" href="time_8h.html#af7a9aca2af5348cbb8dc835853dc2756">time.h</a>
+</li>
+<li>gpr_time_from_micros()
+: <a class="el" href="time_8h.html#a79956c6fba5b660aeee24b09ae026d6c">time.h</a>
+</li>
+<li>gpr_time_from_millis()
+: <a class="el" href="time_8h.html#a491cdb7a2d2da81c337ed4c8c6a24946">time.h</a>
+</li>
+<li>gpr_time_from_minutes()
+: <a class="el" href="time_8h.html#ad2ae89810eabe8c224b15a4ae0991eba">time.h</a>
+</li>
+<li>gpr_time_from_nanos()
+: <a class="el" href="time_8h.html#a16f57f7df5d09bfc38e8b8fcd323e50a">time.h</a>
+</li>
+<li>gpr_time_from_seconds()
+: <a class="el" href="time_8h.html#a4bc0bd3df3e9537035fc2b8675f01916">time.h</a>
+</li>
+<li>gpr_time_init()
+: <a class="el" href="time_8h.html#a2a3da26a2eb15fcd312f1b8ef00cad56">time.h</a>
+</li>
+<li>gpr_time_max()
+: <a class="el" href="time_8h.html#a4e1c94c1e488381e9f01d4318c2a45d8">time.h</a>
+</li>
+<li>gpr_time_min()
+: <a class="el" href="time_8h.html#af15f574932e56662f57bd3573e3cc469">time.h</a>
+</li>
+<li>gpr_time_similar()
+: <a class="el" href="time_8h.html#a914f666c6cfe709650d96c986600de15">time.h</a>
+</li>
+<li>gpr_time_sub()
+: <a class="el" href="time_8h.html#a1eaf8db9ee9e94bd4af005f1049f967a">time.h</a>
+</li>
+<li>gpr_time_to_millis()
+: <a class="el" href="time_8h.html#aebea7c2faef2e16b802a5e9ae1f3b7df">time.h</a>
+</li>
+<li>GPR_TIMESPAN
+: <a class="el" href="time_8h.html#a2441bd1fbe80e86ff741e0757725b281a52f75e587240b7b44d3b8bc7fb3d5741">time.h</a>
+</li>
+<li>gpr_timespec
+: <a class="el" href="time_8h.html#a7dd12c72fcf53ebecfdfc13632914c45">time.h</a>
+</li>
+<li>gpr_timespec_to_micros()
+: <a class="el" href="time_8h.html#a1704f2028070b3c92bd5420864458bac">time.h</a>
+</li>
+<li>GPR_TLS_DECL
+: <a class="el" href="tls__gcc_8h.html#ab2c3baa4e4ceb366668aaf51379340fd">tls_gcc.h</a>
+, <a class="el" href="tls__msvc_8h.html#ab2c3baa4e4ceb366668aaf51379340fd">tls_msvc.h</a>
+, <a class="el" href="tls__pthread_8h.html#ab2c3baa4e4ceb366668aaf51379340fd">tls_pthread.h</a>
+</li>
+<li>gpr_tls_destroy
+: <a class="el" href="tls__gcc_8h.html#a187108e1078d2ce05388cb17bc59ce74">tls_gcc.h</a>
+, <a class="el" href="tls__msvc_8h.html#a187108e1078d2ce05388cb17bc59ce74">tls_msvc.h</a>
+, <a class="el" href="tls__pthread_8h.html#a187108e1078d2ce05388cb17bc59ce74">tls_pthread.h</a>
+</li>
+<li>gpr_tls_get
+: <a class="el" href="tls__gcc_8h.html#a9aa9e55eddbe7fed424526c23e1b55a3">tls_gcc.h</a>
+, <a class="el" href="tls__msvc_8h.html#a9aa9e55eddbe7fed424526c23e1b55a3">tls_msvc.h</a>
+, <a class="el" href="tls__pthread_8h.html#a9aa9e55eddbe7fed424526c23e1b55a3">tls_pthread.h</a>
+</li>
+<li>gpr_tls_init
+: <a class="el" href="tls__gcc_8h.html#a43768a42ff705cc028b4a483dc3b65c5">tls_gcc.h</a>
+, <a class="el" href="tls__msvc_8h.html#a43768a42ff705cc028b4a483dc3b65c5">tls_msvc.h</a>
+, <a class="el" href="tls__pthread_8h.html#a43768a42ff705cc028b4a483dc3b65c5">tls_pthread.h</a>
+</li>
+<li>gpr_tls_set
+: <a class="el" href="tls__msvc_8h.html#aa8f01b3e40178b80d098650f42c529e7">tls_msvc.h</a>
+, <a class="el" href="tls__gcc_8h.html#aa8f01b3e40178b80d098650f42c529e7">tls_gcc.h</a>
+, <a class="el" href="tls__pthread_8h.html#a02e97731a7a6668a2cb73a7e791e93ea">tls_pthread.h</a>
+</li>
+<li>gpr_uint16
+: <a class="el" href="port__platform_8h.html#abb7bceac4325643af77af51c7b6af371">port_platform.h</a>
+</li>
+<li>gpr_uint32
+: <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">port_platform.h</a>
+</li>
+<li>gpr_uint64
+: <a class="el" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">port_platform.h</a>
+</li>
+<li>gpr_uint8
+: <a class="el" href="port__platform_8h.html#aeeb41e29e7c7a916a4e0fb6cfb9f92e0">port_platform.h</a>
+</li>
+<li>gpr_uintmax
+: <a class="el" href="port__platform_8h.html#abee5d576e1d284a7c8135df7d89af0f7">port_platform.h</a>
+</li>
+<li>gpr_uintptr
+: <a class="el" href="port__platform_8h.html#ab302f9bfe3be467072bd8c79847636d4">port_platform.h</a>
+</li>
+<li>gpr_unref()
+: <a class="el" href="sync_8h.html#a76b570c831b14070c37e708dde91b795">sync.h</a>
+</li>
+<li>GPR_US_PER_MS
+: <a class="el" href="time_8h.html#a33dba9a222266cf2270c9b09c1f64336">time.h</a>
+</li>
+<li>GPR_US_PER_SEC
+: <a class="el" href="time_8h.html#a48433e202646afa00d9694585b05b9e3">time.h</a>
+</li>
+<li>grpc_access_token_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a7ef8e179bb5d15c81dfd363924db0041">grpc_security.h</a>
+</li>
+<li>GRPC_ARG_DEFAULT_AUTHORITY
+: <a class="el" href="grpc_8h.html#add42f97666fbfc66b7dac253ac3b73ae">grpc.h</a>
+</li>
+<li>GRPC_ARG_ENABLE_CENSUS
+: <a class="el" href="grpc_8h.html#ae498934a02de89ce29cec570b02a2037">grpc.h</a>
+</li>
+<li>GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER
+: <a class="el" href="grpc_8h.html#aecc45a63163796ca1bc5453938bdfb36">grpc.h</a>
+</li>
+<li>GRPC_ARG_INTEGER
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689">grpc.h</a>
+</li>
+<li>GRPC_ARG_MAX_CONCURRENT_STREAMS
+: <a class="el" href="grpc_8h.html#a5bb9256d0b457cab219f4d9d765148b6">grpc.h</a>
+</li>
+<li>GRPC_ARG_MAX_MESSAGE_LENGTH
+: <a class="el" href="grpc_8h.html#a50f37feb7c000a23b3b0edf4c31d4367">grpc.h</a>
+</li>
+<li>GRPC_ARG_POINTER
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b">grpc.h</a>
+</li>
+<li>GRPC_ARG_PRIMARY_USER_AGENT_STRING
+: <a class="el" href="grpc_8h.html#a0732df2d9003e9ee1c01e50e41b5a8e2">grpc.h</a>
+</li>
+<li>GRPC_ARG_SECONDARY_USER_AGENT_STRING
+: <a class="el" href="grpc_8h.html#af47b4048c11e4f8f4162f12c135c2da4">grpc.h</a>
+</li>
+<li>GRPC_ARG_STRING
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d">grpc.h</a>
+</li>
+<li>grpc_arg_type
+: <a class="el" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">grpc.h</a>
+</li>
+<li>grpc_auth_context
+: <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_find_properties_by_name()
+: <a class="el" href="grpc__security_8h.html#a5298ac64614986581fc314f63fa9afd7">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_peer_identity()
+: <a class="el" href="grpc__security_8h.html#a144c6f3a56c8592489b3978e0c5caced">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_peer_identity_property_name()
+: <a class="el" href="grpc__security_8h.html#ac05022ccd5b972ba089950437727ff23">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_peer_is_authenticated()
+: <a class="el" href="grpc__security_8h.html#af33fe6681dedb389edbf708020680093">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_property_iterator()
+: <a class="el" href="grpc__security_8h.html#aaad9fed074f7aebed63ed075bb6ff780">grpc_security.h</a>
+</li>
+<li>grpc_auth_context_release()
+: <a class="el" href="grpc__security_8h.html#a2eea99f76030b21ad58afdf615f4d2b9">grpc_security.h</a>
+</li>
+<li>grpc_auth_property
+: <a class="el" href="grpc__security_8h.html#a010fe7d27deaa2ea50b765b48dbad429">grpc_security.h</a>
+</li>
+<li>grpc_auth_property_iterator
+: <a class="el" href="grpc__security_8h.html#a26981fdcb987d885b25d34c7dc66e4cf">grpc_security.h</a>
+</li>
+<li>grpc_auth_property_iterator_next()
+: <a class="el" href="grpc__security_8h.html#ac20e3890d5e5e0de6ae6b5cb57cae1ae">grpc_security.h</a>
+</li>
+<li>GRPC_BB_RAW
+: <a class="el" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer
+: <a class="el" href="byte__buffer_8h.html#a670951ae03b0a2dc4e50f4e25160fc2e">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_copy()
+: <a class="el" href="byte__buffer_8h.html#aac8a5605c5de93a78da7e8ca06a80efb">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_destroy()
+: <a class="el" href="byte__buffer_8h.html#a5a9ccea69a6ba41d34a6985837fd88f5">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_length()
+: <a class="el" href="byte__buffer_8h.html#a61b6ac03d6a50664786e45d616ba435d">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader
+: <a class="el" href="byte__buffer_8h.html#a16143f22ea46cc7fa6b53e6cb30715f1">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader_destroy()
+: <a class="el" href="byte__buffer_8h.html#aed5f40a76941741b7672c14f15be0778">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader_init()
+: <a class="el" href="byte__buffer_8h.html#a71016674849f4f57c1a4319d7964d268">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader_next()
+: <a class="el" href="byte__buffer_8h.html#aff713900a0177997a0be49a40781bcc9">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_type
+: <a class="el" href="byte__buffer_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6">byte_buffer.h</a>
+</li>
+<li>grpc_call
+: <a class="el" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc.h</a>
+</li>
+<li>grpc_call_auth_context()
+: <a class="el" href="grpc__security_8h.html#a0b439e6d2875c8b5e2e901a959f6a2fe">grpc_security.h</a>
+</li>
+<li>grpc_call_cancel()
+: <a class="el" href="grpc_8h.html#adce32a3168cfc0048423af94a3961878">grpc.h</a>
+</li>
+<li>grpc_call_cancel_with_status()
+: <a class="el" href="grpc_8h.html#a8332e3ac6611ae4012ed17707d7dbcf2">grpc.h</a>
+</li>
+<li>grpc_call_destroy()
+: <a class="el" href="grpc_8h.html#a3edbb9347e32fd0152c8ed4bbbaf5125">grpc.h</a>
+</li>
+<li>grpc_call_details_destroy()
+: <a class="el" href="grpc_8h.html#a436819189c9155a0761db7667f9078f9">grpc.h</a>
+</li>
+<li>grpc_call_details_init()
+: <a class="el" href="grpc_8h.html#a29fa3bfb0a561ba465260154a4ef3bb5">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41">grpc.h</a>
+</li>
+<li>grpc_call_error
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_ALREADY_ACCEPTED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_ALREADY_FINISHED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_ALREADY_INVOKED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_INVALID_FLAGS
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_INVALID_METADATA
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_INVOKED
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_ON_CLIENT
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_ON_SERVER
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f">grpc.h</a>
+</li>
+<li>GRPC_CALL_ERROR_TOO_MANY_OPERATIONS
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454">grpc.h</a>
+</li>
+<li>grpc_call_get_peer()
+: <a class="el" href="grpc_8h.html#adf4ac8b78da7b957ce05dc0f62719ada">grpc.h</a>
+</li>
+<li>GRPC_CALL_OK
+: <a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8">grpc.h</a>
+</li>
+<li>grpc_call_set_credentials()
+: <a class="el" href="grpc__security_8h.html#a56de54ae2563e67e236c10e8fa419f60">grpc_security.h</a>
+</li>
+<li>grpc_call_start_batch()
+: <a class="el" href="grpc_8h.html#ae0e60993c9d6e5ceccaf2e61f690b101">grpc.h</a>
+</li>
+<li>grpc_census_call_get_context()
+: <a class="el" href="grpc_8h.html#a0f2c6a97262a251d18b76ad470af0e66">grpc.h</a>
+</li>
+<li>grpc_census_call_set_context()
+: <a class="el" href="grpc_8h.html#a9d5bbdac3a9068747ef3639c4e52af9a">grpc.h</a>
+</li>
+<li>grpc_channel
+: <a class="el" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc.h</a>
+</li>
+<li>grpc_channel_check_connectivity_state()
+: <a class="el" href="grpc_8h.html#a9623d8e4df1d17eb26b67d905f1d7cb3">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_CONNECTING
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299">grpc.h</a>
+</li>
+<li>grpc_channel_create_call()
+: <a class="el" href="grpc_8h.html#a368ca2e4f76495c3c4bfbb27eb88936e">grpc.h</a>
+</li>
+<li>grpc_channel_create_registered_call()
+: <a class="el" href="grpc_8h.html#a38aa45cdbc3d9a9529bcb6ee8b2c68aa">grpc.h</a>
+</li>
+<li>grpc_channel_destroy()
+: <a class="el" href="grpc_8h.html#a16e4b95581ad12e8e0af2af8d41b71b3">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_FATAL_FAILURE
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6">grpc.h</a>
+</li>
+<li>grpc_channel_get_target()
+: <a class="el" href="grpc_8h.html#a108ef86bc0e5ebcb05f744315e2a6499">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_IDLE
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_READY
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">grpc.h</a>
+</li>
+<li>grpc_channel_register_call()
+: <a class="el" href="grpc_8h.html#af00855f27d8b7c6b232982446371c04d">grpc.h</a>
+</li>
+<li>GRPC_CHANNEL_TRANSIENT_FAILURE
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6">grpc.h</a>
+</li>
+<li>grpc_channel_watch_connectivity_state()
+: <a class="el" href="grpc_8h.html#a29aa98ca6ce9f7e5116e43b0c414e96b">grpc.h</a>
+</li>
+<li>grpc_completion_queue
+: <a class="el" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc.h</a>
+</li>
+<li>grpc_completion_queue_create()
+: <a class="el" href="grpc_8h.html#a9f69c76c26125e6581491864a06ea44a">grpc.h</a>
+</li>
+<li>grpc_completion_queue_destroy()
+: <a class="el" href="grpc_8h.html#a629a77a358721f1a3bbb8fef34c3996e">grpc.h</a>
+</li>
+<li>grpc_completion_queue_next()
+: <a class="el" href="grpc_8h.html#a56a4ff1f046393205c3418c24f5d5587">grpc.h</a>
+</li>
+<li>grpc_completion_queue_pluck()
+: <a class="el" href="grpc_8h.html#a21e38dd0146d244eb0e262fd1b6a50ee">grpc.h</a>
+</li>
+<li>grpc_completion_queue_shutdown()
+: <a class="el" href="grpc_8h.html#a4051b4036c5132f02064430f67420ecd">grpc.h</a>
+</li>
+<li>grpc_completion_type
+: <a class="el" href="grpc_8h.html#a70454b2958c92c1cd8feeaa45f157b74">grpc.h</a>
+</li>
+<li>grpc_composite_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a4f65f01fb23e963cc88bcdfbede70da7">grpc_security.h</a>
+</li>
+<li>GRPC_COMPRESS_ALGORITHMS_COUNT
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a94d7fc0a8e4a05546d462d53c2b53b8d">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_DEFLATE
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a50de256d5abe80daff7e1372e29dd913">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_GZIP
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a5a134ced82d8682b55b99b8e9386555e">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_COUNT
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a893b24fb0986e61ebda069c713b8bd43">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_HIGH
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a501a0cf15300a90c09a3d8b4f7f43d22">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_LOW
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7afd436e21be4f897ca939b3b4d9a44673">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_MED
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7a4319a32cdd0b59a7ecc977f8612214ce">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_LEVEL_NONE
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7ab67efe04f58b0939b963e51a5b8f772c">compression.h</a>
+</li>
+<li>GRPC_COMPRESS_NONE
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9a3135cac7e854adb16358c53e97df9cd8">compression.h</a>
+</li>
+<li>grpc_compression_algorithm
+: <a class="el" href="compression_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">compression.h</a>
+</li>
+<li>GRPC_COMPRESSION_ALGORITHM_ARG
+: <a class="el" href="compression_8h.html#a9340488e193921e62bb1f240f9016a9b">compression.h</a>
+</li>
+<li>grpc_compression_algorithm_for_level()
+: <a class="el" href="compression_8h.html#a382cce802b53a6f85deb706caf1dccd6">compression.h</a>
+</li>
+<li>grpc_compression_algorithm_name()
+: <a class="el" href="compression_8h.html#adce0341ab8fd560dc39e9e96daf7cb14">compression.h</a>
+</li>
+<li>grpc_compression_algorithm_parse()
+: <a class="el" href="compression_8h.html#a996f65ae42d05dd7ef9da9c6d6586397">compression.h</a>
+</li>
+<li>grpc_compression_level
+: <a class="el" href="compression_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">compression.h</a>
+</li>
+<li>grpc_compression_level_for_algorithm()
+: <a class="el" href="compression_8h.html#ace80040d9c2a916ddd4d2f2d2ec44dba">compression.h</a>
+</li>
+<li>grpc_compute_engine_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a3beb3fe683139856e1a13c27d760eb95">grpc_security.h</a>
+</li>
+<li>grpc_connectivity_state
+: <a class="el" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc.h</a>
+</li>
+<li>grpc_credentials
+: <a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_security.h</a>
+</li>
+<li>grpc_credentials_release()
+: <a class="el" href="grpc__security_8h.html#a6c01e107d41e964458fdf701b8b81440">grpc_security.h</a>
+</li>
+<li>GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR
+: <a class="el" href="grpc__security_8h.html#a48565da473b7c82fa2453798f620fd59">grpc_security.h</a>
+</li>
+<li>grpc_event
+: <a class="el" href="grpc_8h.html#a07990645ca218f6965fd83edf3f421b7">grpc.h</a>
+</li>
+<li>GRPC_GOOGLE_CREDENTIALS_ENV_VAR
+: <a class="el" href="grpc__security_8h.html#a3874f70577fc9fe15fd2c4ce68a36ecd">grpc_security.h</a>
+</li>
+<li>grpc_google_default_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a5e3fb8f208c302245a1392c7ef16d170">grpc_security.h</a>
+</li>
+<li>grpc_iam_credentials_create()
+: <a class="el" href="grpc__security_8h.html#ae42c358e718847c988aa690cb0fccab3">grpc_security.h</a>
+</li>
+<li>grpc_init()
+: <a class="el" href="grpc_8h.html#aa78606c93951c49eadd8d83d739798d6">grpc.h</a>
+</li>
+<li>grpc_insecure_channel_create()
+: <a class="el" href="grpc_8h.html#aa710e7e68b23098900f924cf69797496">grpc.h</a>
+</li>
+<li>grpc_lame_client_channel_create()
+: <a class="el" href="grpc_8h.html#acd59697f4b8bedea662939da3668ab9b">grpc.h</a>
+</li>
+<li>grpc_max_auth_token_lifetime
+: <a class="el" href="grpc__security_8h.html#a6112c5b60b1c0197531f80fdc56f7772">grpc_security.h</a>
+</li>
+<li>grpc_metadata
+: <a class="el" href="grpc_8h.html#a1da84eaead787d991c5a0c87aed7c30b">grpc.h</a>
+</li>
+<li>grpc_metadata_array_destroy()
+: <a class="el" href="grpc_8h.html#aad125726d8b689cc5fc1a0444c91ed44">grpc.h</a>
+</li>
+<li>grpc_metadata_array_init()
+: <a class="el" href="grpc_8h.html#a52cfda44034115720a0e88037dedbfb5">grpc.h</a>
+</li>
+<li>GRPC_MUST_USE_RESULT
+: <a class="el" href="port__platform_8h.html#aef49047a3be38448a61332117b306686">port_platform.h</a>
+</li>
+<li>grpc_op
+: <a class="el" href="grpc_8h.html#a6556a58ca45ad5132b89c770cf875215">grpc.h</a>
+</li>
+<li>GRPC_OP_COMPLETE
+: <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_CLOSE_ON_SERVER
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_INITIAL_METADATA
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_MESSAGE
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5">grpc.h</a>
+</li>
+<li>GRPC_OP_RECV_STATUS_ON_CLIENT
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_CLOSE_FROM_CLIENT
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_INITIAL_METADATA
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_MESSAGE
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70">grpc.h</a>
+</li>
+<li>GRPC_OP_SEND_STATUS_FROM_SERVER
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64">grpc.h</a>
+</li>
+<li>grpc_op_type
+: <a class="el" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">grpc.h</a>
+</li>
+<li>GRPC_QUEUE_SHUTDOWN
+: <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5">grpc.h</a>
+</li>
+<li>GRPC_QUEUE_TIMEOUT
+: <a class="el" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6">grpc.h</a>
+</li>
+<li>grpc_raw_byte_buffer_create()
+: <a class="el" href="byte__buffer_8h.html#a1aaaa0d8a1609166e0b0bb2b42332618">byte_buffer.h</a>
+</li>
+<li>grpc_raw_byte_buffer_from_reader()
+: <a class="el" href="byte__buffer_8h.html#a9b4f877e32f45e0e704970e89582e0df">byte_buffer.h</a>
+</li>
+<li>grpc_raw_compressed_byte_buffer_create()
+: <a class="el" href="byte__buffer_8h.html#af9801acc1dbfd02b2c51ed9d504cd12b">byte_buffer.h</a>
+</li>
+<li>grpc_refresh_token_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a7a2440ad02b6a96adbd2c6e5d66fd7d2">grpc_security.h</a>
+</li>
+<li>grpc_secure_channel_create()
+: <a class="el" href="grpc__security_8h.html#a4d63d4cac74652ec3fac7782acb4a2d4">grpc_security.h</a>
+</li>
+<li>grpc_server
+: <a class="el" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc.h</a>
+</li>
+<li>grpc_server_add_http2_port()
+: <a class="el" href="grpc_8h.html#a48cab64480658b97a775b2c7837456f9">grpc.h</a>
+</li>
+<li>grpc_server_add_secure_http2_port()
+: <a class="el" href="grpc__security_8h.html#a5d0db200d00b62b79138472dc9b1fe59">grpc_security.h</a>
+</li>
+<li>grpc_server_cancel_all_calls()
+: <a class="el" href="grpc_8h.html#ac5c1e4f3e270a7afbc39403fff0dc803">grpc.h</a>
+</li>
+<li>grpc_server_create()
+: <a class="el" href="grpc_8h.html#a4036710ea12eccabbbbf050d6bad4cd4">grpc.h</a>
+</li>
+<li>grpc_server_credentials
+: <a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_security.h</a>
+</li>
+<li>grpc_server_credentials_release()
+: <a class="el" href="grpc__security_8h.html#a6e9f9320f4f8d2d534d04ed642f032ea">grpc_security.h</a>
+</li>
+<li>grpc_server_destroy()
+: <a class="el" href="grpc_8h.html#a34cba45da7c32a21ac82305d670e4620">grpc.h</a>
+</li>
+<li>grpc_server_register_completion_queue()
+: <a class="el" href="grpc_8h.html#ac174712f87fdae4b5757a1370e2a31cb">grpc.h</a>
+</li>
+<li>grpc_server_register_method()
+: <a class="el" href="grpc_8h.html#a283062a2209f464f234b0e645c6fffb2">grpc.h</a>
+</li>
+<li>grpc_server_request_call()
+: <a class="el" href="grpc_8h.html#a636d8fd8c888ba0a0fefacf8dcab7257">grpc.h</a>
+</li>
+<li>grpc_server_request_registered_call()
+: <a class="el" href="grpc_8h.html#a7207900db3bba2f1ae2e3f2dfc2822de">grpc.h</a>
+</li>
+<li>grpc_server_shutdown_and_notify()
+: <a class="el" href="grpc_8h.html#a56fffa23c1c4bab9a469e2ac607b6db7">grpc.h</a>
+</li>
+<li>grpc_server_start()
+: <a class="el" href="grpc_8h.html#ac5010d26419e14f5a9ab2fa86a4f7d1e">grpc.h</a>
+</li>
+<li>grpc_service_account_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a15aa83608fad085b6244de659d322b27">grpc_security.h</a>
+</li>
+<li>grpc_service_account_jwt_access_credentials_create()
+: <a class="el" href="grpc__security_8h.html#af26993774cc991debd61e4a84ed49187">grpc_security.h</a>
+</li>
+<li>grpc_shutdown()
+: <a class="el" href="grpc_8h.html#af1130720e50ffedd0bb065c84843b032">grpc.h</a>
+</li>
+<li>GRPC_SLICE_BUFFER_INLINE_ELEMENTS
+: <a class="el" href="slice__buffer_8h.html#a81db47a2be0a079aa797cd77f3864809">slice_buffer.h</a>
+</li>
+<li>grpc_ssl_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a0d627ca897718091e4ceca5dce3ef10e">grpc_security.h</a>
+</li>
+<li>grpc_ssl_server_credentials_create()
+: <a class="el" href="grpc__security_8h.html#a3382907a4689c034a6f55bab4d5135b9">grpc_security.h</a>
+</li>
+<li>GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
+: <a class="el" href="grpc__security_8h.html#a218bf55b665134a11baf07ada5980825">grpc_security.h</a>
+</li>
+<li>GRPC_SSL_TRANSPORT_SECURITY_TYPE
+: <a class="el" href="grpc__security_8h.html#a35a35c597b7090b8ac7e2d854c9bcc7a">grpc_security.h</a>
+</li>
+<li>GRPC_STATUS__DO_NOT_USE
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebab924d4c4c646bdb3130162b8e359dd96">status.h</a>
+</li>
+<li>GRPC_STATUS_ABORTED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba3570bc43d5eb08c95a7f4c24c13010d9">status.h</a>
+</li>
+<li>GRPC_STATUS_ALREADY_EXISTS
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebad357565db8655b6635fae96a11c4009b">status.h</a>
+</li>
+<li>GRPC_STATUS_CANCELLED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba30e6e0c37df1389dd4c460a53f831038">status.h</a>
+</li>
+<li>grpc_status_code
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">status.h</a>
+</li>
+<li>GRPC_STATUS_DATA_LOSS
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba275db05856f4af884c48e86440414db7">status.h</a>
+</li>
+<li>GRPC_STATUS_DEADLINE_EXCEEDED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba5451711361db6b8d8e80be30cbb1a208">status.h</a>
+</li>
+<li>GRPC_STATUS_FAILED_PRECONDITION
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba503abd183544b43a83bc01d999adda5f">status.h</a>
+</li>
+<li>GRPC_STATUS_INTERNAL
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebae648dab84c58ef5b1cfeea35867c4520">status.h</a>
+</li>
+<li>GRPC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba3dd64296110db7e7fafb1062b5587731">status.h</a>
+</li>
+<li>GRPC_STATUS_NOT_FOUND
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebafdf14cb6f2da868d76b209ac490c14e2">status.h</a>
+</li>
+<li>GRPC_STATUS_OK
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba9da5601150b267ab5509d151fa7df201">status.h</a>
+</li>
+<li>GRPC_STATUS_OUT_OF_RANGE
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebacd0d05ab2f0af48b0f535c3dd0816d9b">status.h</a>
+</li>
+<li>GRPC_STATUS_PERMISSION_DENIED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba4149925007957bf1a04184d88e8293f4">status.h</a>
+</li>
+<li>GRPC_STATUS_RESOURCE_EXHAUSTED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebab1a76cb91e6992f6f7a31a7fe862e0e9">status.h</a>
+</li>
+<li>GRPC_STATUS_UNAUTHENTICATED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba1a6fd47361ad9298879dd8760ca1a0cb">status.h</a>
+</li>
+<li>GRPC_STATUS_UNAVAILABLE
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108ebaad91b67998cb5df7bc6821e362189e79">status.h</a>
+</li>
+<li>GRPC_STATUS_UNIMPLEMENTED
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba6912537b4dfd1030f50ff2f5448f1bc2">status.h</a>
+</li>
+<li>GRPC_STATUS_UNKNOWN
+: <a class="el" href="status_8h.html#a35ab2a68917eb836de84cb23253108eba5f02c0e431162618ab422d27fd39dd08">status.h</a>
+</li>
+<li>grpc_tracer_set_enabled()
+: <a class="el" href="grpc_8h.html#ae6984d3f0c3b9bc9a47859fd4dddc350">grpc.h</a>
+</li>
+<li>GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME
+: <a class="el" href="grpc__security_8h.html#aff82fdff9e7c40c4dd4bdc650e38e25a">grpc_security.h</a>
+</li>
+<li>grpc_version_string()
+: <a class="el" href="grpc_8h.html#a250ca547d790874bd7b5ceec25f18c51">grpc.h</a>
+</li>
+<li>GRPC_WRITE_BUFFER_HINT
+: <a class="el" href="grpc_8h.html#adf29fd8b7df2ecc47d14a7f5a3a079c0">grpc.h</a>
+</li>
+<li>GRPC_WRITE_NO_COMPRESS
+: <a class="el" href="grpc_8h.html#ae09000181671f031ed0e319ed557da4e">grpc.h</a>
+</li>
+<li>GRPC_WRITE_USED_MASK
+: <a class="el" href="grpc_8h.html#a3317259e1098b2b6f49982d6997bbf6a">grpc.h</a>
+</li>
+<li>GRPC_X509_CN_PROPERTY_NAME
+: <a class="el" href="grpc__security_8h.html#afee5e0fade6e0af1954529f1f08afe0c">grpc_security.h</a>
+</li>
+<li>GRPC_X509_SAN_PROPERTY_NAME
+: <a class="el" href="grpc__security_8h.html#a1412421653b7999544296f56025a0f36">grpc_security.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 243 - 0
core/globals_type.html

@@ -0,0 +1,243 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow4" class="tabs3">
+    <ul class="tablist">
+      <li><a href="#index_c"><span>c</span></a></li>
+      <li class="current"><a href="#index_g"><span>g</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
+<li>census_context
+: <a class="el" href="census_8h.html#a27fc8788690179599713226f1f054736">census.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_g"></a>- g -</h3><ul>
+<li>gpr_atm
+: <a class="el" href="atm__gcc__atomic_8h.html#aa9e4b16c09888debe306f14e8090b1cc">atm_gcc_atomic.h</a>
+, <a class="el" href="atm__gcc__sync_8h.html#aa9e4b16c09888debe306f14e8090b1cc">atm_gcc_sync.h</a>
+, <a class="el" href="atm__win32_8h.html#aa9e4b16c09888debe306f14e8090b1cc">atm_win32.h</a>
+</li>
+<li>gpr_cmdline
+: <a class="el" href="cmdline_8h.html#aaad93cd9bfc32c54fc89f7c2f3b74eb6">cmdline.h</a>
+</li>
+<li>gpr_cv
+: <a class="el" href="sync__posix_8h.html#a1ad613e07180c0459cda9f3f6d881885">sync_posix.h</a>
+, <a class="el" href="sync__win32_8h.html#a81241bed6e85e9b106a1311060a04d9d">sync_win32.h</a>
+</li>
+<li>gpr_histogram
+: <a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">histogram.h</a>
+</li>
+<li>gpr_int16
+: <a class="el" href="port__platform_8h.html#a6c41ac43b02ec37b1e07967a8706e709">port_platform.h</a>
+</li>
+<li>gpr_int32
+: <a class="el" href="port__platform_8h.html#a7c9027ffa98b5efe1767efe79903c6b7">port_platform.h</a>
+</li>
+<li>gpr_int64
+: <a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">port_platform.h</a>
+</li>
+<li>gpr_intmax
+: <a class="el" href="port__platform_8h.html#a3ecb17ae580dbde63199ac206a732139">port_platform.h</a>
+</li>
+<li>gpr_intptr
+: <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">port_platform.h</a>
+</li>
+<li>gpr_log_func
+: <a class="el" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">log.h</a>
+</li>
+<li>gpr_log_severity
+: <a class="el" href="log_8h.html#ad49303346a78cf4881129958214fde8d">log.h</a>
+</li>
+<li>gpr_mu
+: <a class="el" href="sync__posix_8h.html#aa66fb6a11304ef6759d76f84a34ee28f">sync_posix.h</a>
+</li>
+<li>gpr_once
+: <a class="el" href="sync__posix_8h.html#a28731dc17a4158343f58f453a4d5e37f">sync_posix.h</a>
+, <a class="el" href="sync__win32_8h.html#a6a752a459fe345c616c26b5a556ccc13">sync_win32.h</a>
+</li>
+<li>gpr_slice
+: <a class="el" href="slice_8h.html#a91fe16db371db7c53d6e3adc90a6678c">slice.h</a>
+</li>
+<li>gpr_slice_refcount
+: <a class="el" href="slice_8h.html#af8841873e741f6cf38b2192147ea4f3e">slice.h</a>
+</li>
+<li>gpr_subprocess
+: <a class="el" href="subprocess_8h.html#a1c3492c3aef738e6eef6b8cb1b435095">subprocess.h</a>
+</li>
+<li>gpr_thd_id
+: <a class="el" href="thd_8h.html#a04194350e2fb18edc439ab0a9d355a72">thd.h</a>
+</li>
+<li>gpr_timespec
+: <a class="el" href="time_8h.html#a7dd12c72fcf53ebecfdfc13632914c45">time.h</a>
+</li>
+<li>gpr_uint16
+: <a class="el" href="port__platform_8h.html#abb7bceac4325643af77af51c7b6af371">port_platform.h</a>
+</li>
+<li>gpr_uint32
+: <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">port_platform.h</a>
+</li>
+<li>gpr_uint64
+: <a class="el" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">port_platform.h</a>
+</li>
+<li>gpr_uint8
+: <a class="el" href="port__platform_8h.html#aeeb41e29e7c7a916a4e0fb6cfb9f92e0">port_platform.h</a>
+</li>
+<li>gpr_uintmax
+: <a class="el" href="port__platform_8h.html#abee5d576e1d284a7c8135df7d89af0f7">port_platform.h</a>
+</li>
+<li>gpr_uintptr
+: <a class="el" href="port__platform_8h.html#ab302f9bfe3be467072bd8c79847636d4">port_platform.h</a>
+</li>
+<li>grpc_auth_context
+: <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_security.h</a>
+</li>
+<li>grpc_auth_property
+: <a class="el" href="grpc__security_8h.html#a010fe7d27deaa2ea50b765b48dbad429">grpc_security.h</a>
+</li>
+<li>grpc_auth_property_iterator
+: <a class="el" href="grpc__security_8h.html#a26981fdcb987d885b25d34c7dc66e4cf">grpc_security.h</a>
+</li>
+<li>grpc_byte_buffer
+: <a class="el" href="byte__buffer_8h.html#a670951ae03b0a2dc4e50f4e25160fc2e">byte_buffer.h</a>
+</li>
+<li>grpc_byte_buffer_reader
+: <a class="el" href="byte__buffer_8h.html#a16143f22ea46cc7fa6b53e6cb30715f1">byte_buffer.h</a>
+</li>
+<li>grpc_call
+: <a class="el" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc.h</a>
+</li>
+<li>grpc_call_error
+: <a class="el" href="grpc_8h.html#abb51216cb5ac1cfd8ca4d096e060adbb">grpc.h</a>
+</li>
+<li>grpc_channel
+: <a class="el" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc.h</a>
+</li>
+<li>grpc_completion_queue
+: <a class="el" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc.h</a>
+</li>
+<li>grpc_completion_type
+: <a class="el" href="grpc_8h.html#a70454b2958c92c1cd8feeaa45f157b74">grpc.h</a>
+</li>
+<li>grpc_credentials
+: <a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_security.h</a>
+</li>
+<li>grpc_event
+: <a class="el" href="grpc_8h.html#a07990645ca218f6965fd83edf3f421b7">grpc.h</a>
+</li>
+<li>grpc_metadata
+: <a class="el" href="grpc_8h.html#a1da84eaead787d991c5a0c87aed7c30b">grpc.h</a>
+</li>
+<li>grpc_op
+: <a class="el" href="grpc_8h.html#a6556a58ca45ad5132b89c770cf875215">grpc.h</a>
+</li>
+<li>grpc_server
+: <a class="el" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc.h</a>
+</li>
+<li>grpc_server_credentials
+: <a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_security.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 107 - 0
core/globals_vars.html

@@ -0,0 +1,107 @@
+<!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: Globals</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 class="current"><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+  <div id="navrow3" class="tabs2">
+    <ul class="tablist">
+      <li><a href="globals.html"><span>All</span></a></li>
+      <li><a href="globals_func.html"><span>Functions</span></a></li>
+      <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
+      <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+      <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+      <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+      <li><a href="globals_defs.html"><span>Macros</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="contents">
+&#160;<ul>
+<li>grpc_max_auth_token_lifetime
+: <a class="el" href="grpc__security_8h.html#a6112c5b60b1c0197531f80fdc56f7772">grpc_security.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 153 - 0
core/graph_legend.html

@@ -0,0 +1,153 @@
+<!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: Graph Legend</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><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><!-- top -->
+<!-- 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 class="header">
+  <div class="headertitle">
+<div class="title">Graph Legend</div>  </div>
+</div><!--header-->
+<div class="contents">
+<p>This page explains how to interpret the graphs that are generated by doxygen.</p>
+<p>Consider the following example: </p>
+<div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
+<div class="line"><span class="keyword">class </span>Invisible { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
+<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
+<div class="line"></div>
+<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
+<div class="line"><span class="keyword">class </span>Undocumented { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! A template class */</span></div>
+<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
+<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
+<div class="line"><span class="keyword">class </span>Used { };</div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
+<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
+<div class="line">                  <span class="keyword">protected</span> ProtectedBase,</div>
+<div class="line">                  <span class="keyword">private</span> PrivateBase,</div>
+<div class="line">                  <span class="keyword">public</span> Undocumented,</div>
+<div class="line">                  <span class="keyword">public</span> Templ&lt;int&gt;</div>
+<div class="line">{</div>
+<div class="line">  <span class="keyword">private</span>:</div>
+<div class="line">    Used *m_usedClass;</div>
+<div class="line">};</div>
+</div><!-- fragment --><p> This will result in the following graph:</p>
+<center><div class="image">
+<img src="graph_legend.png" />
+</div>
+</center><p>The boxes in the above graph have the following meaning: </p>
+<ul>
+<li>
+A filled gray box represents the struct or class for which the graph is generated. </li>
+<li>
+A box with a black border denotes a documented struct or class. </li>
+<li>
+A box with a grey border denotes an undocumented struct or class. </li>
+<li>
+A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
+</ul>
+<p>The arrows have the following meaning: </p>
+<ul>
+<li>
+A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
+<li>
+A dark green arrow is used for protected inheritance. </li>
+<li>
+A dark red arrow is used for private inheritance. </li>
+<li>
+A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible. </li>
+<li>
+A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance. </li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 1 - 0
core/graph_legend.md5

@@ -0,0 +1 @@
+387ff8eb65306fa251338d3c9bd7bfff

二进制
core/graph_legend.png


+ 1877 - 0
core/grpc_8h.html

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

+ 563 - 0
core/grpc_8h_source.html

@@ -0,0 +1,563 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/grpc.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">grpc.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="grpc_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_GRPC_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_GRPC_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="status_8h.html">grpc/status.h</a>&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="byte__buffer_8h.html">grpc/byte_buffer.h</a>&gt;</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice_8h.html">grpc/support/slice.h</a>&gt;</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="time_8h.html">grpc/support/time.h</a>&gt;</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">   59</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">   62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> <a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a>;</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">   65</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> <a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">   70</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> <a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a>;</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
+<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">   73</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d">   74</a></span>&#160;  <a class="code" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d">GRPC_ARG_STRING</a>,</div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689">   75</a></span>&#160;  <a class="code" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689">GRPC_ARG_INTEGER</a>,</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b">   76</a></span>&#160;  <a class="code" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b">GRPC_ARG_POINTER</a></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;} <a class="code" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">grpc_arg_type</a>;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structgrpc__arg.html">   91</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structgrpc__arg.html#aa26f2d3c4b1649c9eb061d24a8c10fd4">   92</a></span>&#160;  <a class="code" href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">grpc_arg_type</a> <a class="code" href="structgrpc__arg.html#aa26f2d3c4b1649c9eb061d24a8c10fd4">type</a>;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structgrpc__arg.html#aeb230fbd50daacfe654abc3500a44968">   93</a></span>&#160;  <span class="keywordtype">char</span> *<a class="code" href="structgrpc__arg.html#aeb230fbd50daacfe654abc3500a44968">key</a>;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;  <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="structgrpc__arg.html#a05bc3701718db73608ef3598480e8fa8">   95</a></span>&#160;    <span class="keywordtype">char</span> *<a class="code" href="structgrpc__arg.html#a05bc3701718db73608ef3598480e8fa8">string</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="structgrpc__arg.html#a6871bfca9c52e7f56abbd71c81d97554">   96</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structgrpc__arg.html#a6871bfca9c52e7f56abbd71c81d97554">integer</a>;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structgrpc__arg.html#aab5d11432a11b03a53e5d959d9a5328d">   98</a></span>&#160;      <span class="keywordtype">void</span> *<a class="code" href="structgrpc__arg.html#aab5d11432a11b03a53e5d959d9a5328d">p</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structgrpc__arg.html#abef4f8be0109b19fcbe7f614f1243303">   99</a></span>&#160;      <span class="keywordtype">void</span> *(*copy)(<span class="keywordtype">void</span> *p);</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="structgrpc__arg.html#a15c9a748974a6ac525074f3ed1e04eb4">  100</a></span>&#160;      void (*destroy)(<span class="keywordtype">void</span> *p);</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    } pointer;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  } value;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;} <a class="code" href="structgrpc__arg.html">grpc_arg</a>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structgrpc__channel__args.html">  113</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structgrpc__channel__args.html#a41e5d0b22449f062b3a7798dd528afde">  114</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__channel__args.html#a41e5d0b22449f062b3a7798dd528afde">num_args</a>;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structgrpc__channel__args.html#a05aa7aeb14aa9ae5f4d6a34f5c222b76">  115</a></span>&#160;  <a class="code" href="structgrpc__arg.html">grpc_arg</a> *<a class="code" href="structgrpc__channel__args.html#a05aa7aeb14aa9ae5f4d6a34f5c222b76">args</a>;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;} <a class="code" href="structgrpc__channel__args.html">grpc_channel_args</a>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">/* Channel argument keys: */</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="grpc_8h.html#ae498934a02de89ce29cec570b02a2037">  120</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_CENSUS &quot;grpc.census&quot;</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="grpc_8h.html#a5bb9256d0b457cab219f4d9d765148b6">  123</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_CONCURRENT_STREAMS &quot;grpc.max_concurrent_streams&quot;</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="grpc_8h.html#a50f37feb7c000a23b3b0edf4c31d4367">  125</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_MESSAGE_LENGTH &quot;grpc.max_message_length&quot;</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="grpc_8h.html#aecc45a63163796ca1bc5453938bdfb36">  127</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">  &quot;grpc.http2.initial_sequence_number&quot;</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="grpc_8h.html#add42f97666fbfc66b7dac253ac3b73ae">  130</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DEFAULT_AUTHORITY &quot;grpc.default_authority&quot;</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0732df2d9003e9ee1c01e50e41b5a8e2">  133</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_PRIMARY_USER_AGENT_STRING &quot;grpc.primary_user_agent&quot;</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="grpc_8h.html#af47b4048c11e4f8f4162f12c135c2da4">  136</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SECONDARY_USER_AGENT_STRING &quot;grpc.secondary_user_agent&quot;</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">  139</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77">  141</a></span>&#160;  <a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77">GRPC_CHANNEL_IDLE</a>,</div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299">  143</a></span>&#160;  <a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299">GRPC_CHANNEL_CONNECTING</a>,</div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">  145</a></span>&#160;  <a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">GRPC_CHANNEL_READY</a>,</div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6">  147</a></span>&#160;  <a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6">GRPC_CHANNEL_TRANSIENT_FAILURE</a>,</div>
+<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6">  149</a></span>&#160;  <a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6">GRPC_CHANNEL_FATAL_FAILURE</a></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;} <a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a>;</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">  156</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> {</div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8">  158</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8">GRPC_CALL_OK</a> = 0,</div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41">  160</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41">GRPC_CALL_ERROR</a>,</div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8">  162</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8">GRPC_CALL_ERROR_NOT_ON_SERVER</a>,</div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6">  164</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6">GRPC_CALL_ERROR_NOT_ON_CLIENT</a>,</div>
+<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a">  166</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a">GRPC_CALL_ERROR_ALREADY_ACCEPTED</a>,</div>
+<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857">  168</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857">GRPC_CALL_ERROR_ALREADY_INVOKED</a>,</div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296">  170</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296">GRPC_CALL_ERROR_NOT_INVOKED</a>,</div>
+<div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63">  173</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63">GRPC_CALL_ERROR_ALREADY_FINISHED</a>,</div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454">  175</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454">GRPC_CALL_ERROR_TOO_MANY_OPERATIONS</a>,</div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861">  177</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861">GRPC_CALL_ERROR_INVALID_FLAGS</a>,</div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd">  179</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd">GRPC_CALL_ERROR_INVALID_METADATA</a>,</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f">  182</a></span>&#160;  <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f">GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE</a></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;} <a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>;</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">/* Write Flags: */</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="grpc_8h.html#adf29fd8b7df2ecc47d14a7f5a3a079c0">  189</a></span>&#160;<span class="preprocessor">#define GRPC_WRITE_BUFFER_HINT (0x00000001u)</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="grpc_8h.html#ae09000181671f031ed0e319ed557da4e">  192</a></span>&#160;<span class="preprocessor">#define GRPC_WRITE_NO_COMPRESS (0x00000002u)</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="grpc_8h.html#a3317259e1098b2b6f49982d6997bbf6a">  194</a></span>&#160;<span class="preprocessor">#define GRPC_WRITE_USED_MASK (GRPC_WRITE_BUFFER_HINT | GRPC_WRITE_NO_COMPRESS)</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="structgrpc__metadata.html">  197</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__metadata.html">grpc_metadata</a> {</div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="structgrpc__metadata.html#abe93a3d24cd534d9387e05ad1f0b36f7">  198</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgrpc__metadata.html#abe93a3d24cd534d9387e05ad1f0b36f7">key</a>;</div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="structgrpc__metadata.html#a57b63d7b7a3e4720a0cc0d20bb2ecf36">  199</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgrpc__metadata.html#a57b63d7b7a3e4720a0cc0d20bb2ecf36">value</a>;</div>
+<div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="structgrpc__metadata.html#a2084add9ffe64cf337576114d189af3f">  200</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__metadata.html#a2084add9ffe64cf337576114d189af3f">value_length</a>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;  <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structgrpc__metadata.html#ae7478a66f65862018cd89768a578ff4f">  207</a></span>&#160;    <span class="keywordtype">void</span> *<a class="code" href="structgrpc__metadata.html#ae7478a66f65862018cd89768a578ff4f">obfuscated</a>[3];</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  } <a class="code" href="structgrpc__metadata.html#a342799d4f78fcc6dd29ee44f56a6d553">internal_data</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;} <a class="code" href="grpc_8h.html#a1da84eaead787d991c5a0c87aed7c30b">grpc_metadata</a>;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">  212</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a> {</div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5">  214</a></span>&#160;  <a class="code" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5">GRPC_QUEUE_SHUTDOWN</a>,</div>
+<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6">  216</a></span>&#160;  <a class="code" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6">GRPC_QUEUE_TIMEOUT</a>,</div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297">  218</a></span>&#160;  <a class="code" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297">GRPC_OP_COMPLETE</a></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;} <a class="code" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a>;</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structgrpc__event.html">  224</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__event.html">grpc_event</a> {</div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structgrpc__event.html#a8e7f571b759f55db4f6bebc2a4f56ad7">  226</a></span>&#160;  <a class="code" href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a> <a class="code" href="structgrpc__event.html#a8e7f571b759f55db4f6bebc2a4f56ad7">type</a>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structgrpc__event.html#a99d4215e5df50869af320b1cca5540db">  229</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structgrpc__event.html#a99d4215e5df50869af320b1cca5540db">success</a>;</div>
+<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structgrpc__event.html#a883ab15e862db582116c72cdcdc4c201">  232</a></span>&#160;  <span class="keywordtype">void</span> *<a class="code" href="structgrpc__event.html#a883ab15e862db582116c72cdcdc4c201">tag</a>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;} <a class="code" href="grpc_8h.html#a07990645ca218f6965fd83edf3f421b7">grpc_event</a>;</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="structgrpc__metadata__array.html">  235</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structgrpc__metadata__array.html#a314ce51b22a5934cc672f3736d44b9e4">  236</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__metadata__array.html#a314ce51b22a5934cc672f3736d44b9e4">count</a>;</div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structgrpc__metadata__array.html#a5b293b4f8e734b032b80741abf538a97">  237</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__metadata__array.html#a5b293b4f8e734b032b80741abf538a97">capacity</a>;</div>
+<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="structgrpc__metadata__array.html#ac930a0cc901913fafcd09ca9cca156fe">  238</a></span>&#160;  <a class="code" href="structgrpc__metadata.html">grpc_metadata</a> *<a class="code" href="structgrpc__metadata__array.html#ac930a0cc901913fafcd09ca9cca156fe">metadata</a>;</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;} <a class="code" href="structgrpc__metadata__array.html">grpc_metadata_array</a>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a52cfda44034115720a0e88037dedbfb5">grpc_metadata_array_init</a>(<a class="code" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *array);</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#aad125726d8b689cc5fc1a0444c91ed44">grpc_metadata_array_destroy</a>(<a class="code" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *array);</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;</div>
+<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structgrpc__call__details.html">  244</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="structgrpc__call__details.html#a97c8019d8fa7cbe2014d97c91f9ed0a5">  245</a></span>&#160;  <span class="keywordtype">char</span> *<a class="code" href="structgrpc__call__details.html#a97c8019d8fa7cbe2014d97c91f9ed0a5">method</a>;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="structgrpc__call__details.html#a8a7da868f60a88f42918cc9bdd4d26c0">  246</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__call__details.html#a8a7da868f60a88f42918cc9bdd4d26c0">method_capacity</a>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="structgrpc__call__details.html#a869b5db96e2e0fbd573381e77b859631">  247</a></span>&#160;  <span class="keywordtype">char</span> *<a class="code" href="structgrpc__call__details.html#a869b5db96e2e0fbd573381e77b859631">host</a>;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="structgrpc__call__details.html#aeab0d9e754bbb1aac1a21ad4ef63d8b1">  248</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__call__details.html#aeab0d9e754bbb1aac1a21ad4ef63d8b1">host_capacity</a>;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="structgrpc__call__details.html#a6b72caadcf800d975987de18012f0f15">  249</a></span>&#160;  <a class="code" href="structgpr__timespec.html">gpr_timespec</a> <a class="code" href="structgrpc__call__details.html#a6b72caadcf800d975987de18012f0f15">deadline</a>;</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;} <a class="code" href="structgrpc__call__details.html">grpc_call_details</a>;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a29fa3bfb0a561ba465260154a4ef3bb5">grpc_call_details_init</a>(<a class="code" href="structgrpc__call__details.html">grpc_call_details</a> *details);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a436819189c9155a0761db7667f9078f9">grpc_call_details_destroy</a>(<a class="code" href="structgrpc__call__details.html">grpc_call_details</a> *details);</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">  255</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721">  258</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721">GRPC_OP_SEND_INITIAL_METADATA</a> = 0,</div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70">  260</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70">GRPC_OP_SEND_MESSAGE</a>,</div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486">  264</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486">GRPC_OP_SEND_CLOSE_FROM_CLIENT</a>,</div>
+<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64">  268</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64">GRPC_OP_SEND_STATUS_FROM_SERVER</a>,</div>
+<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078">  271</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078">GRPC_OP_RECV_INITIAL_METADATA</a>,</div>
+<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5">  274</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5">GRPC_OP_RECV_MESSAGE</a>,</div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17">  279</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17">GRPC_OP_RECV_STATUS_ON_CLIENT</a>,</div>
+<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6">  282</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6">GRPC_OP_RECV_CLOSE_ON_SERVER</a></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;} <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">grpc_op_type</a>;</div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div>
+<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="structgrpc__op.html">  287</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__op.html">grpc_op</a> {</div>
+<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a702bcecc2462646b6740ed7c05f42115">  289</a></span>&#160;  <a class="code" href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">grpc_op_type</a> <a class="code" href="structgrpc__op.html#a702bcecc2462646b6740ed7c05f42115">op</a>;</div>
+<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a9e6087665c90f146e5570f12c66d04fb">  291</a></span>&#160;  <a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> <a class="code" href="structgrpc__op.html#a9e6087665c90f146e5570f12c66d04fb">flags</a>;</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;  <span class="keyword">union </span>{</div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structgrpc__op.html#ac5983d0a5d60c26ca2d1b37d31ba2e2a">  294</a></span>&#160;      <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__op.html#ac5983d0a5d60c26ca2d1b37d31ba2e2a">count</a>;</div>
+<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a2e0f0c709658960593d5a36915c8d079">  295</a></span>&#160;      <a class="code" href="structgrpc__metadata.html">grpc_metadata</a> *<a class="code" href="structgrpc__op.html#a2e0f0c709658960593d5a36915c8d079">metadata</a>;</div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;    } <a class="code" href="structgrpc__op.html#a8e6202e19130ecb872de211a95dcee83">send_initial_metadata</a>;</div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a3b6c1b3456306a802f6eb0e3e8d0e434">  297</a></span>&#160;    <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> *<a class="code" href="structgrpc__op.html#a3b6c1b3456306a802f6eb0e3e8d0e434">send_message</a>;</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a4b9454278c105e08d54142adff37b5ab">  299</a></span>&#160;      <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__op.html#a4b9454278c105e08d54142adff37b5ab">trailing_metadata_count</a>;</div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a521b48faec3b3f7646a877055f118d47">  300</a></span>&#160;      <a class="code" href="structgrpc__metadata.html">grpc_metadata</a> *<a class="code" href="structgrpc__op.html#a521b48faec3b3f7646a877055f118d47">trailing_metadata</a>;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="structgrpc__op.html#ae0d5a9db463391c0897914ef2d016b25">  301</a></span>&#160;      <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> <a class="code" href="structgrpc__op.html#ae0d5a9db463391c0897914ef2d016b25">status</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="structgrpc__op.html#ae460836040d79eb2bd0a6d581b36c461">  302</a></span>&#160;      <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgrpc__op.html#ae460836040d79eb2bd0a6d581b36c461">status_details</a>;</div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    } <a class="code" href="structgrpc__op.html#afe7b3ae8f4c495a187f155a5fd6956bb">send_status_from_server</a>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a81ebfcab8db61dd485b88cafc51f2749">  309</a></span>&#160;    <a class="code" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *<a class="code" href="structgrpc__op.html#a81ebfcab8db61dd485b88cafc51f2749">recv_initial_metadata</a>;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="structgrpc__op.html#afca6c4cc5b0c2629bb559d2037907ac1">  313</a></span>&#160;    <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> **<a class="code" href="structgrpc__op.html#afca6c4cc5b0c2629bb559d2037907ac1">recv_message</a>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="structgrpc__op.html#abb4d84434a0b74283c8b5d8d6501baf1">  321</a></span>&#160;      <a class="code" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *<a class="code" href="structgrpc__op.html#abb4d84434a0b74283c8b5d8d6501baf1">trailing_metadata</a>;</div>
+<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a70d62415f6768533c2190e53f1c5baf4">  322</a></span>&#160;      <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> *<a class="code" href="structgrpc__op.html#a70d62415f6768533c2190e53f1c5baf4">status</a>;</div>
+<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="structgrpc__op.html#ab993dfc7b33c61f06f26a4efc0aefca6">  343</a></span>&#160;      <span class="keywordtype">char</span> **<a class="code" href="structgrpc__op.html#ab993dfc7b33c61f06f26a4efc0aefca6">status_details</a>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="structgrpc__op.html#a6cacd1d5311683ee077931c94a9dd6e9">  344</a></span>&#160;      <span class="keywordtype">size_t</span> *<a class="code" href="structgrpc__op.html#a6cacd1d5311683ee077931c94a9dd6e9">status_details_capacity</a>;</div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    } <a class="code" href="structgrpc__op.html#a42f88554cd082ce8c66560ea24d8a8e3">recv_status_on_client</a>;</div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="structgrpc__op.html#ae5a9717d4a69c46f343381596e223874">  349</a></span>&#160;      <span class="keywordtype">int</span> *<a class="code" href="structgrpc__op.html#ae5a9717d4a69c46f343381596e223874">cancelled</a>;</div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    } <a class="code" href="structgrpc__op.html#af327bcd87b609572c39ca6bfe8dbd9f1">recv_close_on_server</a>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;  } <a class="code" href="structgrpc__op.html#a39a29ba59e6482692adfcdef46ec66ad">data</a>;</div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;} <a class="code" href="grpc_8h.html#a6556a58ca45ad5132b89c770cf875215">grpc_op</a>;</div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#aa78606c93951c49eadd8d83d739798d6">grpc_init</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#af1130720e50ffedd0bb065c84843b032">grpc_shutdown</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="grpc_8h.html#a250ca547d790874bd7b5ceec25f18c51">grpc_version_string</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *<a class="code" href="grpc_8h.html#a9f69c76c26125e6581491864a06ea44a">grpc_completion_queue_create</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;</div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<a class="code" href="structgrpc__event.html">grpc_event</a> <a class="code" href="grpc_8h.html#a56a4ff1f046393205c3418c24f5d5587">grpc_completion_queue_next</a>(<a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq,</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;                                      <a class="code" href="structgpr__timespec.html">gpr_timespec</a> deadline);</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;<a class="code" href="structgrpc__event.html">grpc_event</a> <a class="code" href="grpc_8h.html#a21e38dd0146d244eb0e262fd1b6a50ee">grpc_completion_queue_pluck</a>(<a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq, <span class="keywordtype">void</span> *tag,</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;                                       <a class="code" href="structgpr__timespec.html">gpr_timespec</a> deadline);</div>
+<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a4051b4036c5132f02064430f67420ecd">grpc_completion_queue_shutdown</a>(<a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq);</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a629a77a358721f1a3bbb8fef34c3996e">grpc_completion_queue_destroy</a>(<a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq);</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a> <a class="code" href="grpc_8h.html#a9623d8e4df1d17eb26b67d905f1d7cb3">grpc_channel_check_connectivity_state</a>(</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    <a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *channel, <span class="keywordtype">int</span> try_to_connect);</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;</div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a29aa98ca6ce9f7e5116e43b0c414e96b">grpc_channel_watch_connectivity_state</a>(</div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *channel, <a class="code" href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a> last_observed_state,</div>
+<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <a class="code" href="structgpr__timespec.html">gpr_timespec</a> deadline, <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq, <span class="keywordtype">void</span> *tag);</div>
+<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div>
+<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *<a class="code" href="grpc_8h.html#a368ca2e4f76495c3c4bfbb27eb88936e">grpc_channel_create_call</a>(<a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *channel,</div>
+<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;                                    <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *completion_queue,</div>
+<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;                                    <span class="keyword">const</span> <span class="keywordtype">char</span> *method, <span class="keyword">const</span> <span class="keywordtype">char</span> *host,</div>
+<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;                                    <a class="code" href="structgpr__timespec.html">gpr_timespec</a> deadline);</div>
+<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;</div>
+<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;<span class="keywordtype">void</span> *<a class="code" href="grpc_8h.html#af00855f27d8b7c6b232982446371c04d">grpc_channel_register_call</a>(<a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *channel, <span class="keyword">const</span> <span class="keywordtype">char</span> *method,</div>
+<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *host);</div>
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;</div>
+<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *<a class="code" href="grpc_8h.html#a38aa45cdbc3d9a9529bcb6ee8b2c68aa">grpc_channel_create_registered_call</a>(</div>
+<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    <a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *channel, <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *completion_queue,</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">void</span> *registered_call_handle, <a class="code" href="structgpr__timespec.html">gpr_timespec</a> deadline);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;<a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="code" href="grpc_8h.html#ae0e60993c9d6e5ceccaf2e61f690b101">grpc_call_start_batch</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call, <span class="keyword">const</span> <a class="code" href="structgrpc__op.html">grpc_op</a> *ops,</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;                                      <span class="keywordtype">size_t</span> nops, <span class="keywordtype">void</span> *tag);</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;</div>
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="grpc_8h.html#adf4ac8b78da7b957ce05dc0f62719ada">grpc_call_get_peer</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call);</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;</div>
+<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;<span class="keyword">struct </span><a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a>;</div>
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;<span class="comment">/* Set census context for a call; Must be called before first call to</span></div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;<span class="comment">   grpc_call_start_batch(). */</span></div>
+<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a9d5bbdac3a9068747ef3639c4e52af9a">grpc_census_call_set_context</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call,</div>
+<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;                                  <span class="keyword">struct</span> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *context);</div>
+<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;</div>
+<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;<span class="comment">/* Retrieve the calls current census context. */</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;<span class="keyword">struct </span><a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> *<a class="code" href="grpc_8h.html#a0f2c6a97262a251d18b76ad470af0e66">grpc_census_call_get_context</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call);</div>
+<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="grpc_8h.html#a108ef86bc0e5ebcb05f744315e2a6499">grpc_channel_get_target</a>(<a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *channel);</div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;</div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *<a class="code" href="grpc_8h.html#aa710e7e68b23098900f924cf69797496">grpc_insecure_channel_create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *target,</div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;                                           <span class="keyword">const</span> <a class="code" href="structgrpc__channel__args.html">grpc_channel_args</a> *args);</div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;</div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *<a class="code" href="grpc_8h.html#acd59697f4b8bedea662939da3668ab9b">grpc_lame_client_channel_create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *target);</div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;</div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a16e4b95581ad12e8e0af2af8d41b71b3">grpc_channel_destroy</a>(<a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *channel);</div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;</div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="comment">/* Error handling for grpc_call</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="comment">   Most grpc_call functions return a grpc_error. If the error is not GRPC_OK</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="comment">   then the operation failed due to some unsatisfied precondition.</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="comment">   If a grpc_call fails, it&#39;s guaranteed that no change to the call state</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="comment">   has been made. */</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;</div>
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="code" href="grpc_8h.html#adce32a3168cfc0048423af94a3961878">grpc_call_cancel</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call);</div>
+<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;</div>
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;<a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="code" href="grpc_8h.html#a8332e3ac6611ae4012ed17707d7dbcf2">grpc_call_cancel_with_status</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call,</div>
+<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;                                             <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status,</div>
+<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;                                             <span class="keyword">const</span> <span class="keywordtype">char</span> *description);</div>
+<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;</div>
+<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a3edbb9347e32fd0152c8ed4bbbaf5125">grpc_call_destroy</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call);</div>
+<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;</div>
+<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;<a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="code" href="grpc_8h.html#a636d8fd8c888ba0a0fefacf8dcab7257">grpc_server_request_call</a>(</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server, <a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> **call, <a class="code" href="structgrpc__call__details.html">grpc_call_details</a> *details,</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    <a class="code" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *request_metadata,</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq_bound_to_call,</div>
+<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq_for_notification, <span class="keywordtype">void</span> *tag_new);</div>
+<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;</div>
+<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="keywordtype">void</span> *<a class="code" href="grpc_8h.html#a283062a2209f464f234b0e645c6fffb2">grpc_server_register_method</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server, <span class="keyword">const</span> <span class="keywordtype">char</span> *method,</div>
+<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;                                  <span class="keyword">const</span> <span class="keywordtype">char</span> *host);</div>
+<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;</div>
+<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;<a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="code" href="grpc_8h.html#a7207900db3bba2f1ae2e3f2dfc2822de">grpc_server_request_registered_call</a>(</div>
+<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;    <a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server, <span class="keywordtype">void</span> *registered_method, <a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> **call,</div>
+<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;    <a class="code" href="structgpr__timespec.html">gpr_timespec</a> *deadline, <a class="code" href="structgrpc__metadata__array.html">grpc_metadata_array</a> *request_metadata,</div>
+<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;    <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a> **optional_payload,</div>
+<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;    <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq_bound_to_call,</div>
+<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq_for_notification, <span class="keywordtype">void</span> *tag_new);</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;</div>
+<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *<a class="code" href="grpc_8h.html#a4036710ea12eccabbbbf050d6bad4cd4">grpc_server_create</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__channel__args.html">grpc_channel_args</a> *args);</div>
+<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#ac174712f87fdae4b5757a1370e2a31cb">grpc_server_register_completion_queue</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server,</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;                                           <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq);</div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="keywordtype">int</span> <a class="code" href="grpc_8h.html#a48cab64480658b97a775b2c7837456f9">grpc_server_add_http2_port</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server, <span class="keyword">const</span> <span class="keywordtype">char</span> *addr);</div>
+<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#ac5010d26419e14f5a9ab2fa86a4f7d1e">grpc_server_start</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server);</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;</div>
+<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a56fffa23c1c4bab9a469e2ac607b6db7">grpc_server_shutdown_and_notify</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server,</div>
+<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;                                     <a class="code" href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a> *cq, <span class="keywordtype">void</span> *tag);</div>
+<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;</div>
+<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#ac5c1e4f3e270a7afbc39403fff0dc803">grpc_server_cancel_all_calls</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server);</div>
+<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;</div>
+<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc_8h.html#a34cba45da7c32a21ac82305d670e4620">grpc_server_destroy</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server);</div>
+<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;</div>
+<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;<span class="keywordtype">int</span> <a class="code" href="grpc_8h.html#ae6984d3f0c3b9bc9a47859fd4dddc350">grpc_tracer_set_enabled</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> enabled);</div>
+<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;</div>
+<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_GRPC_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f">GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE</a></div><div class="ttdoc">completion queue for notification has not been registered with the server </div><div class="ttdef"><b>Definition:</b> grpc.h:182</div></div>
+<div class="ttc" id="grpc_8h_html_ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297"><div class="ttname"><a href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a00b42e3d4b6e6493c6e76f1adf07b297">GRPC_OP_COMPLETE</a></div><div class="ttdoc">Operation completion. </div><div class="ttdef"><b>Definition:</b> grpc.h:218</div></div>
+<div class="ttc" id="structgrpc__event_html_a883ab15e862db582116c72cdcdc4c201"><div class="ttname"><a href="structgrpc__event.html#a883ab15e862db582116c72cdcdc4c201">grpc_event::tag</a></div><div class="ttdeci">void * tag</div><div class="ttdoc">The tag passed to grpc_call_start_batch etc to start this operation. </div><div class="ttdef"><b>Definition:</b> grpc.h:232</div></div>
+<div class="ttc" id="structgrpc__op_html_a702bcecc2462646b6740ed7c05f42115"><div class="ttname"><a href="structgrpc__op.html#a702bcecc2462646b6740ed7c05f42115">grpc_op::op</a></div><div class="ttdeci">grpc_op_type op</div><div class="ttdoc">Operation type, as defined by grpc_op_type. </div><div class="ttdef"><b>Definition:</b> grpc.h:289</div></div>
+<div class="ttc" id="grpc_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2"><div class="ttname"><a href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">grpc_connectivity_state</a></div><div class="ttdeci">grpc_connectivity_state</div><div class="ttdoc">Connectivity state of a channel. </div><div class="ttdef"><b>Definition:</b> grpc.h:139</div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486">GRPC_OP_SEND_CLOSE_FROM_CLIENT</a></div><div class="ttdoc">Send a close from the client: one and only one instance MUST be sent from the client, unless the call was cancelled - in which case this can be skipped. </div><div class="ttdef"><b>Definition:</b> grpc.h:264</div></div>
+<div class="ttc" id="grpc_8h_html_a34cba45da7c32a21ac82305d670e4620"><div class="ttname"><a href="grpc_8h.html#a34cba45da7c32a21ac82305d670e4620">grpc_server_destroy</a></div><div class="ttdeci">void grpc_server_destroy(grpc_server *server)</div><div class="ttdoc">Destroy a server. </div></div>
+<div class="ttc" id="structgrpc__op_html_ab993dfc7b33c61f06f26a4efc0aefca6"><div class="ttname"><a href="structgrpc__op.html#ab993dfc7b33c61f06f26a4efc0aefca6">grpc_op::status_details</a></div><div class="ttdeci">char ** status_details</div><div class="ttdoc">status_details is a buffer owned by the application before the op completes and after the op has comp...</div><div class="ttdef"><b>Definition:</b> grpc.h:343</div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939a"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939a">grpc_op_type</a></div><div class="ttdeci">grpc_op_type</div><div class="ttdef"><b>Definition:</b> grpc.h:255</div></div>
+<div class="ttc" id="structgrpc__op_html_a9e6087665c90f146e5570f12c66d04fb"><div class="ttname"><a href="structgrpc__op.html#a9e6087665c90f146e5570f12c66d04fb">grpc_op::flags</a></div><div class="ttdeci">gpr_uint32 flags</div><div class="ttdoc">Write flags bitset for grpc_begin_messages. </div><div class="ttdef"><b>Definition:</b> grpc.h:291</div></div>
+<div class="ttc" id="grpc_8h_html_a6556a58ca45ad5132b89c770cf875215"><div class="ttname"><a href="grpc_8h.html#a6556a58ca45ad5132b89c770cf875215">grpc_op</a></div><div class="ttdeci">struct grpc_op grpc_op</div><div class="ttdoc">Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments) ...</div></div>
+<div class="ttc" id="grpc_8h_html_ac174712f87fdae4b5757a1370e2a31cb"><div class="ttname"><a href="grpc_8h.html#ac174712f87fdae4b5757a1370e2a31cb">grpc_server_register_completion_queue</a></div><div class="ttdeci">void grpc_server_register_completion_queue(grpc_server *server, grpc_completion_queue *cq)</div><div class="ttdoc">Register a completion queue with the server. </div></div>
+<div class="ttc" id="structgrpc__op_html_a81ebfcab8db61dd485b88cafc51f2749"><div class="ttname"><a href="structgrpc__op.html#a81ebfcab8db61dd485b88cafc51f2749">grpc_op::recv_initial_metadata</a></div><div class="ttdeci">grpc_metadata_array * recv_initial_metadata</div><div class="ttdoc">ownership of the array is with the caller, but ownership of the elements stays with the call object (...</div><div class="ttdef"><b>Definition:</b> grpc.h:309</div></div>
+<div class="ttc" id="grpc_8h_html_a21e38dd0146d244eb0e262fd1b6a50ee"><div class="ttname"><a href="grpc_8h.html#a21e38dd0146d244eb0e262fd1b6a50ee">grpc_completion_queue_pluck</a></div><div class="ttdeci">grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag, gpr_timespec deadline)</div><div class="ttdoc">Blocks until an event with tag &#39;tag&#39; is available, the completion queue is being shutdown or deadline...</div></div>
+<div class="ttc" id="grpc_8h_html_a895faab0e6035445750e43482651ba2f"><div class="ttname"><a href="grpc_8h.html#a895faab0e6035445750e43482651ba2f">grpc_completion_queue</a></div><div class="ttdeci">struct grpc_completion_queue grpc_completion_queue</div><div class="ttdoc">Completion Queues enable notification of the completion of asynchronous actions. </div><div class="ttdef"><b>Definition:</b> grpc.h:59</div></div>
+<div class="ttc" id="grpc_8h_html_a436819189c9155a0761db7667f9078f9"><div class="ttname"><a href="grpc_8h.html#a436819189c9155a0761db7667f9078f9">grpc_call_details_destroy</a></div><div class="ttdeci">void grpc_call_details_destroy(grpc_call_details *details)</div></div>
+<div class="ttc" id="structgrpc__channel__args_html"><div class="ttname"><a href="structgrpc__channel__args.html">grpc_channel_args</a></div><div class="ttdoc">An array of arguments that can be passed around. </div><div class="ttdef"><b>Definition:</b> grpc.h:113</div></div>
+<div class="ttc" id="structgrpc__channel__args_html_a05aa7aeb14aa9ae5f4d6a34f5c222b76"><div class="ttname"><a href="structgrpc__channel__args.html#a05aa7aeb14aa9ae5f4d6a34f5c222b76">grpc_channel_args::args</a></div><div class="ttdeci">grpc_arg * args</div><div class="ttdef"><b>Definition:</b> grpc.h:115</div></div>
+<div class="ttc" id="byte__buffer_8h_html"><div class="ttname"><a href="byte__buffer_8h.html">byte_buffer.h</a></div></div>
+<div class="ttc" id="grpc_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a></div><div class="ttdeci">struct grpc_server grpc_server</div><div class="ttdoc">A server listens to some port and responds to request calls. </div><div class="ttdef"><b>Definition:</b> grpc.h:65</div></div>
+<div class="ttc" id="time_8h_html"><div class="ttname"><a href="time_8h.html">time.h</a></div></div>
+<div class="ttc" id="grpc_8h_html_a0b06eae05e70404aedbceaebce6de593"><div class="ttname"><a href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593">grpc_arg_type</a></div><div class="ttdeci">grpc_arg_type</div><div class="ttdoc">Type specifier for grpc_arg. </div><div class="ttdef"><b>Definition:</b> grpc.h:73</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861">GRPC_CALL_ERROR_INVALID_FLAGS</a></div><div class="ttdoc">the flags value was illegal for this call </div><div class="ttdef"><b>Definition:</b> grpc.h:177</div></div>
+<div class="ttc" id="structgrpc__op_html_ae0d5a9db463391c0897914ef2d016b25"><div class="ttname"><a href="structgrpc__op.html#ae0d5a9db463391c0897914ef2d016b25">grpc_op::status</a></div><div class="ttdeci">grpc_status_code status</div><div class="ttdef"><b>Definition:</b> grpc.h:301</div></div>
+<div class="ttc" id="structgrpc__call__details_html_a6b72caadcf800d975987de18012f0f15"><div class="ttname"><a href="structgrpc__call__details.html#a6b72caadcf800d975987de18012f0f15">grpc_call_details::deadline</a></div><div class="ttdeci">gpr_timespec deadline</div><div class="ttdef"><b>Definition:</b> grpc.h:249</div></div>
+<div class="ttc" id="grpc_8h_html_a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b"><div class="ttname"><a href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a02a823a7037e2a60b9d9a031fd42591b">GRPC_ARG_POINTER</a></div><div class="ttdef"><b>Definition:</b> grpc.h:76</div></div>
+<div class="ttc" id="structgrpc__event_html"><div class="ttname"><a href="structgrpc__event.html">grpc_event</a></div><div class="ttdoc">The result of an operation. </div><div class="ttdef"><b>Definition:</b> grpc.h:224</div></div>
+<div class="ttc" id="grpc_8h_html_acd59697f4b8bedea662939da3668ab9b"><div class="ttname"><a href="grpc_8h.html#acd59697f4b8bedea662939da3668ab9b">grpc_lame_client_channel_create</a></div><div class="ttdeci">grpc_channel * grpc_lame_client_channel_create(const char *target)</div><div class="ttdoc">Create a lame client: this client fails every operation attempted on it. </div></div>
+<div class="ttc" id="structgrpc__arg_html_a6871bfca9c52e7f56abbd71c81d97554"><div class="ttname"><a href="structgrpc__arg.html#a6871bfca9c52e7f56abbd71c81d97554">grpc_arg::integer</a></div><div class="ttdeci">int integer</div><div class="ttdef"><b>Definition:</b> grpc.h:96</div></div>
+<div class="ttc" id="grpc_8h_html_aa710e7e68b23098900f924cf69797496"><div class="ttname"><a href="grpc_8h.html#aa710e7e68b23098900f924cf69797496">grpc_insecure_channel_create</a></div><div class="ttdeci">grpc_channel * grpc_insecure_channel_create(const char *target, const grpc_channel_args *args)</div><div class="ttdoc">Create a client channel to &#39;target&#39;. </div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64">GRPC_OP_SEND_STATUS_FROM_SERVER</a></div><div class="ttdoc">Send status from the server: one and only one instance MUST be sent from the server unless the call w...</div><div class="ttdef"><b>Definition:</b> grpc.h:268</div></div>
+<div class="ttc" id="structgrpc__arg_html_a05bc3701718db73608ef3598480e8fa8"><div class="ttname"><a href="structgrpc__arg.html#a05bc3701718db73608ef3598480e8fa8">grpc_arg::string</a></div><div class="ttdeci">char * string</div><div class="ttdef"><b>Definition:</b> grpc.h:95</div></div>
+<div class="ttc" id="grpc_8h_html_a29fa3bfb0a561ba465260154a4ef3bb5"><div class="ttname"><a href="grpc_8h.html#a29fa3bfb0a561ba465260154a4ef3bb5">grpc_call_details_init</a></div><div class="ttdeci">void grpc_call_details_init(grpc_call_details *details)</div></div>
+<div class="ttc" id="structgrpc__call__details_html_a869b5db96e2e0fbd573381e77b859631"><div class="ttname"><a href="structgrpc__call__details.html#a869b5db96e2e0fbd573381e77b859631">grpc_call_details::host</a></div><div class="ttdeci">char * host</div><div class="ttdef"><b>Definition:</b> grpc.h:247</div></div>
+<div class="ttc" id="structgrpc__event_html_a99d4215e5df50869af320b1cca5540db"><div class="ttname"><a href="structgrpc__event.html#a99d4215e5df50869af320b1cca5540db">grpc_event::success</a></div><div class="ttdeci">int success</div><div class="ttdoc">non-zero if the operation was successful, 0 upon failure. </div><div class="ttdef"><b>Definition:</b> grpc.h:229</div></div>
+<div class="ttc" id="grpc_8h_html_a3edbb9347e32fd0152c8ed4bbbaf5125"><div class="ttname"><a href="grpc_8h.html#a3edbb9347e32fd0152c8ed4bbbaf5125">grpc_call_destroy</a></div><div class="ttdeci">void grpc_call_destroy(grpc_call *call)</div><div class="ttdoc">Destroy a call. </div></div>
+<div class="ttc" id="structgrpc__op_html_a39a29ba59e6482692adfcdef46ec66ad"><div class="ttname"><a href="structgrpc__op.html#a39a29ba59e6482692adfcdef46ec66ad">grpc_op::data</a></div><div class="ttdeci">union grpc_op::@6 data</div></div>
+<div class="ttc" id="structgrpc__op_html_ac5983d0a5d60c26ca2d1b37d31ba2e2a"><div class="ttname"><a href="structgrpc__op.html#ac5983d0a5d60c26ca2d1b37d31ba2e2a">grpc_op::count</a></div><div class="ttdeci">size_t count</div><div class="ttdef"><b>Definition:</b> grpc.h:294</div></div>
+<div class="ttc" id="structgrpc__arg_html"><div class="ttname"><a href="structgrpc__arg.html">grpc_arg</a></div><div class="ttdoc">A single argument... </div><div class="ttdef"><b>Definition:</b> grpc.h:91</div></div>
+<div class="ttc" id="structgrpc__call__details_html"><div class="ttname"><a href="structgrpc__call__details.html">grpc_call_details</a></div><div class="ttdef"><b>Definition:</b> grpc.h:244</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba86e7b6bf1fe5dec17fc08ba2f77d1b41">GRPC_CALL_ERROR</a></div><div class="ttdoc">something failed, we don&#39;t know what </div><div class="ttdef"><b>Definition:</b> grpc.h:160</div></div>
+<div class="ttc" id="grpc_8h_html_a122f8f4f0a585396d993d9b55848f222"><div class="ttname"><a href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a></div><div class="ttdeci">struct grpc_call grpc_call</div><div class="ttdoc">A Call represents an RPC. </div><div class="ttdef"><b>Definition:</b> grpc.h:70</div></div>
+<div class="ttc" id="structgrpc__byte__buffer_html"><div class="ttname"><a href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></div><div class="ttdef"><b>Definition:</b> byte_buffer.h:49</div></div>
+<div class="ttc" id="structgrpc__op_html_afca6c4cc5b0c2629bb559d2037907ac1"><div class="ttname"><a href="structgrpc__op.html#afca6c4cc5b0c2629bb559d2037907ac1">grpc_op::recv_message</a></div><div class="ttdeci">grpc_byte_buffer ** recv_message</div><div class="ttdoc">ownership of the byte buffer is moved to the caller; the caller must call grpc_byte_buffer_destroy on...</div><div class="ttdef"><b>Definition:</b> grpc.h:313</div></div>
+<div class="ttc" id="grpc_8h_html_ac5010d26419e14f5a9ab2fa86a4f7d1e"><div class="ttname"><a href="grpc_8h.html#ac5010d26419e14f5a9ab2fa86a4f7d1e">grpc_server_start</a></div><div class="ttdeci">void grpc_server_start(grpc_server *server)</div><div class="ttdoc">Start a server - tells all listeners to start listening. </div></div>
+<div class="ttc" id="structgrpc__metadata__array_html"><div class="ttname"><a href="structgrpc__metadata__array.html">grpc_metadata_array</a></div><div class="ttdef"><b>Definition:</b> grpc.h:235</div></div>
+<div class="ttc" id="port__platform_8h_html_aa6abd4df815a5498d1a04b5e691a74a9"><div class="ttname"><a href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a></div><div class="ttdeci">uint32_t gpr_uint32</div><div class="ttdef"><b>Definition:</b> port_platform.h:309</div></div>
+<div class="ttc" id="structgrpc__arg_html_aab5d11432a11b03a53e5d959d9a5328d"><div class="ttname"><a href="structgrpc__arg.html#aab5d11432a11b03a53e5d959d9a5328d">grpc_arg::p</a></div><div class="ttdeci">void * p</div><div class="ttdef"><b>Definition:</b> grpc.h:98</div></div>
+<div class="ttc" id="structgrpc__op_html_a6cacd1d5311683ee077931c94a9dd6e9"><div class="ttname"><a href="structgrpc__op.html#a6cacd1d5311683ee077931c94a9dd6e9">grpc_op::status_details_capacity</a></div><div class="ttdeci">size_t * status_details_capacity</div><div class="ttdef"><b>Definition:</b> grpc.h:344</div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5">GRPC_OP_RECV_MESSAGE</a></div><div class="ttdoc">Receive a message: 0 or more of these operations can occur for each call. </div><div class="ttdef"><b>Definition:</b> grpc.h:274</div></div>
+<div class="ttc" id="structgrpc__call__details_html_a8a7da868f60a88f42918cc9bdd4d26c0"><div class="ttname"><a href="structgrpc__call__details.html#a8a7da868f60a88f42918cc9bdd4d26c0">grpc_call_details::method_capacity</a></div><div class="ttdeci">size_t method_capacity</div><div class="ttdef"><b>Definition:</b> grpc.h:246</div></div>
+<div class="ttc" id="grpc_8h_html_a9623d8e4df1d17eb26b67d905f1d7cb3"><div class="ttname"><a href="grpc_8h.html#a9623d8e4df1d17eb26b67d905f1d7cb3">grpc_channel_check_connectivity_state</a></div><div class="ttdeci">grpc_connectivity_state grpc_channel_check_connectivity_state(grpc_channel *channel, int try_to_connect)</div><div class="ttdoc">Check the connectivity state of a channel. </div></div>
+<div class="ttc" id="structgrpc__op_html_a70d62415f6768533c2190e53f1c5baf4"><div class="ttname"><a href="structgrpc__op.html#a70d62415f6768533c2190e53f1c5baf4">grpc_op::status</a></div><div class="ttdeci">grpc_status_code * status</div><div class="ttdef"><b>Definition:</b> grpc.h:322</div></div>
+<div class="ttc" id="structgrpc__op_html_a42f88554cd082ce8c66560ea24d8a8e3"><div class="ttname"><a href="structgrpc__op.html#a42f88554cd082ce8c66560ea24d8a8e3">grpc_op::recv_status_on_client</a></div><div class="ttdeci">struct grpc_op::@6::@9 recv_status_on_client</div></div>
+<div class="ttc" id="grpc_8h_html_a56fffa23c1c4bab9a469e2ac607b6db7"><div class="ttname"><a href="grpc_8h.html#a56fffa23c1c4bab9a469e2ac607b6db7">grpc_server_shutdown_and_notify</a></div><div class="ttdeci">void grpc_server_shutdown_and_notify(grpc_server *server, grpc_completion_queue *cq, void *tag)</div><div class="ttdoc">Begin shutting down a server. </div></div>
+<div class="ttc" id="grpc_8h_html_a29aa98ca6ce9f7e5116e43b0c414e96b"><div class="ttname"><a href="grpc_8h.html#a29aa98ca6ce9f7e5116e43b0c414e96b">grpc_channel_watch_connectivity_state</a></div><div class="ttdeci">void grpc_channel_watch_connectivity_state(grpc_channel *channel, grpc_connectivity_state last_observed_state, gpr_timespec deadline, grpc_completion_queue *cq, void *tag)</div><div class="ttdoc">Watch for a change in connectivity state. </div></div>
+<div class="ttc" id="structgrpc__metadata__array_html_ac930a0cc901913fafcd09ca9cca156fe"><div class="ttname"><a href="structgrpc__metadata__array.html#ac930a0cc901913fafcd09ca9cca156fe">grpc_metadata_array::metadata</a></div><div class="ttdeci">grpc_metadata * metadata</div><div class="ttdef"><b>Definition:</b> grpc.h:238</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857">GRPC_CALL_ERROR_ALREADY_INVOKED</a></div><div class="ttdoc">this method must be called before invoke </div><div class="ttdef"><b>Definition:</b> grpc.h:168</div></div>
+<div class="ttc" id="grpc_8h_html_af00855f27d8b7c6b232982446371c04d"><div class="ttname"><a href="grpc_8h.html#af00855f27d8b7c6b232982446371c04d">grpc_channel_register_call</a></div><div class="ttdeci">void * grpc_channel_register_call(grpc_channel *channel, const char *method, const char *host)</div><div class="ttdoc">Pre-register a method/host pair on a channel. </div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721">GRPC_OP_SEND_INITIAL_METADATA</a></div><div class="ttdoc">Send initial metadata: one and only one instance MUST be sent for each call, unless the call was canc...</div><div class="ttdef"><b>Definition:</b> grpc.h:258</div></div>
+<div class="ttc" id="grpc_8h_html_a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689"><div class="ttname"><a href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a8d2f803b8aaf88f34dac1f887826c689">GRPC_ARG_INTEGER</a></div><div class="ttdef"><b>Definition:</b> grpc.h:75</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785b"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a></div><div class="ttdeci">grpc_call_error</div><div class="ttdoc">Result of a grpc call. </div><div class="ttdef"><b>Definition:</b> grpc.h:156</div></div>
+<div class="ttc" id="structgrpc__op_html_a521b48faec3b3f7646a877055f118d47"><div class="ttname"><a href="structgrpc__op.html#a521b48faec3b3f7646a877055f118d47">grpc_op::trailing_metadata</a></div><div class="ttdeci">grpc_metadata * trailing_metadata</div><div class="ttdef"><b>Definition:</b> grpc.h:300</div></div>
+<div class="ttc" id="grpc_8h_html_a4036710ea12eccabbbbf050d6bad4cd4"><div class="ttname"><a href="grpc_8h.html#a4036710ea12eccabbbbf050d6bad4cd4">grpc_server_create</a></div><div class="ttdeci">grpc_server * grpc_server_create(const grpc_channel_args *args)</div><div class="ttdoc">Create a server. </div></div>
+<div class="ttc" id="structgrpc__metadata__array_html_a5b293b4f8e734b032b80741abf538a97"><div class="ttname"><a href="structgrpc__metadata__array.html#a5b293b4f8e734b032b80741abf538a97">grpc_metadata_array::capacity</a></div><div class="ttdeci">size_t capacity</div><div class="ttdef"><b>Definition:</b> grpc.h:237</div></div>
+<div class="ttc" id="structgrpc__metadata_html_abe93a3d24cd534d9387e05ad1f0b36f7"><div class="ttname"><a href="structgrpc__metadata.html#abe93a3d24cd534d9387e05ad1f0b36f7">grpc_metadata::key</a></div><div class="ttdeci">const char * key</div><div class="ttdef"><b>Definition:</b> grpc.h:198</div></div>
+<div class="ttc" id="grpc_8h_html_ac5c1e4f3e270a7afbc39403fff0dc803"><div class="ttname"><a href="grpc_8h.html#ac5c1e4f3e270a7afbc39403fff0dc803">grpc_server_cancel_all_calls</a></div><div class="ttdeci">void grpc_server_cancel_all_calls(grpc_server *server)</div><div class="ttdoc">Cancel all in-progress calls. </div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd">GRPC_CALL_ERROR_INVALID_METADATA</a></div><div class="ttdoc">invalid metadata was passed to this call </div><div class="ttdef"><b>Definition:</b> grpc.h:179</div></div>
+<div class="ttc" id="structgrpc__op_html_ae460836040d79eb2bd0a6d581b36c461"><div class="ttname"><a href="structgrpc__op.html#ae460836040d79eb2bd0a6d581b36c461">grpc_op::status_details</a></div><div class="ttdeci">const char * status_details</div><div class="ttdef"><b>Definition:</b> grpc.h:302</div></div>
+<div class="ttc" id="grpc_8h_html_adce32a3168cfc0048423af94a3961878"><div class="ttname"><a href="grpc_8h.html#adce32a3168cfc0048423af94a3961878">grpc_call_cancel</a></div><div class="ttdeci">grpc_call_error grpc_call_cancel(grpc_call *call)</div><div class="ttdoc">Called by clients to cancel an RPC on the server. </div></div>
+<div class="ttc" id="grpc_8h_html_a432bfa6b9f6603643cdf9de8804c254e"><div class="ttname"><a href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a></div><div class="ttdeci">struct grpc_channel grpc_channel</div><div class="ttdoc">The Channel interface allows creation of Call objects. </div><div class="ttdef"><b>Definition:</b> grpc.h:62</div></div>
+<div class="ttc" id="structgrpc__metadata_html"><div class="ttname"><a href="structgrpc__metadata.html">grpc_metadata</a></div><div class="ttdoc">A single metadata element. </div><div class="ttdef"><b>Definition:</b> grpc.h:197</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8">GRPC_CALL_ERROR_NOT_ON_SERVER</a></div><div class="ttdoc">this method is not available on the server </div><div class="ttdef"><b>Definition:</b> grpc.h:162</div></div>
+<div class="ttc" id="grpc_8h_html_ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5"><div class="ttname"><a href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a503dd1b2ec79457f0f810716016219d5">GRPC_QUEUE_SHUTDOWN</a></div><div class="ttdoc">Shutting down. </div><div class="ttdef"><b>Definition:</b> grpc.h:214</div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078">GRPC_OP_RECV_INITIAL_METADATA</a></div><div class="ttdoc">Receive initial metadata: one and only one MUST be made on the client, must not be made on the server...</div><div class="ttdef"><b>Definition:</b> grpc.h:271</div></div>
+<div class="ttc" id="structgrpc__op_html"><div class="ttname"><a href="structgrpc__op.html">grpc_op</a></div><div class="ttdoc">Operation data: one field for each op type (except SEND_CLOSE_FROM_CLIENT which has no arguments) ...</div><div class="ttdef"><b>Definition:</b> grpc.h:287</div></div>
+<div class="ttc" id="grpc_8h_html_a636d8fd8c888ba0a0fefacf8dcab7257"><div class="ttname"><a href="grpc_8h.html#a636d8fd8c888ba0a0fefacf8dcab7257">grpc_server_request_call</a></div><div class="ttdeci">grpc_call_error grpc_server_request_call(grpc_server *server, grpc_call **call, grpc_call_details *details, grpc_metadata_array *request_metadata, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new)</div><div class="ttdoc">Request notification of a new call. </div></div>
+<div class="ttc" id="structgrpc__metadata_html_ae7478a66f65862018cd89768a578ff4f"><div class="ttname"><a href="structgrpc__metadata.html#ae7478a66f65862018cd89768a578ff4f">grpc_metadata::obfuscated</a></div><div class="ttdeci">void * obfuscated[3]</div><div class="ttdef"><b>Definition:</b> grpc.h:207</div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70">GRPC_OP_SEND_MESSAGE</a></div><div class="ttdoc">Send a message: 0 or more of these operations can occur for each call. </div><div class="ttdef"><b>Definition:</b> grpc.h:260</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba32f125b97007cbdb43534e9d6e0989f8">GRPC_CALL_OK</a></div><div class="ttdoc">everything went ok </div><div class="ttdef"><b>Definition:</b> grpc.h:158</div></div>
+<div class="ttc" id="grpc_8h_html_a56a4ff1f046393205c3418c24f5d5587"><div class="ttname"><a href="grpc_8h.html#a56a4ff1f046393205c3418c24f5d5587">grpc_completion_queue_next</a></div><div class="ttdeci">grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, gpr_timespec deadline)</div><div class="ttdoc">Blocks until an event is available, the completion queue is being shut down, or deadline is reached...</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63">GRPC_CALL_ERROR_ALREADY_FINISHED</a></div><div class="ttdoc">this call is already finished (writes_done or write_status has already been called) ...</div><div class="ttdef"><b>Definition:</b> grpc.h:173</div></div>
+<div class="ttc" id="grpc_8h_html_a07990645ca218f6965fd83edf3f421b7"><div class="ttname"><a href="grpc_8h.html#a07990645ca218f6965fd83edf3f421b7">grpc_event</a></div><div class="ttdeci">struct grpc_event grpc_event</div><div class="ttdoc">The result of an operation. </div></div>
+<div class="ttc" id="grpc_8h_html_ab6454071421a36ebc25952ed448d5b87"><div class="ttname"><a href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87">grpc_completion_type</a></div><div class="ttdeci">grpc_completion_type</div><div class="ttdoc">The type of completion (for grpc_event) </div><div class="ttdef"><b>Definition:</b> grpc.h:212</div></div>
+<div class="ttc" id="structgrpc__op_html_a4b9454278c105e08d54142adff37b5ab"><div class="ttname"><a href="structgrpc__op.html#a4b9454278c105e08d54142adff37b5ab">grpc_op::trailing_metadata_count</a></div><div class="ttdeci">size_t trailing_metadata_count</div><div class="ttdef"><b>Definition:</b> grpc.h:299</div></div>
+<div class="ttc" id="structgrpc__call__details_html_aeab0d9e754bbb1aac1a21ad4ef63d8b1"><div class="ttname"><a href="structgrpc__call__details.html#aeab0d9e754bbb1aac1a21ad4ef63d8b1">grpc_call_details::host_capacity</a></div><div class="ttdeci">size_t host_capacity</div><div class="ttdef"><b>Definition:</b> grpc.h:248</div></div>
+<div class="ttc" id="grpc_8h_html_a283062a2209f464f234b0e645c6fffb2"><div class="ttname"><a href="grpc_8h.html#a283062a2209f464f234b0e645c6fffb2">grpc_server_register_method</a></div><div class="ttdeci">void * grpc_server_register_method(grpc_server *server, const char *method, const char *host)</div><div class="ttdoc">Registers a method in the server. </div></div>
+<div class="ttc" id="grpc_8h_html_a108ef86bc0e5ebcb05f744315e2a6499"><div class="ttname"><a href="grpc_8h.html#a108ef86bc0e5ebcb05f744315e2a6499">grpc_channel_get_target</a></div><div class="ttdeci">char * grpc_channel_get_target(grpc_channel *channel)</div><div class="ttdoc">Return a newly allocated string representing the target a channel was created for. </div></div>
+<div class="ttc" id="grpc_8h_html_a16e4b95581ad12e8e0af2af8d41b71b3"><div class="ttname"><a href="grpc_8h.html#a16e4b95581ad12e8e0af2af8d41b71b3">grpc_channel_destroy</a></div><div class="ttdeci">void grpc_channel_destroy(grpc_channel *channel)</div><div class="ttdoc">Close and destroy a grpc channel. </div></div>
+<div class="ttc" id="structgrpc__op_html_a8e6202e19130ecb872de211a95dcee83"><div class="ttname"><a href="structgrpc__op.html#a8e6202e19130ecb872de211a95dcee83">grpc_op::send_initial_metadata</a></div><div class="ttdeci">struct grpc_op::@6::@7 send_initial_metadata</div></div>
+<div class="ttc" id="grpc_8h_html_a250ca547d790874bd7b5ceec25f18c51"><div class="ttname"><a href="grpc_8h.html#a250ca547d790874bd7b5ceec25f18c51">grpc_version_string</a></div><div class="ttdeci">const char * grpc_version_string(void)</div><div class="ttdoc">Return a string representing the current version of grpc. </div></div>
+<div class="ttc" id="structgrpc__metadata_html_a342799d4f78fcc6dd29ee44f56a6d553"><div class="ttname"><a href="structgrpc__metadata.html#a342799d4f78fcc6dd29ee44f56a6d553">grpc_metadata::internal_data</a></div><div class="ttdeci">struct grpc_metadata::@5 internal_data</div><div class="ttdoc">The following fields are reserved for grpc internal use. </div></div>
+<div class="ttc" id="structgrpc__channel__args_html_a41e5d0b22449f062b3a7798dd528afde"><div class="ttname"><a href="structgrpc__channel__args.html#a41e5d0b22449f062b3a7798dd528afde">grpc_channel_args::num_args</a></div><div class="ttdeci">size_t num_args</div><div class="ttdef"><b>Definition:</b> grpc.h:114</div></div>
+<div class="ttc" id="structgrpc__metadata__array_html_a314ce51b22a5934cc672f3736d44b9e4"><div class="ttname"><a href="structgrpc__metadata__array.html#a314ce51b22a5934cc672f3736d44b9e4">grpc_metadata_array::count</a></div><div class="ttdeci">size_t count</div><div class="ttdef"><b>Definition:</b> grpc.h:236</div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17">GRPC_OP_RECV_STATUS_ON_CLIENT</a></div><div class="ttdoc">Receive status on the client: one and only one must be made on the client. </div><div class="ttdef"><b>Definition:</b> grpc.h:279</div></div>
+<div class="ttc" id="grpc_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea"><div class="ttname"><a href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">GRPC_CHANNEL_READY</a></div><div class="ttdoc">channel is ready for work </div><div class="ttdef"><b>Definition:</b> grpc.h:145</div></div>
+<div class="ttc" id="structgrpc__arg_html_aeb230fbd50daacfe654abc3500a44968"><div class="ttname"><a href="structgrpc__arg.html#aeb230fbd50daacfe654abc3500a44968">grpc_arg::key</a></div><div class="ttdeci">char * key</div><div class="ttdef"><b>Definition:</b> grpc.h:93</div></div>
+<div class="ttc" id="grpc_8h_html_a48cab64480658b97a775b2c7837456f9"><div class="ttname"><a href="grpc_8h.html#a48cab64480658b97a775b2c7837456f9">grpc_server_add_http2_port</a></div><div class="ttdeci">int grpc_server_add_http2_port(grpc_server *server, const char *addr)</div><div class="ttdoc">Add a HTTP2 over plaintext over tcp listener. </div></div>
+<div class="ttc" id="status_8h_html"><div class="ttname"><a href="status_8h.html">status.h</a></div></div>
+<div class="ttc" id="grpc_8h_html_adf4ac8b78da7b957ce05dc0f62719ada"><div class="ttname"><a href="grpc_8h.html#adf4ac8b78da7b957ce05dc0f62719ada">grpc_call_get_peer</a></div><div class="ttdeci">char * grpc_call_get_peer(grpc_call *call)</div><div class="ttdoc">Returns a newly allocated string representing the endpoint to which this call is communicating with...</div></div>
+<div class="ttc" id="grpc_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6"><div class="ttname"><a href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6">GRPC_CHANNEL_TRANSIENT_FAILURE</a></div><div class="ttdoc">channel has seen a failure but expects to recover </div><div class="ttdef"><b>Definition:</b> grpc.h:147</div></div>
+<div class="ttc" id="grpc_8h_html_a1da84eaead787d991c5a0c87aed7c30b"><div class="ttname"><a href="grpc_8h.html#a1da84eaead787d991c5a0c87aed7c30b">grpc_metadata</a></div><div class="ttdeci">struct grpc_metadata grpc_metadata</div><div class="ttdoc">A single metadata element. </div></div>
+<div class="ttc" id="structgrpc__metadata_html_a57b63d7b7a3e4720a0cc0d20bb2ecf36"><div class="ttname"><a href="structgrpc__metadata.html#a57b63d7b7a3e4720a0cc0d20bb2ecf36">grpc_metadata::value</a></div><div class="ttdeci">const char * value</div><div class="ttdef"><b>Definition:</b> grpc.h:199</div></div>
+<div class="ttc" id="slice_8h_html"><div class="ttname"><a href="slice_8h.html">slice.h</a></div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6">GRPC_CALL_ERROR_NOT_ON_CLIENT</a></div><div class="ttdoc">this method is not available on the client </div><div class="ttdef"><b>Definition:</b> grpc.h:164</div></div>
+<div class="ttc" id="grpc_8h_html_ae0e60993c9d6e5ceccaf2e61f690b101"><div class="ttname"><a href="grpc_8h.html#ae0e60993c9d6e5ceccaf2e61f690b101">grpc_call_start_batch</a></div><div class="ttdeci">grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, size_t nops, void *tag)</div><div class="ttdoc">Start a batch of operations defined in the array ops; when complete, post a completion of type &#39;tag&#39; ...</div></div>
+<div class="ttc" id="grpc_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77"><div class="ttname"><a href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a304d1b81cec4357a9a6acbcb18248e77">GRPC_CHANNEL_IDLE</a></div><div class="ttdoc">channel is idle </div><div class="ttdef"><b>Definition:</b> grpc.h:141</div></div>
+<div class="ttc" id="grpc_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6"><div class="ttname"><a href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a8f774ebe233ee26ebd546fe4b58060b6">GRPC_CHANNEL_FATAL_FAILURE</a></div><div class="ttdoc">channel has seen a failure that it cannot recover from </div><div class="ttdef"><b>Definition:</b> grpc.h:149</div></div>
+<div class="ttc" id="structgrpc__op_html_af327bcd87b609572c39ca6bfe8dbd9f1"><div class="ttname"><a href="structgrpc__op.html#af327bcd87b609572c39ca6bfe8dbd9f1">grpc_op::recv_close_on_server</a></div><div class="ttdeci">struct grpc_op::@6::@10 recv_close_on_server</div></div>
+<div class="ttc" id="structgpr__timespec_html"><div class="ttname"><a href="structgpr__timespec.html">gpr_timespec</a></div><div class="ttdef"><b>Definition:</b> time.h:60</div></div>
+<div class="ttc" id="status_8h_html_a35ab2a68917eb836de84cb23253108eb"><div class="ttname"><a href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a></div><div class="ttdeci">grpc_status_code</div><div class="ttdef"><b>Definition:</b> status.h:41</div></div>
+<div class="ttc" id="grpc_8h_html_a368ca2e4f76495c3c4bfbb27eb88936e"><div class="ttname"><a href="grpc_8h.html#a368ca2e4f76495c3c4bfbb27eb88936e">grpc_channel_create_call</a></div><div class="ttdeci">grpc_call * grpc_channel_create_call(grpc_channel *channel, grpc_completion_queue *completion_queue, const char *method, const char *host, gpr_timespec deadline)</div><div class="ttdoc">Create a call given a grpc_channel, in order to call &#39;method&#39;. </div></div>
+<div class="ttc" id="grpc_8h_html_a0f2c6a97262a251d18b76ad470af0e66"><div class="ttname"><a href="grpc_8h.html#a0f2c6a97262a251d18b76ad470af0e66">grpc_census_call_get_context</a></div><div class="ttdeci">struct census_context * grpc_census_call_get_context(grpc_call *call)</div></div>
+<div class="ttc" id="grpc_8h_html_aad125726d8b689cc5fc1a0444c91ed44"><div class="ttname"><a href="grpc_8h.html#aad125726d8b689cc5fc1a0444c91ed44">grpc_metadata_array_destroy</a></div><div class="ttdeci">void grpc_metadata_array_destroy(grpc_metadata_array *array)</div></div>
+<div class="ttc" id="grpc_8h_html_ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6"><div class="ttname"><a href="grpc_8h.html#ab6454071421a36ebc25952ed448d5b87a4339ea61236e103b6555fdf9b6cffab6">GRPC_QUEUE_TIMEOUT</a></div><div class="ttdoc">No event before timeout. </div><div class="ttdef"><b>Definition:</b> grpc.h:216</div></div>
+<div class="ttc" id="grpc_8h_html_aa78606c93951c49eadd8d83d739798d6"><div class="ttname"><a href="grpc_8h.html#aa78606c93951c49eadd8d83d739798d6">grpc_init</a></div><div class="ttdeci">void grpc_init(void)</div><div class="ttdoc">Initialize the grpc library. </div></div>
+<div class="ttc" id="grpc_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299"><div class="ttname"><a href="grpc_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2a3ac13f6c7627f15186760bfd6b7d9299">GRPC_CHANNEL_CONNECTING</a></div><div class="ttdoc">channel is connecting </div><div class="ttdef"><b>Definition:</b> grpc.h:143</div></div>
+<div class="ttc" id="structgrpc__op_html_afe7b3ae8f4c495a187f155a5fd6956bb"><div class="ttname"><a href="structgrpc__op.html#afe7b3ae8f4c495a187f155a5fd6956bb">grpc_op::send_status_from_server</a></div><div class="ttdeci">struct grpc_op::@6::@8 send_status_from_server</div></div>
+<div class="ttc" id="structgrpc__op_html_a3b6c1b3456306a802f6eb0e3e8d0e434"><div class="ttname"><a href="structgrpc__op.html#a3b6c1b3456306a802f6eb0e3e8d0e434">grpc_op::send_message</a></div><div class="ttdeci">grpc_byte_buffer * send_message</div><div class="ttdef"><b>Definition:</b> grpc.h:297</div></div>
+<div class="ttc" id="structgrpc__op_html_abb4d84434a0b74283c8b5d8d6501baf1"><div class="ttname"><a href="structgrpc__op.html#abb4d84434a0b74283c8b5d8d6501baf1">grpc_op::trailing_metadata</a></div><div class="ttdeci">grpc_metadata_array * trailing_metadata</div><div class="ttdoc">ownership of the array is with the caller, but ownership of the elements stays with the call object (...</div><div class="ttdef"><b>Definition:</b> grpc.h:321</div></div>
+<div class="ttc" id="grpc_8h_html_a7207900db3bba2f1ae2e3f2dfc2822de"><div class="ttname"><a href="grpc_8h.html#a7207900db3bba2f1ae2e3f2dfc2822de">grpc_server_request_registered_call</a></div><div class="ttdeci">grpc_call_error grpc_server_request_registered_call(grpc_server *server, void *registered_method, grpc_call **call, gpr_timespec *deadline, grpc_metadata_array *request_metadata, grpc_byte_buffer **optional_payload, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new)</div><div class="ttdoc">Request notification of a new pre-registered call. </div></div>
+<div class="ttc" id="grpc_8h_html_af1130720e50ffedd0bb065c84843b032"><div class="ttname"><a href="grpc_8h.html#af1130720e50ffedd0bb065c84843b032">grpc_shutdown</a></div><div class="ttdeci">void grpc_shutdown(void)</div><div class="ttdoc">Shut down the grpc library. </div></div>
+<div class="ttc" id="grpc_8h_html_a52cfda44034115720a0e88037dedbfb5"><div class="ttname"><a href="grpc_8h.html#a52cfda44034115720a0e88037dedbfb5">grpc_metadata_array_init</a></div><div class="ttdeci">void grpc_metadata_array_init(grpc_metadata_array *array)</div></div>
+<div class="ttc" id="grpc_8h_html_a629a77a358721f1a3bbb8fef34c3996e"><div class="ttname"><a href="grpc_8h.html#a629a77a358721f1a3bbb8fef34c3996e">grpc_completion_queue_destroy</a></div><div class="ttdeci">void grpc_completion_queue_destroy(grpc_completion_queue *cq)</div><div class="ttdoc">Destroy a completion queue. </div></div>
+<div class="ttc" id="grpc_8h_html_a38aa45cdbc3d9a9529bcb6ee8b2c68aa"><div class="ttname"><a href="grpc_8h.html#a38aa45cdbc3d9a9529bcb6ee8b2c68aa">grpc_channel_create_registered_call</a></div><div class="ttdeci">grpc_call * grpc_channel_create_registered_call(grpc_channel *channel, grpc_completion_queue *completion_queue, void *registered_call_handle, gpr_timespec deadline)</div><div class="ttdoc">Create a call given a handle returned from grpc_channel_register_call. </div></div>
+<div class="ttc" id="structgrpc__metadata_html_a2084add9ffe64cf337576114d189af3f"><div class="ttname"><a href="structgrpc__metadata.html#a2084add9ffe64cf337576114d189af3f">grpc_metadata::value_length</a></div><div class="ttdeci">size_t value_length</div><div class="ttdef"><b>Definition:</b> grpc.h:200</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454">GRPC_CALL_ERROR_TOO_MANY_OPERATIONS</a></div><div class="ttdoc">there is already an outstanding read/write operation on the call </div><div class="ttdef"><b>Definition:</b> grpc.h:175</div></div>
+<div class="ttc" id="grpc_8h_html_a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6"><div class="ttname"><a href="grpc_8h.html#a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6">GRPC_OP_RECV_CLOSE_ON_SERVER</a></div><div class="ttdoc">Receive close on the server: one and only one must be made on the server. </div><div class="ttdef"><b>Definition:</b> grpc.h:282</div></div>
+<div class="ttc" id="structgrpc__event_html_a8e7f571b759f55db4f6bebc2a4f56ad7"><div class="ttname"><a href="structgrpc__event.html#a8e7f571b759f55db4f6bebc2a4f56ad7">grpc_event::type</a></div><div class="ttdeci">grpc_completion_type type</div><div class="ttdoc">The type of the completion. </div><div class="ttdef"><b>Definition:</b> grpc.h:226</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a">GRPC_CALL_ERROR_ALREADY_ACCEPTED</a></div><div class="ttdoc">this method must be called before server_accept </div><div class="ttdef"><b>Definition:</b> grpc.h:166</div></div>
+<div class="ttc" id="structgrpc__arg_html_aa26f2d3c4b1649c9eb061d24a8c10fd4"><div class="ttname"><a href="structgrpc__arg.html#aa26f2d3c4b1649c9eb061d24a8c10fd4">grpc_arg::type</a></div><div class="ttdeci">grpc_arg_type type</div><div class="ttdef"><b>Definition:</b> grpc.h:92</div></div>
+<div class="ttc" id="grpc_8h_html_a4051b4036c5132f02064430f67420ecd"><div class="ttname"><a href="grpc_8h.html#a4051b4036c5132f02064430f67420ecd">grpc_completion_queue_shutdown</a></div><div class="ttdeci">void grpc_completion_queue_shutdown(grpc_completion_queue *cq)</div><div class="ttdoc">Begin destruction of a completion queue. </div></div>
+<div class="ttc" id="grpc_8h_html_a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d"><div class="ttname"><a href="grpc_8h.html#a0b06eae05e70404aedbceaebce6de593a215b6b9143ba133ede0e29f79098239d">GRPC_ARG_STRING</a></div><div class="ttdef"><b>Definition:</b> grpc.h:74</div></div>
+<div class="ttc" id="structgrpc__op_html_a2e0f0c709658960593d5a36915c8d079"><div class="ttname"><a href="structgrpc__op.html#a2e0f0c709658960593d5a36915c8d079">grpc_op::metadata</a></div><div class="ttdeci">grpc_metadata * metadata</div><div class="ttdef"><b>Definition:</b> grpc.h:295</div></div>
+<div class="ttc" id="grpc_8h_html_a8332e3ac6611ae4012ed17707d7dbcf2"><div class="ttname"><a href="grpc_8h.html#a8332e3ac6611ae4012ed17707d7dbcf2">grpc_call_cancel_with_status</a></div><div class="ttdeci">grpc_call_error grpc_call_cancel_with_status(grpc_call *call, grpc_status_code status, const char *description)</div><div class="ttdoc">Called by clients to cancel an RPC on the server. </div></div>
+<div class="ttc" id="structgrpc__op_html_ae5a9717d4a69c46f343381596e223874"><div class="ttname"><a href="structgrpc__op.html#ae5a9717d4a69c46f343381596e223874">grpc_op::cancelled</a></div><div class="ttdeci">int * cancelled</div><div class="ttdoc">out argument, set to 1 if the call failed in any way (seen as a cancellation on the server)...</div><div class="ttdef"><b>Definition:</b> grpc.h:349</div></div>
+<div class="ttc" id="grpc_8h_html_a9f69c76c26125e6581491864a06ea44a"><div class="ttname"><a href="grpc_8h.html#a9f69c76c26125e6581491864a06ea44a">grpc_completion_queue_create</a></div><div class="ttdeci">grpc_completion_queue * grpc_completion_queue_create(void)</div><div class="ttdoc">Create a completion queue. </div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296">GRPC_CALL_ERROR_NOT_INVOKED</a></div><div class="ttdoc">this method must be called after invoke </div><div class="ttdef"><b>Definition:</b> grpc.h:170</div></div>
+<div class="ttc" id="structgrpc__call__details_html_a97c8019d8fa7cbe2014d97c91f9ed0a5"><div class="ttname"><a href="structgrpc__call__details.html#a97c8019d8fa7cbe2014d97c91f9ed0a5">grpc_call_details::method</a></div><div class="ttdeci">char * method</div><div class="ttdef"><b>Definition:</b> grpc.h:245</div></div>
+<div class="ttc" id="census_8h_html_a27fc8788690179599713226f1f054736"><div class="ttname"><a href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a></div><div class="ttdeci">struct census_context census_context</div><div class="ttdef"><b>Definition:</b> census.h:78</div></div>
+<div class="ttc" id="grpc_8h_html_ae6984d3f0c3b9bc9a47859fd4dddc350"><div class="ttname"><a href="grpc_8h.html#ae6984d3f0c3b9bc9a47859fd4dddc350">grpc_tracer_set_enabled</a></div><div class="ttdeci">int grpc_tracer_set_enabled(const char *name, int enabled)</div><div class="ttdoc">Enable or disable a tracer. </div></div>
+<div class="ttc" id="grpc_8h_html_a9d5bbdac3a9068747ef3639c4e52af9a"><div class="ttname"><a href="grpc_8h.html#a9d5bbdac3a9068747ef3639c4e52af9a">grpc_census_call_set_context</a></div><div class="ttdeci">void grpc_census_call_set_context(grpc_call *call, struct census_context *context)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 863 - 0
core/grpc__security_8h.html

@@ -0,0 +1,863 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/grpc_security.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">grpc_security.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="grpc_8h_source.html">grpc/grpc.h</a>&gt;</code><br/>
+<code>#include &lt;<a class="el" href="status_8h_source.html">grpc/status.h</a>&gt;</code><br/>
+</div>
+<p><a href="grpc__security_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__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</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__auth__property__iterator.html">grpc_auth_property_iterator</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__auth__property.html">grpc_auth_property</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:a3874f70577fc9fe15fd2c4ce68a36ecd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a3874f70577fc9fe15fd2c4ce68a36ecd">GRPC_GOOGLE_CREDENTIALS_ENV_VAR</a>&#160;&#160;&#160;&quot;GOOGLE_APPLICATION_CREDENTIALS&quot;</td></tr>
+<tr class="separator:a3874f70577fc9fe15fd2c4ce68a36ecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48565da473b7c82fa2453798f620fd59"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a48565da473b7c82fa2453798f620fd59">GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR</a>&#160;&#160;&#160;&quot;GRPC_DEFAULT_SSL_ROOTS_FILE_PATH&quot;</td></tr>
+<tr class="separator:a48565da473b7c82fa2453798f620fd59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a218bf55b665134a11baf07ada5980825"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a218bf55b665134a11baf07ada5980825">GRPC_SSL_TARGET_NAME_OVERRIDE_ARG</a>&#160;&#160;&#160;&quot;grpc.ssl_target_name_override&quot;</td></tr>
+<tr class="separator:a218bf55b665134a11baf07ada5980825"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aff82fdff9e7c40c4dd4bdc650e38e25a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#aff82fdff9e7c40c4dd4bdc650e38e25a">GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME</a>&#160;&#160;&#160;&quot;transport_security_type&quot;</td></tr>
+<tr class="separator:aff82fdff9e7c40c4dd4bdc650e38e25a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35a35c597b7090b8ac7e2d854c9bcc7a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a35a35c597b7090b8ac7e2d854c9bcc7a">GRPC_SSL_TRANSPORT_SECURITY_TYPE</a>&#160;&#160;&#160;&quot;ssl&quot;</td></tr>
+<tr class="separator:a35a35c597b7090b8ac7e2d854c9bcc7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afee5e0fade6e0af1954529f1f08afe0c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#afee5e0fade6e0af1954529f1f08afe0c">GRPC_X509_CN_PROPERTY_NAME</a>&#160;&#160;&#160;&quot;x509_common_name&quot;</td></tr>
+<tr class="separator:afee5e0fade6e0af1954529f1f08afe0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1412421653b7999544296f56025a0f36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a1412421653b7999544296f56025a0f36">GRPC_X509_SAN_PROPERTY_NAME</a>&#160;&#160;&#160;&quot;x509_subject_alternative_name&quot;</td></tr>
+<tr class="separator:a1412421653b7999544296f56025a0f36"><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:a17768c857575e4500cdd12bb94d3f33e"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a></td></tr>
+<tr class="separator:a17768c857575e4500cdd12bb94d3f33e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa724192e56fdc03827846f16752deccc"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a></td></tr>
+<tr class="separator:aa724192e56fdc03827846f16752deccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa13f0724cb7ff99995d7f0881c01d553"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a></td></tr>
+<tr class="separator:aa13f0724cb7ff99995d7f0881c01d553"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26981fdcb987d885b25d34c7dc66e4cf"><td class="memItemLeft" align="right" valign="top">typedef struct <br class="typebreak"/>
+<a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a26981fdcb987d885b25d34c7dc66e4cf">grpc_auth_property_iterator</a></td></tr>
+<tr class="separator:a26981fdcb987d885b25d34c7dc66e4cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a010fe7d27deaa2ea50b765b48dbad429"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structgrpc__auth__property.html">grpc_auth_property</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a010fe7d27deaa2ea50b765b48dbad429">grpc_auth_property</a></td></tr>
+<tr class="separator:a010fe7d27deaa2ea50b765b48dbad429"><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:a6c01e107d41e964458fdf701b8b81440"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a6c01e107d41e964458fdf701b8b81440">grpc_credentials_release</a> (<a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds)</td></tr>
+<tr class="separator:a6c01e107d41e964458fdf701b8b81440"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5e3fb8f208c302245a1392c7ef16d170"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a5e3fb8f208c302245a1392c7ef16d170">grpc_google_default_credentials_create</a> (void)</td></tr>
+<tr class="separator:a5e3fb8f208c302245a1392c7ef16d170"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0d627ca897718091e4ceca5dce3ef10e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a0d627ca897718091e4ceca5dce3ef10e">grpc_ssl_credentials_create</a> (const char *pem_root_certs, <a class="el" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a> *pem_key_cert_pair)</td></tr>
+<tr class="separator:a0d627ca897718091e4ceca5dce3ef10e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4f65f01fb23e963cc88bcdfbede70da7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a4f65f01fb23e963cc88bcdfbede70da7">grpc_composite_credentials_create</a> (<a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds1, <a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds2)</td></tr>
+<tr class="separator:a4f65f01fb23e963cc88bcdfbede70da7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3beb3fe683139856e1a13c27d760eb95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a3beb3fe683139856e1a13c27d760eb95">grpc_compute_engine_credentials_create</a> (void)</td></tr>
+<tr class="separator:a3beb3fe683139856e1a13c27d760eb95"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15aa83608fad085b6244de659d322b27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a15aa83608fad085b6244de659d322b27">grpc_service_account_credentials_create</a> (const char *json_key, const char *scope, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> token_lifetime)</td></tr>
+<tr class="separator:a15aa83608fad085b6244de659d322b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af26993774cc991debd61e4a84ed49187"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#af26993774cc991debd61e4a84ed49187">grpc_service_account_jwt_access_credentials_create</a> (const char *json_key, <a class="el" href="structgpr__timespec.html">gpr_timespec</a> token_lifetime)</td></tr>
+<tr class="separator:af26993774cc991debd61e4a84ed49187"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a2440ad02b6a96adbd2c6e5d66fd7d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a7a2440ad02b6a96adbd2c6e5d66fd7d2">grpc_refresh_token_credentials_create</a> (const char *json_refresh_token)</td></tr>
+<tr class="separator:a7a2440ad02b6a96adbd2c6e5d66fd7d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7ef8e179bb5d15c81dfd363924db0041"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a7ef8e179bb5d15c81dfd363924db0041">grpc_access_token_credentials_create</a> (const char *access_token)</td></tr>
+<tr class="separator:a7ef8e179bb5d15c81dfd363924db0041"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae42c358e718847c988aa690cb0fccab3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#ae42c358e718847c988aa690cb0fccab3">grpc_iam_credentials_create</a> (const char *authorization_token, const char *authority_selector)</td></tr>
+<tr class="separator:ae42c358e718847c988aa690cb0fccab3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d63d4cac74652ec3fac7782acb4a2d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a4d63d4cac74652ec3fac7782acb4a2d4">grpc_secure_channel_create</a> (<a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds, const char *target, const <a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a> *args)</td></tr>
+<tr class="separator:a4d63d4cac74652ec3fac7782acb4a2d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e9f9320f4f8d2d534d04ed642f032ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a6e9f9320f4f8d2d534d04ed642f032ea">grpc_server_credentials_release</a> (<a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *creds)</td></tr>
+<tr class="separator:a6e9f9320f4f8d2d534d04ed642f032ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3382907a4689c034a6f55bab4d5135b9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a3382907a4689c034a6f55bab4d5135b9">grpc_ssl_server_credentials_create</a> (const char *pem_root_certs, <a class="el" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a> *pem_key_cert_pairs, size_t num_key_cert_pairs, int force_client_auth)</td></tr>
+<tr class="separator:a3382907a4689c034a6f55bab4d5135b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5d0db200d00b62b79138472dc9b1fe59"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a5d0db200d00b62b79138472dc9b1fe59">grpc_server_add_secure_http2_port</a> (<a class="el" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server, const char *addr, <a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *creds)</td></tr>
+<tr class="separator:a5d0db200d00b62b79138472dc9b1fe59"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56de54ae2563e67e236c10e8fa419f60"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a56de54ae2563e67e236c10e8fa419f60">grpc_call_set_credentials</a> (<a class="el" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call, <a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds)</td></tr>
+<tr class="separator:a56de54ae2563e67e236c10e8fa419f60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac20e3890d5e5e0de6ae6b5cb57cae1ae"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structgrpc__auth__property.html">grpc_auth_property</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#ac20e3890d5e5e0de6ae6b5cb57cae1ae">grpc_auth_property_iterator_next</a> (<a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> *it)</td></tr>
+<tr class="separator:ac20e3890d5e5e0de6ae6b5cb57cae1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaad9fed074f7aebed63ed075bb6ff780"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#aaad9fed074f7aebed63ed075bb6ff780">grpc_auth_context_property_iterator</a> (const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx)</td></tr>
+<tr class="separator:aaad9fed074f7aebed63ed075bb6ff780"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a144c6f3a56c8592489b3978e0c5caced"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a144c6f3a56c8592489b3978e0c5caced">grpc_auth_context_peer_identity</a> (const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx)</td></tr>
+<tr class="separator:a144c6f3a56c8592489b3978e0c5caced"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5298ac64614986581fc314f63fa9afd7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a5298ac64614986581fc314f63fa9afd7">grpc_auth_context_find_properties_by_name</a> (const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx, const char *name)</td></tr>
+<tr class="separator:a5298ac64614986581fc314f63fa9afd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac05022ccd5b972ba089950437727ff23"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#ac05022ccd5b972ba089950437727ff23">grpc_auth_context_peer_identity_property_name</a> (const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx)</td></tr>
+<tr class="separator:ac05022ccd5b972ba089950437727ff23"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af33fe6681dedb389edbf708020680093"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#af33fe6681dedb389edbf708020680093">grpc_auth_context_peer_is_authenticated</a> (const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx)</td></tr>
+<tr class="separator:af33fe6681dedb389edbf708020680093"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b439e6d2875c8b5e2e901a959f6a2fe"><td class="memItemLeft" align="right" valign="top"><a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a0b439e6d2875c8b5e2e901a959f6a2fe">grpc_call_auth_context</a> (<a class="el" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call)</td></tr>
+<tr class="separator:a0b439e6d2875c8b5e2e901a959f6a2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2eea99f76030b21ad58afdf615f4d2b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a2eea99f76030b21ad58afdf615f4d2b9">grpc_auth_context_release</a> (<a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *context)</td></tr>
+<tr class="separator:a2eea99f76030b21ad58afdf615f4d2b9"><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:a6112c5b60b1c0197531f80fdc56f7772"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc__security_8h.html#a6112c5b60b1c0197531f80fdc56f7772">grpc_max_auth_token_lifetime</a></td></tr>
+<tr class="separator:a6112c5b60b1c0197531f80fdc56f7772"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a48565da473b7c82fa2453798f620fd59"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR&#160;&#160;&#160;&quot;GRPC_DEFAULT_SSL_ROOTS_FILE_PATH&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3874f70577fc9fe15fd2c4ce68a36ecd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_GOOGLE_CREDENTIALS_ENV_VAR&#160;&#160;&#160;&quot;GOOGLE_APPLICATION_CREDENTIALS&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a218bf55b665134a11baf07ada5980825"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG&#160;&#160;&#160;&quot;grpc.ssl_target_name_override&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a35a35c597b7090b8ac7e2d854c9bcc7a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_SSL_TRANSPORT_SECURITY_TYPE&#160;&#160;&#160;&quot;ssl&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aff82fdff9e7c40c4dd4bdc650e38e25a"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME&#160;&#160;&#160;&quot;transport_security_type&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="afee5e0fade6e0af1954529f1f08afe0c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_X509_CN_PROPERTY_NAME&#160;&#160;&#160;&quot;x509_common_name&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1412421653b7999544296f56025a0f36"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_X509_SAN_PROPERTY_NAME&#160;&#160;&#160;&quot;x509_subject_alternative_name&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aa13f0724cb7ff99995d7f0881c01d553"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a010fe7d27deaa2ea50b765b48dbad429"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structgrpc__auth__property.html">grpc_auth_property</a>  <a class="el" href="structgrpc__auth__property.html">grpc_auth_property</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a26981fdcb987d885b25d34c7dc66e4cf"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>  <a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a17768c857575e4500cdd12bb94d3f33e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> <a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa724192e56fdc03827846f16752deccc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> <a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a7ef8e179bb5d15c81dfd363924db0041"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_access_token_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>access_token</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5298ac64614986581fc314f63fa9afd7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> grpc_auth_context_find_properties_by_name </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *&#160;</td>
+          <td class="paramname"><em>ctx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</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="a144c6f3a56c8592489b3978e0c5caced"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> grpc_auth_context_peer_identity </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *&#160;</td>
+          <td class="paramname"><em>ctx</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac05022ccd5b972ba089950437727ff23"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* grpc_auth_context_peer_identity_property_name </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *&#160;</td>
+          <td class="paramname"><em>ctx</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af33fe6681dedb389edbf708020680093"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int grpc_auth_context_peer_is_authenticated </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *&#160;</td>
+          <td class="paramname"><em>ctx</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaad9fed074f7aebed63ed075bb6ff780"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> grpc_auth_context_property_iterator </td>
+          <td>(</td>
+          <td class="paramtype">const <a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *&#160;</td>
+          <td class="paramname"><em>ctx</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a2eea99f76030b21ad58afdf615f4d2b9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void grpc_auth_context_release </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *&#160;</td>
+          <td class="paramname"><em>context</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac20e3890d5e5e0de6ae6b5cb57cae1ae"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structgrpc__auth__property.html">grpc_auth_property</a>* grpc_auth_property_iterator_next </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> *&#160;</td>
+          <td class="paramname"><em>it</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0b439e6d2875c8b5e2e901a959f6a2fe"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* grpc_call_auth_context </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *&#160;</td>
+          <td class="paramname"><em>call</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a56de54ae2563e67e236c10e8fa419f60"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> grpc_call_set_credentials </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *&#160;</td>
+          <td class="paramname"><em>call</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td>
+          <td class="paramname"><em>creds</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="a4f65f01fb23e963cc88bcdfbede70da7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_composite_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td>
+          <td class="paramname"><em>creds1</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td>
+          <td class="paramname"><em>creds2</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="a3beb3fe683139856e1a13c27d760eb95"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_compute_engine_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6c01e107d41e964458fdf701b8b81440"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void grpc_credentials_release </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td>
+          <td class="paramname"><em>creds</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5e3fb8f208c302245a1392c7ef16d170"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_google_default_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">void&#160;</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae42c358e718847c988aa690cb0fccab3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_iam_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>authorization_token</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>authority_selector</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="a7a2440ad02b6a96adbd2c6e5d66fd7d2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_refresh_token_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>json_refresh_token</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4d63d4cac74652ec3fac7782acb4a2d4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a>* grpc_secure_channel_create </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *&#160;</td>
+          <td class="paramname"><em>creds</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>target</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a> *&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5d0db200d00b62b79138472dc9b1fe59"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int grpc_server_add_secure_http2_port </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *&#160;</td>
+          <td class="paramname"><em>server</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>addr</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *&#160;</td>
+          <td class="paramname"><em>creds</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="a6e9f9320f4f8d2d534d04ed642f032ea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void grpc_server_credentials_release </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *&#160;</td>
+          <td class="paramname"><em>creds</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a15aa83608fad085b6244de659d322b27"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_service_account_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>json_key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>scope</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td>
+          <td class="paramname"><em>token_lifetime</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="af26993774cc991debd61e4a84ed49187"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_service_account_jwt_access_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>json_key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structgpr__timespec.html">gpr_timespec</a>&#160;</td>
+          <td class="paramname"><em>token_lifetime</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="a0d627ca897718091e4ceca5dce3ef10e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>* grpc_ssl_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>pem_root_certs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a> *&#160;</td>
+          <td class="paramname"><em>pem_key_cert_pair</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="a3382907a4689c034a6f55bab4d5135b9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* grpc_ssl_server_credentials_create </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>pem_root_certs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a> *&#160;</td>
+          <td class="paramname"><em>pem_key_cert_pairs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>num_key_cert_pairs</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>force_client_auth</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="a6112c5b60b1c0197531f80fdc56f7772"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="structgpr__timespec.html">gpr_timespec</a> grpc_max_auth_token_lifetime</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:05 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>

+ 409 - 0
core/grpc__security_8h_source.html

@@ -0,0 +1,409 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/grpc_security.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">grpc_security.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="grpc__security_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_GRPC_SECURITY_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_GRPC_SECURITY_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="status_8h.html">grpc/status.h</a>&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">/* --- grpc_credentials object. ---</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">   A credentials object represents a way to authenticate a client.  */</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">   48</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> <a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a>;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">/* Releases a credentials object.</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">   The creator of the credentials object is responsible for its release. */</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a6c01e107d41e964458fdf701b8b81440">grpc_credentials_release</a>(<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">/* Environment variable that points to the google default application</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">   credentials json key or refresh token. Used in the</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">   grpc_google_default_credentials_create function. */</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a3874f70577fc9fe15fd2c4ce68a36ecd">   57</a></span>&#160;<span class="preprocessor">#define GRPC_GOOGLE_CREDENTIALS_ENV_VAR &quot;GOOGLE_APPLICATION_CREDENTIALS&quot;</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="comment">/* Creates default credentials to connect to a google gRPC service.</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="comment">   WARNING: Do NOT use this credentials to connect to a non-google service as</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="comment">   this could result in an oauth2 token leak. */</span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#a5e3fb8f208c302245a1392c7ef16d170">grpc_google_default_credentials_create</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">/* Environment variable that points to the default SSL roots file. This file</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">   must be a PEM encoded file with all the roots such as the one that can be</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="comment">   downloaded from https://pki.google.com/roots.pem.  */</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a48565da473b7c82fa2453798f620fd59">   67</a></span>&#160;<span class="preprocessor">#define GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR \</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">  &quot;GRPC_DEFAULT_SSL_ROOTS_FILE_PATH&quot;</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">/* Object that holds a private key / certificate chain pair in PEM format. */</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html">   71</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  <span class="comment">/* private_key is the NULL-terminated string containing the PEM encoding of</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="comment">     the client&#39;s private key. */</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">   74</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">private_key</a>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  <span class="comment">/* cert_chain is the NULL-terminated string containing the PEM encoding of</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="comment">     the client&#39;s certificate chain. */</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">   78</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">cert_chain</a>;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;} <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">/* Creates an SSL credentials object.</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment">   - pem_roots_cert is the NULL-terminated string containing the PEM encoding</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment">     of the server root certificates. If this parameter is NULL, the</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">     implementation will first try to dereference the file pointed by the</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment">     GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable, and if that fails,</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">     get the roots from a well-known place on disk (in the grpc install</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment">     directory).</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">   - pem_key_cert_pair is a pointer on the object containing client&#39;s private</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment">     key and certificate chain. This parameter can be NULL if the client does</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">     not have such a key/cert pair. */</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#a0d627ca897718091e4ceca5dce3ef10e">grpc_ssl_credentials_create</a>(</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a> *pem_key_cert_pair);</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">/* Creates a composite credentials object. */</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#a4f65f01fb23e963cc88bcdfbede70da7">grpc_composite_credentials_create</a>(<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds1,</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                                                    <a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds2);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">/* Creates a compute engine credentials object.</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">   WARNING: Do NOT use this credentials to connect to a non-google service as</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">   this could result in an oauth2 token leak. */</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#a3beb3fe683139856e1a13c27d760eb95">grpc_compute_engine_credentials_create</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structgpr__timespec.html">gpr_timespec</a> <a class="code" href="grpc__security_8h.html#a6112c5b60b1c0197531f80fdc56f7772">grpc_max_auth_token_lifetime</a>;</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="comment">/* Creates a service account credentials object. May return NULL if the input is</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="comment">   invalid.</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">   WARNING: Do NOT use this credentials to connect to a non-google service as</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="comment">   this could result in an oauth2 token leak.</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment">   - json_key is the JSON key string containing the client&#39;s private key.</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="comment">   - scope is a space-delimited list of the requested permissions.</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment">   - token_lifetime is the lifetime of each token acquired through this service</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">     account credentials.  It should not exceed grpc_max_auth_token_lifetime</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">     or will be cropped to this value.  */</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#a15aa83608fad085b6244de659d322b27">grpc_service_account_credentials_create</a>(</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *json_key, <span class="keyword">const</span> <span class="keywordtype">char</span> *scope, <a class="code" href="structgpr__timespec.html">gpr_timespec</a> token_lifetime);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">/* Creates a JWT credentials object. May return NULL if the input is invalid.</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">   - json_key is the JSON key string containing the client&#39;s private key.</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">   - token_lifetime is the lifetime of each Json Web Token (JWT) created with</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">     this credentials.  It should not exceed grpc_max_auth_token_lifetime or</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">     will be cropped to this value.  */</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#af26993774cc991debd61e4a84ed49187">grpc_service_account_jwt_access_credentials_create</a>(</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *json_key, <a class="code" href="structgpr__timespec.html">gpr_timespec</a> token_lifetime);</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment">/* Creates an Oauth2 Refresh Token credentials object. May return NULL if the</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment">   input is invalid.</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">   WARNING: Do NOT use this credentials to connect to a non-google service as</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">   this could result in an oauth2 token leak.</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">   - json_refresh_token is the JSON string containing the refresh token itself</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">     along with a client_id and client_secret. */</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#a7a2440ad02b6a96adbd2c6e5d66fd7d2">grpc_refresh_token_credentials_create</a>(</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *json_refresh_token);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment">/* Creates an Oauth2 Access Token credentials with an access token that was</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="comment">   aquired by an out of band mechanism. */</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#a7ef8e179bb5d15c81dfd363924db0041">grpc_access_token_credentials_create</a>(</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *access_token);</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="comment">/* Creates an IAM credentials object. */</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *<a class="code" href="grpc__security_8h.html#ae42c358e718847c988aa690cb0fccab3">grpc_iam_credentials_create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *authorization_token,</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;                                              <span class="keyword">const</span> <span class="keywordtype">char</span> *authority_selector);</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="comment">/* --- Secure channel creation. --- */</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment">/* The caller of the secure_channel_create functions may override the target</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="comment">   name used for SSL host name checking using this channel argument which is of</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="comment">   type GRPC_ARG_STRING. This *should* be used for testing only.</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="comment">   If this argument is not specified, the name used for SSL host name checking</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="comment">   will be the target parameter (assuming that the secure channel is an SSL</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="comment">   channel). If this parameter is specified and the underlying is not an SSL</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="comment">   channel, it will just be ignored. */</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a218bf55b665134a11baf07ada5980825">  152</a></span>&#160;<span class="preprocessor">#define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG &quot;grpc.ssl_target_name_override&quot;</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="comment">/* Creates a secure channel using the passed-in credentials. */</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<a class="code" href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a> *<a class="code" href="grpc__security_8h.html#a4d63d4cac74652ec3fac7782acb4a2d4">grpc_secure_channel_create</a>(<a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds,</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                                         <span class="keyword">const</span> <span class="keywordtype">char</span> *target,</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                                         <span class="keyword">const</span> <a class="code" href="structgrpc__channel__args.html">grpc_channel_args</a> *args);</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="comment">/* --- grpc_server_credentials object. ---</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="comment">   A server credentials object represents a way to authenticate a server.  */</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div>
+<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">  163</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> <a class="code" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>;</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment">/* Releases a server_credentials object.</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="comment">   The creator of the server_credentials object is responsible for its release.</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="comment">   */</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a6e9f9320f4f8d2d534d04ed642f032ea">grpc_server_credentials_release</a>(<a class="code" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *creds);</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="comment">/* Creates an SSL server_credentials object.</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="comment">   - pem_roots_cert is the NULL-terminated string containing the PEM encoding of</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="comment">     the client root certificates. This parameter may be NULL if the server does</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">     not want the client to be authenticated with SSL.</span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">   - pem_key_cert_pairs is an array private key / certificate chains of the</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">     server. This parameter cannot be NULL.</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">   - num_key_cert_pairs indicates the number of items in the private_key_files</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">     and cert_chain_files parameters. It should be at least 1.</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">   - force_client_auth, if set to non-zero will force the client to authenticate</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">     with an SSL cert. Note that this option is ignored if pem_root_certs is</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="comment">     NULL. */</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<a class="code" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *<a class="code" href="grpc__security_8h.html#a3382907a4689c034a6f55bab4d5135b9">grpc_ssl_server_credentials_create</a>(</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a> *pem_key_cert_pairs,</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keywordtype">size_t</span> num_key_cert_pairs, <span class="keywordtype">int</span> force_client_auth);</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">/* --- Server-side secure ports. --- */</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="comment">/* Add a HTTP2 over an encrypted link over tcp listener.</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="comment">   Returns bound port number on success, 0 on failure.</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment">   REQUIRES: server not started */</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="keywordtype">int</span> <a class="code" href="grpc__security_8h.html#a5d0db200d00b62b79138472dc9b1fe59">grpc_server_add_secure_http2_port</a>(<a class="code" href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a> *server, <span class="keyword">const</span> <span class="keywordtype">char</span> *addr,</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                                      <a class="code" href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a> *creds);</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="comment">/* --- Call specific credentials. --- */</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment">/* Sets a credentials to a call. Can only be called on the client side before</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment">   grpc_call_start_batch. */</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<a class="code" href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a> <a class="code" href="grpc__security_8h.html#a56de54ae2563e67e236c10e8fa419f60">grpc_call_set_credentials</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call,</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;                                          <a class="code" href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a> *creds);</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">/* --- Authentication Context. --- */</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="comment">/* TODO(jboeuf): Define some well-known property names. */</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#aff82fdff9e7c40c4dd4bdc650e38e25a">  204</a></span>&#160;<span class="preprocessor">#define GRPC_TRANSPORT_SECURITY_TYPE_PROPERTY_NAME &quot;transport_security_type&quot;</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a35a35c597b7090b8ac7e2d854c9bcc7a">  205</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SSL_TRANSPORT_SECURITY_TYPE &quot;ssl&quot;</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#afee5e0fade6e0af1954529f1f08afe0c">  207</a></span>&#160;<span class="preprocessor">#define GRPC_X509_CN_PROPERTY_NAME &quot;x509_common_name&quot;</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#a1412421653b7999544296f56025a0f36">  208</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_X509_SAN_PROPERTY_NAME &quot;x509_subject_alternative_name&quot;</span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">  210</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>;</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html">  212</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> {</div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58">  213</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *<a class="code" href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58">ctx</a>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6">  214</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6">index</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7">  215</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7">name</a>;</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;} <a class="code" href="grpc__security_8h.html#a26981fdcb987d885b25d34c7dc66e4cf">grpc_auth_property_iterator</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="comment">/* value, if not NULL, is guaranteed to be NULL terminated. */</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html">  219</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__auth__property.html">grpc_auth_property</a> {</div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27">  220</a></span>&#160;  <span class="keywordtype">char</span> *<a class="code" href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27">name</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e">  221</a></span>&#160;  <span class="keywordtype">char</span> *<a class="code" href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e">value</a>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101">  222</a></span>&#160;  <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101">value_length</a>;</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;} <a class="code" href="grpc__security_8h.html#a010fe7d27deaa2ea50b765b48dbad429">grpc_auth_property</a>;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment">/* Returns NULL when the iterator is at the end. */</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="keyword">const</span> <a class="code" href="structgrpc__auth__property.html">grpc_auth_property</a> *<a class="code" href="grpc__security_8h.html#ac20e3890d5e5e0de6ae6b5cb57cae1ae">grpc_auth_property_iterator_next</a>(</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> *it);</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="comment">/* Iterates over the auth context. */</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> <a class="code" href="grpc__security_8h.html#aaad9fed074f7aebed63ed075bb6ff780">grpc_auth_context_property_iterator</a>(</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx);</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="comment">/* Gets the peer identity. Returns an empty iterator (first _next will return</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="comment">   NULL) if the peer is not authenticated. */</span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> <a class="code" href="grpc__security_8h.html#a144c6f3a56c8592489b3978e0c5caced">grpc_auth_context_peer_identity</a>(</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx);</div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="comment">/* Finds a property in the context. May return an empty iterator (first _next</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="comment">   will return NULL) if no property with this name was found in the context. */</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<a class="code" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a> <a class="code" href="grpc__security_8h.html#a5298ac64614986581fc314f63fa9afd7">grpc_auth_context_find_properties_by_name</a>(</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);</div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="comment">/* Gets the name of the property that indicates the peer identity. Will return</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="comment">   NULL if the peer is not authenticated. */</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="grpc__security_8h.html#ac05022ccd5b972ba089950437727ff23">grpc_auth_context_peer_identity_property_name</a>(</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    <span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx);</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="comment">/* Returns 1 if the peer is authenticated, 0 otherwise. */</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="keywordtype">int</span> <a class="code" href="grpc__security_8h.html#af33fe6681dedb389edbf708020680093">grpc_auth_context_peer_is_authenticated</a>(<span class="keyword">const</span> <a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *ctx);</div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment">/* Gets the auth context from the call. Caller needs to call</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment">   grpc_auth_context_release on the returned context. */</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *<a class="code" href="grpc__security_8h.html#a0b439e6d2875c8b5e2e901a959f6a2fe">grpc_call_auth_context</a>(<a class="code" href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a> *call);</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="comment">/* Releases the auth context returned from grpc_call_auth_context. */</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="keywordtype">void</span> <a class="code" href="grpc__security_8h.html#a2eea99f76030b21ad58afdf615f4d2b9">grpc_auth_context_release</a>(<a class="code" href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> *context);</div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_GRPC_SECURITY_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="grpc__security_8h_html_a5d0db200d00b62b79138472dc9b1fe59"><div class="ttname"><a href="grpc__security_8h.html#a5d0db200d00b62b79138472dc9b1fe59">grpc_server_add_secure_http2_port</a></div><div class="ttdeci">int grpc_server_add_secure_http2_port(grpc_server *server, const char *addr, grpc_server_credentials *creds)</div></div>
+<div class="ttc" id="structgrpc__auth__property_html_a07359a178c29240cab42a89ef047b101"><div class="ttname"><a href="structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101">grpc_auth_property::value_length</a></div><div class="ttdeci">size_t value_length</div><div class="ttdef"><b>Definition:</b> grpc_security.h:222</div></div>
+<div class="ttc" id="grpc__security_8h_html_aa724192e56fdc03827846f16752deccc"><div class="ttname"><a href="grpc__security_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a></div><div class="ttdeci">struct grpc_server_credentials grpc_server_credentials</div><div class="ttdef"><b>Definition:</b> grpc_security.h:163</div></div>
+<div class="ttc" id="grpc__security_8h_html_a56de54ae2563e67e236c10e8fa419f60"><div class="ttname"><a href="grpc__security_8h.html#a56de54ae2563e67e236c10e8fa419f60">grpc_call_set_credentials</a></div><div class="ttdeci">grpc_call_error grpc_call_set_credentials(grpc_call *call, grpc_credentials *creds)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a4d63d4cac74652ec3fac7782acb4a2d4"><div class="ttname"><a href="grpc__security_8h.html#a4d63d4cac74652ec3fac7782acb4a2d4">grpc_secure_channel_create</a></div><div class="ttdeci">grpc_channel * grpc_secure_channel_create(grpc_credentials *creds, const char *target, const grpc_channel_args *args)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a6c01e107d41e964458fdf701b8b81440"><div class="ttname"><a href="grpc__security_8h.html#a6c01e107d41e964458fdf701b8b81440">grpc_credentials_release</a></div><div class="ttdeci">void grpc_credentials_release(grpc_credentials *creds)</div></div>
+<div class="ttc" id="structgrpc__channel__args_html"><div class="ttname"><a href="structgrpc__channel__args.html">grpc_channel_args</a></div><div class="ttdoc">An array of arguments that can be passed around. </div><div class="ttdef"><b>Definition:</b> grpc.h:113</div></div>
+<div class="ttc" id="structgrpc__auth__property_html_af44f45ac4673a0298d00354c47d0907e"><div class="ttname"><a href="structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e">grpc_auth_property::value</a></div><div class="ttdeci">char * value</div><div class="ttdef"><b>Definition:</b> grpc_security.h:221</div></div>
+<div class="ttc" id="grpc__security_8h_html_a4f65f01fb23e963cc88bcdfbede70da7"><div class="ttname"><a href="grpc__security_8h.html#a4f65f01fb23e963cc88bcdfbede70da7">grpc_composite_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_composite_credentials_create(grpc_credentials *creds1, grpc_credentials *creds2)</div></div>
+<div class="ttc" id="grpc_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc_8h.html#a2bbbaad8f7a806f6c834b68c5dd916d8">grpc_server</a></div><div class="ttdeci">struct grpc_server grpc_server</div><div class="ttdoc">A server listens to some port and responds to request calls. </div><div class="ttdef"><b>Definition:</b> grpc.h:65</div></div>
+<div class="ttc" id="grpc__security_8h_html_a6112c5b60b1c0197531f80fdc56f7772"><div class="ttname"><a href="grpc__security_8h.html#a6112c5b60b1c0197531f80fdc56f7772">grpc_max_auth_token_lifetime</a></div><div class="ttdeci">const gpr_timespec grpc_max_auth_token_lifetime</div></div>
+<div class="ttc" id="grpc__security_8h_html_a5e3fb8f208c302245a1392c7ef16d170"><div class="ttname"><a href="grpc__security_8h.html#a5e3fb8f208c302245a1392c7ef16d170">grpc_google_default_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_google_default_credentials_create(void)</div></div>
+<div class="ttc" id="structgrpc__ssl__pem__key__cert__pair_html_a2d4e3bdbc59d906bc9ca8b873120fd72"><div class="ttname"><a href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">grpc_ssl_pem_key_cert_pair::private_key</a></div><div class="ttdeci">const char * private_key</div><div class="ttdef"><b>Definition:</b> grpc_security.h:74</div></div>
+<div class="ttc" id="grpc__security_8h_html_ac20e3890d5e5e0de6ae6b5cb57cae1ae"><div class="ttname"><a href="grpc__security_8h.html#ac20e3890d5e5e0de6ae6b5cb57cae1ae">grpc_auth_property_iterator_next</a></div><div class="ttdeci">const grpc_auth_property * grpc_auth_property_iterator_next(grpc_auth_property_iterator *it)</div></div>
+<div class="ttc" id="grpc_8h_html_a122f8f4f0a585396d993d9b55848f222"><div class="ttname"><a href="grpc_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a></div><div class="ttdeci">struct grpc_call grpc_call</div><div class="ttdoc">A Call represents an RPC. </div><div class="ttdef"><b>Definition:</b> grpc.h:70</div></div>
+<div class="ttc" id="structgrpc__auth__property_html_a83fb830ffe7321265dc9b628e9246a27"><div class="ttname"><a href="structgrpc__auth__property.html#a83fb830ffe7321265dc9b628e9246a27">grpc_auth_property::name</a></div><div class="ttdeci">char * name</div><div class="ttdef"><b>Definition:</b> grpc_security.h:220</div></div>
+<div class="ttc" id="grpc__security_8h_html_a17768c857575e4500cdd12bb94d3f33e"><div class="ttname"><a href="grpc__security_8h.html#a17768c857575e4500cdd12bb94d3f33e">grpc_credentials</a></div><div class="ttdeci">struct grpc_credentials grpc_credentials</div><div class="ttdef"><b>Definition:</b> grpc_security.h:48</div></div>
+<div class="ttc" id="structgrpc__auth__property__iterator_html_a971904d29fa6f6ca6a853d078cae2f58"><div class="ttname"><a href="structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58">grpc_auth_property_iterator::ctx</a></div><div class="ttdeci">const grpc_auth_context * ctx</div><div class="ttdef"><b>Definition:</b> grpc_security.h:213</div></div>
+<div class="ttc" id="grpc__security_8h_html_ac05022ccd5b972ba089950437727ff23"><div class="ttname"><a href="grpc__security_8h.html#ac05022ccd5b972ba089950437727ff23">grpc_auth_context_peer_identity_property_name</a></div><div class="ttdeci">const char * grpc_auth_context_peer_identity_property_name(const grpc_auth_context *ctx)</div></div>
+<div class="ttc" id="grpc__security_8h_html_af33fe6681dedb389edbf708020680093"><div class="ttname"><a href="grpc__security_8h.html#af33fe6681dedb389edbf708020680093">grpc_auth_context_peer_is_authenticated</a></div><div class="ttdeci">int grpc_auth_context_peer_is_authenticated(const grpc_auth_context *ctx)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a0d627ca897718091e4ceca5dce3ef10e"><div class="ttname"><a href="grpc__security_8h.html#a0d627ca897718091e4ceca5dce3ef10e">grpc_ssl_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_ssl_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair)</div></div>
+<div class="ttc" id="structgrpc__auth__property__iterator_html_a3838efa5eb622c7e2c071497132b1cc7"><div class="ttname"><a href="structgrpc__auth__property__iterator.html#a3838efa5eb622c7e2c071497132b1cc7">grpc_auth_property_iterator::name</a></div><div class="ttdeci">const char * name</div><div class="ttdef"><b>Definition:</b> grpc_security.h:215</div></div>
+<div class="ttc" id="grpc_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785b"><div class="ttname"><a href="grpc_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785b">grpc_call_error</a></div><div class="ttdeci">grpc_call_error</div><div class="ttdoc">Result of a grpc call. </div><div class="ttdef"><b>Definition:</b> grpc.h:156</div></div>
+<div class="ttc" id="structgrpc__auth__property__iterator_html_ac2b2a0501f097562a6d8856e3da5e7e6"><div class="ttname"><a href="structgrpc__auth__property__iterator.html#ac2b2a0501f097562a6d8856e3da5e7e6">grpc_auth_property_iterator::index</a></div><div class="ttdeci">size_t index</div><div class="ttdef"><b>Definition:</b> grpc_security.h:214</div></div>
+<div class="ttc" id="grpc__security_8h_html_a7ef8e179bb5d15c81dfd363924db0041"><div class="ttname"><a href="grpc__security_8h.html#a7ef8e179bb5d15c81dfd363924db0041">grpc_access_token_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_access_token_credentials_create(const char *access_token)</div></div>
+<div class="ttc" id="grpc__security_8h_html_ae42c358e718847c988aa690cb0fccab3"><div class="ttname"><a href="grpc__security_8h.html#ae42c358e718847c988aa690cb0fccab3">grpc_iam_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_iam_credentials_create(const char *authorization_token, const char *authority_selector)</div></div>
+<div class="ttc" id="structgrpc__auth__property__iterator_html"><div class="ttname"><a href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a></div><div class="ttdef"><b>Definition:</b> grpc_security.h:212</div></div>
+<div class="ttc" id="grpc_8h_html_a432bfa6b9f6603643cdf9de8804c254e"><div class="ttname"><a href="grpc_8h.html#a432bfa6b9f6603643cdf9de8804c254e">grpc_channel</a></div><div class="ttdeci">struct grpc_channel grpc_channel</div><div class="ttdoc">The Channel interface allows creation of Call objects. </div><div class="ttdef"><b>Definition:</b> grpc.h:62</div></div>
+<div class="ttc" id="structgrpc__ssl__pem__key__cert__pair_html"><div class="ttname"><a href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a></div><div class="ttdef"><b>Definition:</b> grpc_security.h:71</div></div>
+<div class="ttc" id="grpc__security_8h_html_aa13f0724cb7ff99995d7f0881c01d553"><div class="ttname"><a href="grpc__security_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a></div><div class="ttdeci">struct grpc_auth_context grpc_auth_context</div><div class="ttdef"><b>Definition:</b> grpc_security.h:210</div></div>
+<div class="ttc" id="grpc__security_8h_html_a26981fdcb987d885b25d34c7dc66e4cf"><div class="ttname"><a href="grpc__security_8h.html#a26981fdcb987d885b25d34c7dc66e4cf">grpc_auth_property_iterator</a></div><div class="ttdeci">struct grpc_auth_property_iterator grpc_auth_property_iterator</div></div>
+<div class="ttc" id="grpc__security_8h_html_a7a2440ad02b6a96adbd2c6e5d66fd7d2"><div class="ttname"><a href="grpc__security_8h.html#a7a2440ad02b6a96adbd2c6e5d66fd7d2">grpc_refresh_token_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_refresh_token_credentials_create(const char *json_refresh_token)</div></div>
+<div class="ttc" id="structgrpc__ssl__pem__key__cert__pair_html_a483c3601705853f48dfbc8ee66d5e656"><div class="ttname"><a href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">grpc_ssl_pem_key_cert_pair::cert_chain</a></div><div class="ttdeci">const char * cert_chain</div><div class="ttdef"><b>Definition:</b> grpc_security.h:78</div></div>
+<div class="ttc" id="grpc__security_8h_html_a15aa83608fad085b6244de659d322b27"><div class="ttname"><a href="grpc__security_8h.html#a15aa83608fad085b6244de659d322b27">grpc_service_account_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_service_account_credentials_create(const char *json_key, const char *scope, gpr_timespec token_lifetime)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a144c6f3a56c8592489b3978e0c5caced"><div class="ttname"><a href="grpc__security_8h.html#a144c6f3a56c8592489b3978e0c5caced">grpc_auth_context_peer_identity</a></div><div class="ttdeci">grpc_auth_property_iterator grpc_auth_context_peer_identity(const grpc_auth_context *ctx)</div></div>
+<div class="ttc" id="structgrpc__auth__property_html"><div class="ttname"><a href="structgrpc__auth__property.html">grpc_auth_property</a></div><div class="ttdef"><b>Definition:</b> grpc_security.h:219</div></div>
+<div class="ttc" id="grpc__security_8h_html_a3beb3fe683139856e1a13c27d760eb95"><div class="ttname"><a href="grpc__security_8h.html#a3beb3fe683139856e1a13c27d760eb95">grpc_compute_engine_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_compute_engine_credentials_create(void)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a010fe7d27deaa2ea50b765b48dbad429"><div class="ttname"><a href="grpc__security_8h.html#a010fe7d27deaa2ea50b765b48dbad429">grpc_auth_property</a></div><div class="ttdeci">struct grpc_auth_property grpc_auth_property</div></div>
+<div class="ttc" id="status_8h_html"><div class="ttname"><a href="status_8h.html">status.h</a></div></div>
+<div class="ttc" id="grpc__security_8h_html_aaad9fed074f7aebed63ed075bb6ff780"><div class="ttname"><a href="grpc__security_8h.html#aaad9fed074f7aebed63ed075bb6ff780">grpc_auth_context_property_iterator</a></div><div class="ttdeci">grpc_auth_property_iterator grpc_auth_context_property_iterator(const grpc_auth_context *ctx)</div></div>
+<div class="ttc" id="grpc__security_8h_html_af26993774cc991debd61e4a84ed49187"><div class="ttname"><a href="grpc__security_8h.html#af26993774cc991debd61e4a84ed49187">grpc_service_account_jwt_access_credentials_create</a></div><div class="ttdeci">grpc_credentials * grpc_service_account_jwt_access_credentials_create(const char *json_key, gpr_timespec token_lifetime)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a0b439e6d2875c8b5e2e901a959f6a2fe"><div class="ttname"><a href="grpc__security_8h.html#a0b439e6d2875c8b5e2e901a959f6a2fe">grpc_call_auth_context</a></div><div class="ttdeci">grpc_auth_context * grpc_call_auth_context(grpc_call *call)</div></div>
+<div class="ttc" id="structgpr__timespec_html"><div class="ttname"><a href="structgpr__timespec.html">gpr_timespec</a></div><div class="ttdef"><b>Definition:</b> time.h:60</div></div>
+<div class="ttc" id="grpc__security_8h_html_a6e9f9320f4f8d2d534d04ed642f032ea"><div class="ttname"><a href="grpc__security_8h.html#a6e9f9320f4f8d2d534d04ed642f032ea">grpc_server_credentials_release</a></div><div class="ttdeci">void grpc_server_credentials_release(grpc_server_credentials *creds)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a5298ac64614986581fc314f63fa9afd7"><div class="ttname"><a href="grpc__security_8h.html#a5298ac64614986581fc314f63fa9afd7">grpc_auth_context_find_properties_by_name</a></div><div class="ttdeci">grpc_auth_property_iterator grpc_auth_context_find_properties_by_name(const grpc_auth_context *ctx, const char *name)</div></div>
+<div class="ttc" id="grpc__security_8h_html_a2eea99f76030b21ad58afdf615f4d2b9"><div class="ttname"><a href="grpc__security_8h.html#a2eea99f76030b21ad58afdf615f4d2b9">grpc_auth_context_release</a></div><div class="ttdeci">void grpc_auth_context_release(grpc_auth_context *context)</div></div>
+<div class="ttc" id="grpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
+<div class="ttc" id="grpc__security_8h_html_a3382907a4689c034a6f55bab4d5135b9"><div class="ttname"><a href="grpc__security_8h.html#a3382907a4689c034a6f55bab4d5135b9">grpc_ssl_server_credentials_create</a></div><div class="ttdeci">grpc_server_credentials * grpc_ssl_server_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, int force_client_auth)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 495 - 0
core/histogram_8h.html

@@ -0,0 +1,495 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/histogram.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">histogram.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;<a class="el" href="port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br/>
+<code>#include &lt;stddef.h&gt;</code><br/>
+</div>
+<p><a href="histogram_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="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a7125b0cef0e61a441a17f887dbc073fc"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a></td></tr>
+<tr class="separator:a7125b0cef0e61a441a17f887dbc073fc"><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:a5da9d3dac4262c5ae1e974a649edbd5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a5da9d3dac4262c5ae1e974a649edbd5c">gpr_histogram_create</a> (double resolution, double max_bucket_start)</td></tr>
+<tr class="separator:a5da9d3dac4262c5ae1e974a649edbd5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7411a760aa075c1c27eeb9249d951c6c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a7411a760aa075c1c27eeb9249d951c6c">gpr_histogram_destroy</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *h)</td></tr>
+<tr class="separator:a7411a760aa075c1c27eeb9249d951c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63815a52b0236626a30480915ff51847"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a63815a52b0236626a30480915ff51847">gpr_histogram_add</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *h, double x)</td></tr>
+<tr class="separator:a63815a52b0236626a30480915ff51847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41caac8747588e75cf5fed974fcd90f2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a41caac8747588e75cf5fed974fcd90f2">gpr_histogram_merge</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *dst, <a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *src)</td></tr>
+<tr class="separator:a41caac8747588e75cf5fed974fcd90f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1a0a1b854c2af4d29175872fe5bb4431"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a1a0a1b854c2af4d29175872fe5bb4431">gpr_histogram_percentile</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram, double percentile)</td></tr>
+<tr class="separator:a1a0a1b854c2af4d29175872fe5bb4431"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a14d68ff71978bda93a07d019d993d83c"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a14d68ff71978bda93a07d019d993d83c">gpr_histogram_mean</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:a14d68ff71978bda93a07d019d993d83c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0979c6470e9192e5f83bcab01542dd91"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a0979c6470e9192e5f83bcab01542dd91">gpr_histogram_stddev</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:a0979c6470e9192e5f83bcab01542dd91"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ef00ceaa619ca09da4de17fc5a5769b"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a4ef00ceaa619ca09da4de17fc5a5769b">gpr_histogram_variance</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:a4ef00ceaa619ca09da4de17fc5a5769b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71e5aa88087c8595c7f5d01750f919cb"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a71e5aa88087c8595c7f5d01750f919cb">gpr_histogram_maximum</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:a71e5aa88087c8595c7f5d01750f919cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab89af54f76a690d82d1f065ceeda6a76"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#ab89af54f76a690d82d1f065ceeda6a76">gpr_histogram_minimum</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:ab89af54f76a690d82d1f065ceeda6a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a242b0541ee25271812d867d8f2734255"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a242b0541ee25271812d867d8f2734255">gpr_histogram_count</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:a242b0541ee25271812d867d8f2734255"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0332c47f841d8b0607e3327d8bc9a933"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a0332c47f841d8b0607e3327d8bc9a933">gpr_histogram_sum</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:a0332c47f841d8b0607e3327d8bc9a933"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5788652eb5350afcc534f563fd0265d3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#a5788652eb5350afcc534f563fd0265d3">gpr_histogram_sum_of_squares</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram)</td></tr>
+<tr class="separator:a5788652eb5350afcc534f563fd0265d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa7807dc3f06172d1513498761c3ad8c4"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#aa7807dc3f06172d1513498761c3ad8c4">gpr_histogram_get_contents</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram, size_t *count)</td></tr>
+<tr class="separator:aa7807dc3f06172d1513498761c3ad8c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa1acf09b75809398b4e45729e6a3ba30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="histogram_8h.html#aa1acf09b75809398b4e45729e6a3ba30">gpr_histogram_merge_contents</a> (<a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram, const <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> *data, size_t data_count, double min_seen, double max_seen, double sum, double sum_of_squares, double count)</td></tr>
+<tr class="separator:aa1acf09b75809398b4e45729e6a3ba30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a7125b0cef0e61a441a17f887dbc073fc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef struct <a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> <a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a63815a52b0236626a30480915ff51847"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_histogram_add </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>x</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="a242b0541ee25271812d867d8f2734255"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_count </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5da9d3dac4262c5ae1e974a649edbd5c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a>* gpr_histogram_create </td>
+          <td>(</td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>resolution</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>max_bucket_start</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="a7411a760aa075c1c27eeb9249d951c6c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_histogram_destroy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>h</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa7807dc3f06172d1513498761c3ad8c4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a>* gpr_histogram_get_contents </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t *&#160;</td>
+          <td class="paramname"><em>count</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="a71e5aa88087c8595c7f5d01750f919cb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_maximum </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a14d68ff71978bda93a07d019d993d83c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_mean </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a41caac8747588e75cf5fed974fcd90f2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int gpr_histogram_merge </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>dst</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>src</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="aa1acf09b75809398b4e45729e6a3ba30"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_histogram_merge_contents </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>data_count</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>min_seen</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>max_seen</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>sum</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>sum_of_squares</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>count</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="ab89af54f76a690d82d1f065ceeda6a76"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_minimum </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a1a0a1b854c2af4d29175872fe5bb4431"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_percentile </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>percentile</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="a0979c6470e9192e5f83bcab01542dd91"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_stddev </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a0332c47f841d8b0607e3327d8bc9a933"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_sum </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a5788652eb5350afcc534f563fd0265d3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_sum_of_squares </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4ef00ceaa619ca09da4de17fc5a5769b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">double gpr_histogram_variance </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *&#160;</td>
+          <td class="paramname"><em>histogram</em></td><td>)</td>
+          <td></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:05 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>

+ 193 - 0
core/histogram_8h_source.html

@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/histogram.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">histogram.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="histogram_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_HISTOGRAM_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_HISTOGRAM_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">   44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> <a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *<a class="code" href="histogram_8h.html#a5da9d3dac4262c5ae1e974a649edbd5c">gpr_histogram_create</a>(<span class="keywordtype">double</span> resolution, <span class="keywordtype">double</span> max_bucket_start);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="keywordtype">void</span> <a class="code" href="histogram_8h.html#a7411a760aa075c1c27eeb9249d951c6c">gpr_histogram_destroy</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *h);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">void</span> <a class="code" href="histogram_8h.html#a63815a52b0236626a30480915ff51847">gpr_histogram_add</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *h, <span class="keywordtype">double</span> x);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">/* The following merges the second histogram into the first. It only works</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">   if they have the same buckets and resolution. Returns 0 on failure, 1</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">   on success */</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="keywordtype">int</span> <a class="code" href="histogram_8h.html#a41caac8747588e75cf5fed974fcd90f2">gpr_histogram_merge</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *dst, <a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *src);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a1a0a1b854c2af4d29175872fe5bb4431">gpr_histogram_percentile</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram, <span class="keywordtype">double</span> percentile);</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a14d68ff71978bda93a07d019d993d83c">gpr_histogram_mean</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a0979c6470e9192e5f83bcab01542dd91">gpr_histogram_stddev</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a4ef00ceaa619ca09da4de17fc5a5769b">gpr_histogram_variance</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a71e5aa88087c8595c7f5d01750f919cb">gpr_histogram_maximum</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#ab89af54f76a690d82d1f065ceeda6a76">gpr_histogram_minimum</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a242b0541ee25271812d867d8f2734255">gpr_histogram_count</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a0332c47f841d8b0607e3327d8bc9a933">gpr_histogram_sum</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keywordtype">double</span> <a class="code" href="histogram_8h.html#a5788652eb5350afcc534f563fd0265d3">gpr_histogram_sum_of_squares</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keyword">const</span> <a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> *<a class="code" href="histogram_8h.html#aa7807dc3f06172d1513498761c3ad8c4">gpr_histogram_get_contents</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram,</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                                             <span class="keywordtype">size_t</span> *count);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="keywordtype">void</span> <a class="code" href="histogram_8h.html#aa1acf09b75809398b4e45729e6a3ba30">gpr_histogram_merge_contents</a>(<a class="code" href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a> *histogram,</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;                                  <span class="keyword">const</span> <a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a> *data, <span class="keywordtype">size_t</span> data_count,</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;                                  <span class="keywordtype">double</span> min_seen, <span class="keywordtype">double</span> max_seen, <span class="keywordtype">double</span> sum,</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;                                  <span class="keywordtype">double</span> sum_of_squares, <span class="keywordtype">double</span> count);</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_HISTOGRAM_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="port__platform_8h_html"><div class="ttname"><a href="port__platform_8h.html">port_platform.h</a></div></div>
+<div class="ttc" id="histogram_8h_html_a0332c47f841d8b0607e3327d8bc9a933"><div class="ttname"><a href="histogram_8h.html#a0332c47f841d8b0607e3327d8bc9a933">gpr_histogram_sum</a></div><div class="ttdeci">double gpr_histogram_sum(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="histogram_8h_html_ab89af54f76a690d82d1f065ceeda6a76"><div class="ttname"><a href="histogram_8h.html#ab89af54f76a690d82d1f065ceeda6a76">gpr_histogram_minimum</a></div><div class="ttdeci">double gpr_histogram_minimum(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="histogram_8h_html_a4ef00ceaa619ca09da4de17fc5a5769b"><div class="ttname"><a href="histogram_8h.html#a4ef00ceaa619ca09da4de17fc5a5769b">gpr_histogram_variance</a></div><div class="ttdeci">double gpr_histogram_variance(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="port__platform_8h_html_aa6abd4df815a5498d1a04b5e691a74a9"><div class="ttname"><a href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a></div><div class="ttdeci">uint32_t gpr_uint32</div><div class="ttdef"><b>Definition:</b> port_platform.h:309</div></div>
+<div class="ttc" id="histogram_8h_html_a41caac8747588e75cf5fed974fcd90f2"><div class="ttname"><a href="histogram_8h.html#a41caac8747588e75cf5fed974fcd90f2">gpr_histogram_merge</a></div><div class="ttdeci">int gpr_histogram_merge(gpr_histogram *dst, gpr_histogram *src)</div></div>
+<div class="ttc" id="histogram_8h_html_aa1acf09b75809398b4e45729e6a3ba30"><div class="ttname"><a href="histogram_8h.html#aa1acf09b75809398b4e45729e6a3ba30">gpr_histogram_merge_contents</a></div><div class="ttdeci">void gpr_histogram_merge_contents(gpr_histogram *histogram, const gpr_uint32 *data, size_t data_count, double min_seen, double max_seen, double sum, double sum_of_squares, double count)</div></div>
+<div class="ttc" id="histogram_8h_html_a71e5aa88087c8595c7f5d01750f919cb"><div class="ttname"><a href="histogram_8h.html#a71e5aa88087c8595c7f5d01750f919cb">gpr_histogram_maximum</a></div><div class="ttdeci">double gpr_histogram_maximum(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="histogram_8h_html_a14d68ff71978bda93a07d019d993d83c"><div class="ttname"><a href="histogram_8h.html#a14d68ff71978bda93a07d019d993d83c">gpr_histogram_mean</a></div><div class="ttdeci">double gpr_histogram_mean(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="histogram_8h_html_a5da9d3dac4262c5ae1e974a649edbd5c"><div class="ttname"><a href="histogram_8h.html#a5da9d3dac4262c5ae1e974a649edbd5c">gpr_histogram_create</a></div><div class="ttdeci">gpr_histogram * gpr_histogram_create(double resolution, double max_bucket_start)</div></div>
+<div class="ttc" id="histogram_8h_html_a5788652eb5350afcc534f563fd0265d3"><div class="ttname"><a href="histogram_8h.html#a5788652eb5350afcc534f563fd0265d3">gpr_histogram_sum_of_squares</a></div><div class="ttdeci">double gpr_histogram_sum_of_squares(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="histogram_8h_html_a242b0541ee25271812d867d8f2734255"><div class="ttname"><a href="histogram_8h.html#a242b0541ee25271812d867d8f2734255">gpr_histogram_count</a></div><div class="ttdeci">double gpr_histogram_count(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="histogram_8h_html_a7125b0cef0e61a441a17f887dbc073fc"><div class="ttname"><a href="histogram_8h.html#a7125b0cef0e61a441a17f887dbc073fc">gpr_histogram</a></div><div class="ttdeci">struct gpr_histogram gpr_histogram</div><div class="ttdef"><b>Definition:</b> histogram.h:44</div></div>
+<div class="ttc" id="histogram_8h_html_a63815a52b0236626a30480915ff51847"><div class="ttname"><a href="histogram_8h.html#a63815a52b0236626a30480915ff51847">gpr_histogram_add</a></div><div class="ttdeci">void gpr_histogram_add(gpr_histogram *h, double x)</div></div>
+<div class="ttc" id="histogram_8h_html_a7411a760aa075c1c27eeb9249d951c6c"><div class="ttname"><a href="histogram_8h.html#a7411a760aa075c1c27eeb9249d951c6c">gpr_histogram_destroy</a></div><div class="ttdeci">void gpr_histogram_destroy(gpr_histogram *h)</div></div>
+<div class="ttc" id="histogram_8h_html_a0979c6470e9192e5f83bcab01542dd91"><div class="ttname"><a href="histogram_8h.html#a0979c6470e9192e5f83bcab01542dd91">gpr_histogram_stddev</a></div><div class="ttdeci">double gpr_histogram_stddev(gpr_histogram *histogram)</div></div>
+<div class="ttc" id="histogram_8h_html_a1a0a1b854c2af4d29175872fe5bb4431"><div class="ttname"><a href="histogram_8h.html#a1a0a1b854c2af4d29175872fe5bb4431">gpr_histogram_percentile</a></div><div class="ttdeci">double gpr_histogram_percentile(gpr_histogram *histogram, double percentile)</div></div>
+<div class="ttc" id="histogram_8h_html_aa7807dc3f06172d1513498761c3ad8c4"><div class="ttname"><a href="histogram_8h.html#aa7807dc3f06172d1513498761c3ad8c4">gpr_histogram_get_contents</a></div><div class="ttdeci">const gpr_uint32 * gpr_histogram_get_contents(gpr_histogram *histogram, size_t *count)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 176 - 0
core/host__port_8h.html

@@ -0,0 +1,176 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/host_port.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">host_port.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="host__port_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="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a75d6ea0faeed039dc132873afce91508"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="host__port_8h.html#a75d6ea0faeed039dc132873afce91508">gpr_join_host_port</a> (char **out, const char *host, int port)</td></tr>
+<tr class="separator:a75d6ea0faeed039dc132873afce91508"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aacb0efdff2bb1b15d5e7edeb62ae4aea"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="host__port_8h.html#aacb0efdff2bb1b15d5e7edeb62ae4aea">gpr_split_host_port</a> (const char *name, char **host, char **port)</td></tr>
+<tr class="separator:aacb0efdff2bb1b15d5e7edeb62ae4aea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a75d6ea0faeed039dc132873afce91508"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int gpr_join_host_port </td>
+          <td>(</td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>out</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>host</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>port</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="aacb0efdff2bb1b15d5e7edeb62ae4aea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int gpr_split_host_port </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>host</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>port</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></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:05 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>

+ 165 - 0
core/host__port_8h_source.html

@@ -0,0 +1,165 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/host_port.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">host_port.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="host__port_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_HOST_PORT_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_HOST_PORT_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">/* Given a host and port, creates a newly-allocated string of the form</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">   &quot;host:port&quot; or &quot;[ho:st]:port&quot;, depending on whether the host contains colons</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">   like an IPv6 literal.  If the host is already bracketed, then additional</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">   brackets will not be added.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">   Usage is similar to gpr_asprintf: returns the number of bytes written</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">   (excluding the final &#39;\0&#39;), and *out points to a string which must later be</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">   destroyed using gpr_free().</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">   In the unlikely event of an error, returns -1 and sets *out to NULL. */</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="keywordtype">int</span> <a class="code" href="host__port_8h.html#a75d6ea0faeed039dc132873afce91508">gpr_join_host_port</a>(<span class="keywordtype">char</span> **out, <span class="keyword">const</span> <span class="keywordtype">char</span> *host, <span class="keywordtype">int</span> port);</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">/* Given a name in the form &quot;host:port&quot; or &quot;[ho:st]:port&quot;, split into hostname</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">   and port number, into newly allocated strings, which must later be</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">   destroyed using gpr_free().</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="comment">   Return 1 on success, 0 on failure. Guarantees *host and *port == NULL on</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="comment">   failure. */</span></div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">int</span> <a class="code" href="host__port_8h.html#aacb0efdff2bb1b15d5e7edeb62ae4aea">gpr_split_host_port</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">char</span> **host, <span class="keywordtype">char</span> **port);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_HOST_PORT_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="host__port_8h_html_aacb0efdff2bb1b15d5e7edeb62ae4aea"><div class="ttname"><a href="host__port_8h.html#aacb0efdff2bb1b15d5e7edeb62ae4aea">gpr_split_host_port</a></div><div class="ttdeci">int gpr_split_host_port(const char *name, char **host, char **port)</div></div>
+<div class="ttc" id="host__port_8h_html_a75d6ea0faeed039dc132873afce91508"><div class="ttname"><a href="host__port_8h.html#a75d6ea0faeed039dc132873afce91508">gpr_join_host_port</a></div><div class="ttdeci">int gpr_join_host_port(char **out, const char *host, int port)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 93 - 1
core/index.html

@@ -1 +1,93 @@
-Coming soon
+<!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: GRPC Core</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 class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- 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 class="header">
+  <div class="headertitle">
+<div class="title">GRPC Core </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1><a class="anchor" id="intro_sec"></a>
+The GRPC Core library is a low-level library designed</h1>
+<p>to be wrapped by higher level libraries.</p>
+<p>The top-level API is provided in <a class="el" href="grpc_8h.html">grpc.h</a>. Security related functionality lives in <a class="el" href="grpc__security_8h.html">grpc_security.h</a>. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

文件差异内容过多而无法显示
+ 15 - 0
core/jquery.js


+ 374 - 0
core/log_8h.html

@@ -0,0 +1,374 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/log.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">log.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br/>
+<code>#include &lt;stdarg.h&gt;</code><br/>
+</div>
+<p><a href="log_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="structgpr__log__func__args.html">gpr_log_func_args</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:a3e793245091f13bb7318a18b1166a773"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#a3e793245091f13bb7318a18b1166a773">GPR_DEBUG</a>&#160;&#160;&#160;__FILE__, __LINE__, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">GPR_LOG_SEVERITY_DEBUG</a></td></tr>
+<tr class="separator:a3e793245091f13bb7318a18b1166a773"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0d0d75690f79edc9294498c88f96703"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#af0d0d75690f79edc9294498c88f96703">GPR_INFO</a>&#160;&#160;&#160;__FILE__, __LINE__, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">GPR_LOG_SEVERITY_INFO</a></td></tr>
+<tr class="separator:af0d0d75690f79edc9294498c88f96703"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a63faedb3eefd93d1c0e79974be80cc36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#a63faedb3eefd93d1c0e79974be80cc36">GPR_ERROR</a>&#160;&#160;&#160;__FILE__, __LINE__, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">GPR_LOG_SEVERITY_ERROR</a></td></tr>
+<tr class="separator:a63faedb3eefd93d1c0e79974be80cc36"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ccf52ff690655cc22cd9d053650876f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#a6ccf52ff690655cc22cd9d053650876f">GPR_ASSERT</a>(x)</td></tr>
+<tr class="separator:a6ccf52ff690655cc22cd9d053650876f"><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:ad49303346a78cf4881129958214fde8d"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#ad49303346a78cf4881129958214fde8d">gpr_log_severity</a></td></tr>
+<tr class="separator:ad49303346a78cf4881129958214fde8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23f29195676c33c61ff08a7f0a3e69b0"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">gpr_log_func</a> )(<a class="el" href="structgpr__log__func__args.html">gpr_log_func_args</a> *args)</td></tr>
+<tr class="separator:a23f29195676c33c61ff08a7f0a3e69b0"><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:af10334b4085ac6985a2af9c08478ad48"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> { <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">GPR_LOG_SEVERITY_DEBUG</a>, 
+<a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">GPR_LOG_SEVERITY_INFO</a>, 
+<a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">GPR_LOG_SEVERITY_ERROR</a>
+ }</td></tr>
+<tr class="separator:af10334b4085ac6985a2af9c08478ad48"><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:a3badccbc5ec4c725eadbc07b8e5706eb"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#a3badccbc5ec4c725eadbc07b8e5706eb">gpr_log_severity_string</a> (<a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> severity)</td></tr>
+<tr class="separator:a3badccbc5ec4c725eadbc07b8e5706eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf6f383ed91d9f4e2e6bd79c57539fd1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">gpr_log</a> (const char *file, int line, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> severity, const char *format,...)</td></tr>
+<tr class="separator:acf6f383ed91d9f4e2e6bd79c57539fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7a3d59528754f8fbcfe54f6f8a72ec61"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#a7a3d59528754f8fbcfe54f6f8a72ec61">gpr_log_message</a> (const char *file, int line, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> severity, const char *message)</td></tr>
+<tr class="separator:a7a3d59528754f8fbcfe54f6f8a72ec61"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a75771a41e3bb2831df8043a57de05330"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log_8h.html#a75771a41e3bb2831df8043a57de05330">gpr_set_log_function</a> (<a class="el" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">gpr_log_func</a> func)</td></tr>
+<tr class="separator:a75771a41e3bb2831df8043a57de05330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a6ccf52ff690655cc22cd9d053650876f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_ASSERT</td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname">x</td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> {                                                \</div>
+<div class="line">    if (!(x)) {                                       <a class="code" href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">\</a></div>
+<div class="line"><a class="code" href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">      gpr_log</a>(<a class="code" href="log_8h.html#a63faedb3eefd93d1c0e79974be80cc36">GPR_ERROR</a>, <span class="stringliteral">&quot;assertion failed: %s&quot;</span>, #x); \</div>
+<div class="line">      abort();                                        \</div>
+<div class="line">    }                                                 \</div>
+<div class="line">  } <span class="keywordflow">while</span> (0)</div>
+<div class="ttc" id="log_8h_html_a63faedb3eefd93d1c0e79974be80cc36"><div class="ttname"><a href="log_8h.html#a63faedb3eefd93d1c0e79974be80cc36">GPR_ERROR</a></div><div class="ttdeci">#define GPR_ERROR</div><div class="ttdef"><b>Definition:</b> log.h:68</div></div>
+<div class="ttc" id="log_8h_html_acf6f383ed91d9f4e2e6bd79c57539fd1"><div class="ttname"><a href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">gpr_log</a></div><div class="ttdeci">void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...)</div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a3e793245091f13bb7318a18b1166a773"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_DEBUG&#160;&#160;&#160;__FILE__, __LINE__, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">GPR_LOG_SEVERITY_DEBUG</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a63faedb3eefd93d1c0e79974be80cc36"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_ERROR&#160;&#160;&#160;__FILE__, __LINE__, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">GPR_LOG_SEVERITY_ERROR</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="af0d0d75690f79edc9294498c88f96703"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_INFO&#160;&#160;&#160;__FILE__, __LINE__, <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">GPR_LOG_SEVERITY_INFO</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a23f29195676c33c61ff08a7f0a3e69b0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void(* gpr_log_func)(<a class="el" href="structgpr__log__func__args.html">gpr_log_func_args</a> *args)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad49303346a78cf4881129958214fde8d"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef enum <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a>  <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="af10334b4085ac6985a2af9c08478ad48"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</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="af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6"></a>GPR_LOG_SEVERITY_DEBUG</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1"></a>GPR_LOG_SEVERITY_INFO</em>&#160;</td><td class="fielddoc">
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4"></a>GPR_LOG_SEVERITY_ERROR</em>&#160;</td><td class="fielddoc">
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="acf6f383ed91d9f4e2e6bd79c57539fd1"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_log </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"><a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a>&#160;</td>
+          <td class="paramname"><em>severity</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</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="a7a3d59528754f8fbcfe54f6f8a72ec61"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_log_message </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"><a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a>&#160;</td>
+          <td class="paramname"><em>severity</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>message</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="a3badccbc5ec4c725eadbc07b8e5706eb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* gpr_log_severity_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a>&#160;</td>
+          <td class="paramname"><em>severity</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a75771a41e3bb2831df8043a57de05330"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void gpr_set_log_function </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">gpr_log_func</a>&#160;</td>
+          <td class="paramname"><em>func</em></td><td>)</td>
+          <td></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:05 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>

+ 221 - 0
core/log_8h_source.html

@@ -0,0 +1,221 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/log.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">log.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="log_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_LOG_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_LOG_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span> <span class="comment">/* for abort() */</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment">/* GPR log API.</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">   Usage (within grpc):</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">   int argument1 = 3;</span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">   char* argument2 = &quot;hello&quot;;</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">   gpr_log(GPR_DEBUG, &quot;format string %d&quot;, argument1);</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment">   gpr_log(GPR_INFO, &quot;hello world&quot;);</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">   gpr_log(GPR_ERROR, &quot;%d %s!!&quot;, argument1, argument2); */</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">/* The severity of a log message - use the #defines below when calling into</span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="comment">   gpr_log to additionally supply file and line data */</span></div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">   56</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> {</div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">   57</a></span>&#160;  <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">GPR_LOG_SEVERITY_DEBUG</a>,</div>
+<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">   58</a></span>&#160;  <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">GPR_LOG_SEVERITY_INFO</a>,</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">   59</a></span>&#160;  <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">GPR_LOG_SEVERITY_ERROR</a></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;} <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="comment">/* Returns a string representation of the log severity */</span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="log_8h.html#a3badccbc5ec4c725eadbc07b8e5706eb">gpr_log_severity_string</a>(<a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> severity);</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="comment">/* Macros to build log contexts at various severity levels */</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="log_8h.html#a3e793245091f13bb7318a18b1166a773">   66</a></span>&#160;<span class="preprocessor">#define GPR_DEBUG __FILE__, __LINE__, GPR_LOG_SEVERITY_DEBUG</span></div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="log_8h.html#af0d0d75690f79edc9294498c88f96703">   67</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_INFO __FILE__, __LINE__, GPR_LOG_SEVERITY_INFO</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="log_8h.html#a63faedb3eefd93d1c0e79974be80cc36">   68</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ERROR __FILE__, __LINE__, GPR_LOG_SEVERITY_ERROR</span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">/* Log a message. It&#39;s advised to use GPR_xxx above to generate the context</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="comment"> * for each message */</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="keywordtype">void</span> <a class="code" href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">gpr_log</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> line, <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> severity,</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;             <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="keywordtype">void</span> <a class="code" href="log_8h.html#a7a3d59528754f8fbcfe54f6f8a72ec61">gpr_log_message</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> line, <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> severity,</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;                     <span class="keyword">const</span> <span class="keywordtype">char</span> *message);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment">/* Log overrides: applications can use this API to intercept logging calls</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">   and use their own implementations */</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structgpr__log__func__args.html">   81</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structgpr__log__func__args.html#a7961b2303b10d4f66d1aee6b5857ef89">   82</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgpr__log__func__args.html#a7961b2303b10d4f66d1aee6b5857ef89">file</a>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structgpr__log__func__args.html#ae1a051bbc7e0ef6c58de0db3efda24bb">   83</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structgpr__log__func__args.html#ae1a051bbc7e0ef6c58de0db3efda24bb">line</a>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structgpr__log__func__args.html#af0b4b9d8beace1cae0d1a24783d70ccc">   84</a></span>&#160;  <a class="code" href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a> <a class="code" href="structgpr__log__func__args.html#af0b4b9d8beace1cae0d1a24783d70ccc">severity</a>;</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structgpr__log__func__args.html#ad9ce882bef15e3127620a8ef47f2b74b">   85</a></span>&#160;  <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structgpr__log__func__args.html#ad9ce882bef15e3127620a8ef47f2b74b">message</a>;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;} <a class="code" href="structgpr__log__func__args.html">gpr_log_func_args</a>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">   88</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">gpr_log_func</a>)(<a class="code" href="structgpr__log__func__args.html">gpr_log_func_args</a> *args);</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="keywordtype">void</span> <a class="code" href="log_8h.html#a75771a41e3bb2831df8043a57de05330">gpr_set_log_function</a>(<a class="code" href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">gpr_log_func</a> func);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment">/* abort() the process if x is zero, having written a line to the log.</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment">   Intended for internal invariants.  If the error can be recovered from,</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment">   without the possibility of corruption, or might best be reflected via</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="comment">   an exception in a higher-level language, consider returning error code.  */</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="log_8h.html#a6ccf52ff690655cc22cd9d053650876f">   96</a></span>&#160;<span class="preprocessor">#define GPR_ASSERT(x)                                 \</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">  do {                                                \</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="preprocessor">    if (!(x)) {                                       \</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor">      gpr_log(GPR_ERROR, &quot;assertion failed: %s&quot;, #x); \</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">      abort();                                        \</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor">    }                                                 \</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor">  } while (0)</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_LOG_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="log_8h_html_af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1"><div class="ttname"><a href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af6c13c67f06821c1629b7e019af4aaf1">GPR_LOG_SEVERITY_INFO</a></div><div class="ttdef"><b>Definition:</b> log.h:58</div></div>
+<div class="ttc" id="structgpr__log__func__args_html_ae1a051bbc7e0ef6c58de0db3efda24bb"><div class="ttname"><a href="structgpr__log__func__args.html#ae1a051bbc7e0ef6c58de0db3efda24bb">gpr_log_func_args::line</a></div><div class="ttdeci">int line</div><div class="ttdef"><b>Definition:</b> log.h:83</div></div>
+<div class="ttc" id="structgpr__log__func__args_html"><div class="ttname"><a href="structgpr__log__func__args.html">gpr_log_func_args</a></div><div class="ttdef"><b>Definition:</b> log.h:81</div></div>
+<div class="ttc" id="log_8h_html_af10334b4085ac6985a2af9c08478ad48"><div class="ttname"><a href="log_8h.html#af10334b4085ac6985a2af9c08478ad48">gpr_log_severity</a></div><div class="ttdeci">gpr_log_severity</div><div class="ttdef"><b>Definition:</b> log.h:56</div></div>
+<div class="ttc" id="log_8h_html_a3badccbc5ec4c725eadbc07b8e5706eb"><div class="ttname"><a href="log_8h.html#a3badccbc5ec4c725eadbc07b8e5706eb">gpr_log_severity_string</a></div><div class="ttdeci">const char * gpr_log_severity_string(gpr_log_severity severity)</div></div>
+<div class="ttc" id="structgpr__log__func__args_html_ad9ce882bef15e3127620a8ef47f2b74b"><div class="ttname"><a href="structgpr__log__func__args.html#ad9ce882bef15e3127620a8ef47f2b74b">gpr_log_func_args::message</a></div><div class="ttdeci">const char * message</div><div class="ttdef"><b>Definition:</b> log.h:85</div></div>
+<div class="ttc" id="structgpr__log__func__args_html_a7961b2303b10d4f66d1aee6b5857ef89"><div class="ttname"><a href="structgpr__log__func__args.html#a7961b2303b10d4f66d1aee6b5857ef89">gpr_log_func_args::file</a></div><div class="ttdeci">const char * file</div><div class="ttdef"><b>Definition:</b> log.h:82</div></div>
+<div class="ttc" id="log_8h_html_a23f29195676c33c61ff08a7f0a3e69b0"><div class="ttname"><a href="log_8h.html#a23f29195676c33c61ff08a7f0a3e69b0">gpr_log_func</a></div><div class="ttdeci">void(* gpr_log_func)(gpr_log_func_args *args)</div><div class="ttdef"><b>Definition:</b> log.h:88</div></div>
+<div class="ttc" id="log_8h_html_acf6f383ed91d9f4e2e6bd79c57539fd1"><div class="ttname"><a href="log_8h.html#acf6f383ed91d9f4e2e6bd79c57539fd1">gpr_log</a></div><div class="ttdeci">void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...)</div></div>
+<div class="ttc" id="log_8h_html_a7a3d59528754f8fbcfe54f6f8a72ec61"><div class="ttname"><a href="log_8h.html#a7a3d59528754f8fbcfe54f6f8a72ec61">gpr_log_message</a></div><div class="ttdeci">void gpr_log_message(const char *file, int line, gpr_log_severity severity, const char *message)</div></div>
+<div class="ttc" id="log_8h_html_a75771a41e3bb2831df8043a57de05330"><div class="ttname"><a href="log_8h.html#a75771a41e3bb2831df8043a57de05330">gpr_set_log_function</a></div><div class="ttdeci">void gpr_set_log_function(gpr_log_func func)</div></div>
+<div class="ttc" id="structgpr__log__func__args_html_af0b4b9d8beace1cae0d1a24783d70ccc"><div class="ttname"><a href="structgpr__log__func__args.html#af0b4b9d8beace1cae0d1a24783d70ccc">gpr_log_func_args::severity</a></div><div class="ttdeci">gpr_log_severity severity</div><div class="ttdef"><b>Definition:</b> log.h:84</div></div>
+<div class="ttc" id="log_8h_html_af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4"><div class="ttname"><a href="log_8h.html#af10334b4085ac6985a2af9c08478ad48a52b957eb23ac2207b5e1dcf15c2b3dd4">GPR_LOG_SEVERITY_ERROR</a></div><div class="ttdef"><b>Definition:</b> log.h:59</div></div>
+<div class="ttc" id="log_8h_html_af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6"><div class="ttname"><a href="log_8h.html#af10334b4085ac6985a2af9c08478ad48af7d2a0ad91b0787398220ddcd91f06d6">GPR_LOG_SEVERITY_DEBUG</a></div><div class="ttdef"><b>Definition:</b> log.h:57</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 126 - 0
core/log__win32_8h.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/log_win32.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">log_win32.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="log__win32_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="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ad8115cf8df2332d225d12cb87c21f536"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log__win32_8h.html#ad8115cf8df2332d225d12cb87c21f536">gpr_format_message</a> (DWORD messageid)</td></tr>
+<tr class="separator:ad8115cf8df2332d225d12cb87c21f536"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ad8115cf8df2332d225d12cb87c21f536"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* gpr_format_message </td>
+          <td>(</td>
+          <td class="paramtype">DWORD&#160;</td>
+          <td class="paramname"><em>messageid</em></td><td>)</td>
+          <td></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:05 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>

+ 151 - 0
core/log__win32_8h_source.html

@@ -0,0 +1,151 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/log_win32.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">log_win32.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="log__win32_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_LOG_WIN32_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_LOG_WIN32_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="comment">/* Returns a string allocated with gpr_malloc that contains a UTF-8</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment"> * formatted error message, corresponding to the error messageid.</span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment"> * Use in conjunction with GetLastError() et al.</span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="keywordtype">char</span> *<a class="code" href="log__win32_8h.html#ad8115cf8df2332d225d12cb87c21f536">gpr_format_message</a>(DWORD messageid);</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor"></span>}</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">/* GRPC_SUPPORT_LOG_WIN32_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="log__win32_8h_html_ad8115cf8df2332d225d12cb87c21f536"><div class="ttname"><a href="log__win32_8h.html#ad8115cf8df2332d225d12cb87c21f536">gpr_format_message</a></div><div class="ttdeci">char * gpr_format_message(DWORD messageid)</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

二进制
core/nav_f.png


二进制
core/nav_g.png


二进制
core/nav_h.png


二进制
core/open.png


+ 352 - 0
core/port__platform_8h.html

@@ -0,0 +1,352 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/port_platform.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">port_platform.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;stdint.h&gt;</code><br/>
+</div>
+<p><a href="port__platform_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="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a99f34e9b119908109486e91abedc933e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a99f34e9b119908109486e91abedc933e">GPR_PLATFORM_STRING</a>&#160;&#160;&#160;&quot;unknown&quot;</td></tr>
+<tr class="separator:a99f34e9b119908109486e91abedc933e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e8b19add0d8d0be9464f748be985576"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a4e8b19add0d8d0be9464f748be985576">GPR_CACHELINE_SIZE_LOG</a>&#160;&#160;&#160;6</td></tr>
+<tr class="separator:a4e8b19add0d8d0be9464f748be985576"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9b7cc620233bbab0bc57cfbbe9519ad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#ad9b7cc620233bbab0bc57cfbbe9519ad">GPR_CACHELINE_SIZE</a>&#160;&#160;&#160;(1 &lt;&lt; <a class="el" href="port__platform_8h.html#a4e8b19add0d8d0be9464f748be985576">GPR_CACHELINE_SIZE_LOG</a>)</td></tr>
+<tr class="separator:ad9b7cc620233bbab0bc57cfbbe9519ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaff7a6a2f0868f8b0648b74828ef0e4f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#aaff7a6a2f0868f8b0648b74828ef0e4f">GPR_INT64_MAX</a>&#160;&#160;&#160;(<a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a>)(~(<a class="el" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a>)0 &gt;&gt; 1)</td></tr>
+<tr class="separator:aaff7a6a2f0868f8b0648b74828ef0e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a53c934fa255faf3f8c4f028df105c8e2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a53c934fa255faf3f8c4f028df105c8e2">GPR_MAX_ALIGNMENT</a>&#160;&#160;&#160;16</td></tr>
+<tr class="separator:a53c934fa255faf3f8c4f028df105c8e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef49047a3be38448a61332117b306686"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#aef49047a3be38448a61332117b306686">GRPC_MUST_USE_RESULT</a></td></tr>
+<tr class="separator:aef49047a3be38448a61332117b306686"><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:a6c41ac43b02ec37b1e07967a8706e709"><td class="memItemLeft" align="right" valign="top">typedef int16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a6c41ac43b02ec37b1e07967a8706e709">gpr_int16</a></td></tr>
+<tr class="separator:a6c41ac43b02ec37b1e07967a8706e709"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7c9027ffa98b5efe1767efe79903c6b7"><td class="memItemLeft" align="right" valign="top">typedef int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a7c9027ffa98b5efe1767efe79903c6b7">gpr_int32</a></td></tr>
+<tr class="separator:a7c9027ffa98b5efe1767efe79903c6b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a71edab4bc3421f129764e5cb342f7181"><td class="memItemLeft" align="right" valign="top">typedef int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a></td></tr>
+<tr class="separator:a71edab4bc3421f129764e5cb342f7181"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aeeb41e29e7c7a916a4e0fb6cfb9f92e0"><td class="memItemLeft" align="right" valign="top">typedef uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#aeeb41e29e7c7a916a4e0fb6cfb9f92e0">gpr_uint8</a></td></tr>
+<tr class="separator:aeeb41e29e7c7a916a4e0fb6cfb9f92e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abb7bceac4325643af77af51c7b6af371"><td class="memItemLeft" align="right" valign="top">typedef uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#abb7bceac4325643af77af51c7b6af371">gpr_uint16</a></td></tr>
+<tr class="separator:abb7bceac4325643af77af51c7b6af371"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa6abd4df815a5498d1a04b5e691a74a9"><td class="memItemLeft" align="right" valign="top">typedef uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a></td></tr>
+<tr class="separator:aa6abd4df815a5498d1a04b5e691a74a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a737bb95b7b58d90b4215602d36ed65b6"><td class="memItemLeft" align="right" valign="top">typedef uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a></td></tr>
+<tr class="separator:a737bb95b7b58d90b4215602d36ed65b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ecb17ae580dbde63199ac206a732139"><td class="memItemLeft" align="right" valign="top">typedef intmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a3ecb17ae580dbde63199ac206a732139">gpr_intmax</a></td></tr>
+<tr class="separator:a3ecb17ae580dbde63199ac206a732139"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a72d9d0d00bd576cfc8eab61aaea76db2"><td class="memItemLeft" align="right" valign="top">typedef intptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a></td></tr>
+<tr class="separator:a72d9d0d00bd576cfc8eab61aaea76db2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abee5d576e1d284a7c8135df7d89af0f7"><td class="memItemLeft" align="right" valign="top">typedef uintmax_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#abee5d576e1d284a7c8135df7d89af0f7">gpr_uintmax</a></td></tr>
+<tr class="separator:abee5d576e1d284a7c8135df7d89af0f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab302f9bfe3be467072bd8c79847636d4"><td class="memItemLeft" align="right" valign="top">typedef uintptr_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="port__platform_8h.html#ab302f9bfe3be467072bd8c79847636d4">gpr_uintptr</a></td></tr>
+<tr class="separator:ab302f9bfe3be467072bd8c79847636d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ad9b7cc620233bbab0bc57cfbbe9519ad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_CACHELINE_SIZE&#160;&#160;&#160;(1 &lt;&lt; <a class="el" href="port__platform_8h.html#a4e8b19add0d8d0be9464f748be985576">GPR_CACHELINE_SIZE_LOG</a>)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a4e8b19add0d8d0be9464f748be985576"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_CACHELINE_SIZE_LOG&#160;&#160;&#160;6</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aaff7a6a2f0868f8b0648b74828ef0e4f"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_INT64_MAX&#160;&#160;&#160;(<a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a>)(~(<a class="el" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a>)0 &gt;&gt; 1)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a53c934fa255faf3f8c4f028df105c8e2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_MAX_ALIGNMENT&#160;&#160;&#160;16</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a99f34e9b119908109486e91abedc933e"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GPR_PLATFORM_STRING&#160;&#160;&#160;&quot;unknown&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aef49047a3be38448a61332117b306686"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GRPC_MUST_USE_RESULT</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="a6c41ac43b02ec37b1e07967a8706e709"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int16_t <a class="el" href="port__platform_8h.html#a6c41ac43b02ec37b1e07967a8706e709">gpr_int16</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7c9027ffa98b5efe1767efe79903c6b7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int32_t <a class="el" href="port__platform_8h.html#a7c9027ffa98b5efe1767efe79903c6b7">gpr_int32</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a71edab4bc3421f129764e5cb342f7181"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int64_t <a class="el" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a3ecb17ae580dbde63199ac206a732139"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef intmax_t <a class="el" href="port__platform_8h.html#a3ecb17ae580dbde63199ac206a732139">gpr_intmax</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a72d9d0d00bd576cfc8eab61aaea76db2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef intptr_t <a class="el" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abb7bceac4325643af77af51c7b6af371"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint16_t <a class="el" href="port__platform_8h.html#abb7bceac4325643af77af51c7b6af371">gpr_uint16</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aa6abd4df815a5498d1a04b5e691a74a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint32_t <a class="el" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a737bb95b7b58d90b4215602d36ed65b6"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint64_t <a class="el" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="aeeb41e29e7c7a916a4e0fb6cfb9f92e0"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uint8_t <a class="el" href="port__platform_8h.html#aeeb41e29e7c7a916a4e0fb6cfb9f92e0">gpr_uint8</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abee5d576e1d284a7c8135df7d89af0f7"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uintmax_t <a class="el" href="port__platform_8h.html#abee5d576e1d284a7c8135df7d89af0f7">gpr_uintmax</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab302f9bfe3be467072bd8c79847636d4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef uintptr_t <a class="el" href="port__platform_8h.html#ab302f9bfe3be467072bd8c79847636d4">gpr_uintptr</a></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:05 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>

+ 441 - 0
core/port__platform_8h_source.html

@@ -0,0 +1,441 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.6"/>
+<title>GRPC Core: include/grpc/support/port_platform.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">GRPC Core
+   &#160;<span id="projectnumber">0.10.0.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li><li class="navelem"><a class="el" href="dir_cad3142e04109052413f2d2a2d1813b0.html">support</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">port_platform.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="port__platform_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * Copyright 2015, Google Inc.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * All rights reserved.</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Redistribution and use in source and binary forms, with or without</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * modification, are permitted provided that the following conditions are</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * met:</span></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *     * Redistributions of source code must retain the above copyright</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * notice, this list of conditions and the following disclaimer.</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> *     * Redistributions in binary form must reproduce the above</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * copyright notice, this list of conditions and the following disclaimer</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * in the documentation and/or other materials provided with the</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * distribution.</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> *     * Neither the name of Google Inc. nor the names of its</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * contributors may be used to endorse or promote products derived from</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> * this software without specific prior written permission.</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR</span></div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="comment"> * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="comment"> * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment"> * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="comment"> *</span></div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="comment"> */</span></div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_PORT_PLATFORM_H</span></div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_SUPPORT_PORT_PLATFORM_H</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">/* Get windows.h included everywhere (we need it) */</span></div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#if defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32)</span></div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef WIN32_LEAN_AND_MEAN</span></div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED</span></div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define WIN32_LEAN_AND_MEAN</span></div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* WIN32_LEAN_AND_MEAN */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#ifndef NOMINMAX</span></div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_NOMINMX_WAS_NOT_DEFINED</span></div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define NOMINMAX</span></div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* NOMINMAX */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="preprocessor">#if defined(_WIN32_WINNT)</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if _WIN32_WINNT &lt; 0x0600</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef _WIN32_WINNT</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _WIN32_WINNT 0x0600</span></div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _WIN32_WINNT &lt; 0x0600 */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* defined(_WIN32_WINNT) */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#include &lt;windows.h&gt;</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#ifdef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED</span></div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED</span></div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef WIN32_LEAN_AND_MEAN</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#ifdef GRPC_NOMINMAX_WAS_NOT_DEFINED</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef GRPC_NOMINMAX_WAS_NOT_DEFINED</span></div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef NOMINMAX</span></div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32) */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="comment">/* Override this file with one for your platform if you need to redefine</span></div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="comment">   things.  */</span></div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#if !defined(GPR_NO_AUTODETECT_PLATFORM)</span></div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if defined(_WIN64) || defined(WIN64)</span></div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;windows&quot;</span></div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WIN32 1</span></div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_64 1</span></div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GETPID_IN_PROCESS_H 1</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WINSOCK_SOCKET 1</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef __GNUC__</span></div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_ATOMIC 1</span></div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_TLS 1</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WIN32_ATOMIC 1</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_MSVC_TLS 1</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WINDOWS_CRASH_HANDLER 1</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(_WIN32) || defined(WIN32)</span></div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;windows&quot;</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_32 1</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WIN32 1</span></div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GETPID_IN_PROCESS_H 1</span></div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WINSOCK_SOCKET 1</span></div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef __GNUC__</span></div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_ATOMIC 1</span></div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_TLS 1</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WIN32_ATOMIC 1</span></div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_MSVC_TLS 1</span></div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_WINDOWS_CRASH_HANDLER 1</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(ANDROID) || defined(__ANDROID__)</span></div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;android&quot;</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ANDROID 1</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_32 1</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_CPU_LINUX 1</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_SYNC 1</span></div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_TLS 1</span></div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_MULTIPOLL_WITH_POLL 1</span></div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_WAKEUP_FD 1</span></div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_LINUX_EVENTFD 1</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKET 1</span></div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETADDR 1</span></div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETUTILS 1</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_ENV 1</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_FILE 1</span></div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_STRING 1</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SUBPROCESS 1</span></div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SYNC 1</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_TIME 1</span></div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GETPID_IN_UNISTD_H 1</span></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_HAVE_MSG_NOSIGNAL 1</span></div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(__linux__)</span></div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;linux&quot;</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef _BSD_SOURCE</span></div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _BSD_SOURCE</span></div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef _DEFAULT_SOURCE</span></div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _DEFAULT_SOURCE</span></div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef _GNU_SOURCE</span></div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _GNU_SOURCE</span></div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;features.h&gt;</span></div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor">#define GPR_CPU_LINUX 1</span></div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_ATOMIC 1</span></div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_TLS 1</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_LINUX 1</span></div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_LINUX_MULTIPOLL_WITH_EPOLL 1</span></div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_WAKEUP_FD 1</span></div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKET 1</span></div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETADDR 1</span></div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef __GLIBC_PREREQ</span></div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if __GLIBC_PREREQ(2, 9)</span></div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_LINUX_EVENTFD 1</span></div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if __GLIBC_PREREQ(2, 10)</span></div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_LINUX_SOCKETUTILS 1</span></div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if __GLIBC_PREREQ(2, 17)</span></div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_LINUX_ENV 1</span></div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef GPR_LINUX_EVENTFD</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef GPR_LINUX_SOCKETUTILS</span></div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETUTILS</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef GPR_LINUX_ENV</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_ENV 1</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_FILE 1</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_STRING 1</span></div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SUBPROCESS 1</span></div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SYNC 1</span></div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_TIME 1</span></div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GETPID_IN_UNISTD_H 1</span></div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_HAVE_MSG_NOSIGNAL 1</span></div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef _LP64</span></div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_64 1</span></div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* _LP64 */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_32 1</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LP64 */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(__APPLE__)</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#include &lt;TargetConditionals.h&gt;</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor">#ifndef _BSD_SOURCE</span></div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _BSD_SOURCE</span></div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if TARGET_OS_IPHONE</span></div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;ios&quot;</span></div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_CPU_IPHONE 1</span></div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PTHREAD_TLS 1</span></div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* TARGET_OS_IPHONE */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;osx&quot;</span></div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_CPU_POSIX 1</span></div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_TLS 1</span></div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_ATOMIC 1</span></div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_LOG 1</span></div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_MULTIPOLL_WITH_POLL 1</span></div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_WAKEUP_FD 1</span></div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1</span></div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKET 1</span></div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETADDR 1</span></div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETUTILS 1</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_ENV 1</span></div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_FILE 1</span></div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_STRING 1</span></div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SUBPROCESS 1</span></div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SYNC 1</span></div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_TIME 1</span></div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GETPID_IN_UNISTD_H 1</span></div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_HAVE_SO_NOSIGPIPE 1</span></div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef _LP64</span></div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_64 1</span></div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* _LP64 */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_32 1</span></div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LP64 */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#elif defined(__FreeBSD__)</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;freebsd&quot;</span></div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef _BSD_SOURCE</span></div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define _BSD_SOURCE</span></div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_CPU_POSIX 1</span></div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_ATOMIC 1</span></div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_TLS 1</span></div>
+<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_LOG 1</span></div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_MULTIPOLL_WITH_POLL 1</span></div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_WAKEUP_FD 1</span></div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1</span></div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKET 1</span></div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETADDR 1</span></div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SOCKETUTILS 1</span></div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_ENV 1</span></div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_FILE 1</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_STRING 1</span></div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SUBPROCESS 1</span></div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_SYNC 1</span></div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_POSIX_TIME 1</span></div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GETPID_IN_UNISTD_H 1</span></div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_HAVE_SO_NOSIGPIPE 1</span></div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef _LP64</span></div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_64 1</span></div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else </span><span class="comment">/* _LP64 */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_ARCH_32 1</span></div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* _LP64 */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error Could not auto-detect platform</span></div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* GPR_NO_AUTODETECT_PLATFORM */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">#ifndef GPR_PLATFORM_STRING</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#warning &quot;GPR_PLATFORM_STRING not auto-detected&quot;</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a99f34e9b119908109486e91abedc933e">  244</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_PLATFORM_STRING &quot;unknown&quot;</span></div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;<span class="comment">/* For a common case, assume that the platform has a C99-like stdint.h */</span></div>
+<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div>
+<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div>
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment">/* Cache line alignment */</span></div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="preprocessor">#ifndef GPR_CACHELINE_SIZE_LOG</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#if defined(__i386__) || defined(__x86_64__)</span></div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_CACHELINE_SIZE_LOG 6</span></div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifndef GPR_CACHELINE_SIZE_LOG</span></div>
+<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="preprocessor"></span><span class="comment">/* A reasonable default guess. Note that overestimates tend to waste more</span></div>
+<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;<span class="comment">   space, while underestimates tend to waste more time. */</span></div>
+<div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a4e8b19add0d8d0be9464f748be985576">  259</a></span>&#160;<span class="preprocessor">#define GPR_CACHELINE_SIZE_LOG 6</span></div>
+<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* GPR_CACHELINE_SIZE_LOG */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif </span><span class="comment">/* GPR_CACHELINE_SIZE_LOG */</span><span class="preprocessor"></span></div>
+<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="port__platform_8h.html#ad9b7cc620233bbab0bc57cfbbe9519ad">  263</a></span>&#160;<span class="preprocessor">#define GPR_CACHELINE_SIZE (1 &lt;&lt; GPR_CACHELINE_SIZE_LOG)</span></div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;<span class="comment">/* scrub GCC_ATOMIC if it&#39;s not available on this compiler */</span></div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="preprocessor">#if defined(GPR_GCC_ATOMIC) &amp;&amp; !defined(__ATOMIC_RELAXED)</span></div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#undef GPR_GCC_ATOMIC</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GPR_GCC_SYNC 1</span></div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="comment">/* Validate platform combinations */</span></div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="preprocessor">#if defined(GPR_GCC_ATOMIC) + defined(GPR_GCC_SYNC) + \</span></div>
+<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="preprocessor">        defined(GPR_WIN32_ATOMIC) !=                  \</span></div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;<span class="preprocessor">    1</span></div>
+<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error Must define exactly one of GPR_GCC_ATOMIC, GPR_GCC_SYNC, GPR_WIN32_ATOMIC</span></div>
+<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="preprocessor">#if defined(GPR_ARCH_32) + defined(GPR_ARCH_64) != 1</span></div>
+<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error Must define exactly one of GPR_ARCH_32, GPR_ARCH_64</span></div>
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;<span class="preprocessor">#if defined(GPR_CPU_LINUX) + defined(GPR_CPU_POSIX) + defined(GPR_WIN32) + \</span></div>
+<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;<span class="preprocessor">        defined(GPR_CPU_IPHONE) + defined(GPR_CPU_CUSTOM) !=               \</span></div>
+<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="preprocessor">    1</span></div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error Must define exactly one of GPR_CPU_LINUX, GPR_CPU_POSIX, GPR_WIN32, GPR_CPU_IPHONE, GPR_CPU_CUSTOM</span></div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;<span class="preprocessor">#if defined(GPR_POSIX_MULTIPOLL_WITH_POLL) &amp;&amp; !defined(GPR_POSIX_SOCKET)</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error Must define GPR_POSIX_SOCKET to use GPR_POSIX_MULTIPOLL_WITH_POLL</span></div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="preprocessor">#if defined(GPR_POSIX_SOCKET) + defined(GPR_WINSOCK_SOCKET) + \</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">        defined(GPR_CUSTOM_SOCKET) !=                         \</span></div>
+<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;<span class="preprocessor">    1</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error Must define exactly one of GPR_POSIX_SOCKET, GPR_WINSOCK_SOCKET, GPR_CUSTOM_SOCKET</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;<span class="preprocessor">#if defined(GPR_MSVC_TLS) + defined(GPR_GCC_TLS) + defined(GPR_PTHREAD_TLS) + \</span></div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="preprocessor">        defined(GPR_CUSTOM_TLS) !=                                            \</span></div>
+<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;<span class="preprocessor">    1</span></div>
+<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#error Must define exactly one of GPR_MSVC_TLS, GPR_GCC_TLS, GPR_PTHREAD_TLS, GPR_CUSTOM_TLS</span></div>
+<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a6c41ac43b02ec37b1e07967a8706e709">  304</a></span>&#160;<span class="keyword">typedef</span> int16_t <a class="code" href="port__platform_8h.html#a6c41ac43b02ec37b1e07967a8706e709">gpr_int16</a>;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a7c9027ffa98b5efe1767efe79903c6b7">  305</a></span>&#160;<span class="keyword">typedef</span> int32_t <a class="code" href="port__platform_8h.html#a7c9027ffa98b5efe1767efe79903c6b7">gpr_int32</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">  306</a></span>&#160;<span class="keyword">typedef</span> int64_t <a class="code" href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a>;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="port__platform_8h.html#aeeb41e29e7c7a916a4e0fb6cfb9f92e0">  307</a></span>&#160;<span class="keyword">typedef</span> uint8_t <a class="code" href="port__platform_8h.html#aeeb41e29e7c7a916a4e0fb6cfb9f92e0">gpr_uint8</a>;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="port__platform_8h.html#abb7bceac4325643af77af51c7b6af371">  308</a></span>&#160;<span class="keyword">typedef</span> uint16_t <a class="code" href="port__platform_8h.html#abb7bceac4325643af77af51c7b6af371">gpr_uint16</a>;</div>
+<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">  309</a></span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a>;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">  310</a></span>&#160;<span class="keyword">typedef</span> uint64_t <a class="code" href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a>;</div>
+<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a3ecb17ae580dbde63199ac206a732139">  311</a></span>&#160;<span class="keyword">typedef</span> intmax_t <a class="code" href="port__platform_8h.html#a3ecb17ae580dbde63199ac206a732139">gpr_intmax</a>;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">  312</a></span>&#160;<span class="keyword">typedef</span> intptr_t <a class="code" href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a>;</div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="port__platform_8h.html#abee5d576e1d284a7c8135df7d89af0f7">  313</a></span>&#160;<span class="keyword">typedef</span> uintmax_t <a class="code" href="port__platform_8h.html#abee5d576e1d284a7c8135df7d89af0f7">gpr_uintmax</a>;</div>
+<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="port__platform_8h.html#ab302f9bfe3be467072bd8c79847636d4">  314</a></span>&#160;<span class="keyword">typedef</span> uintptr_t <a class="code" href="port__platform_8h.html#ab302f9bfe3be467072bd8c79847636d4">gpr_uintptr</a>;</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="comment">/* INT64_MAX is unavailable on some platforms. */</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="port__platform_8h.html#aaff7a6a2f0868f8b0648b74828ef0e4f">  317</a></span>&#160;<span class="preprocessor">#define GPR_INT64_MAX (gpr_int64)(~(gpr_uint64)0 &gt;&gt; 1)</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="comment">/* maximum alignment needed for any type on this platform, rounded up to a</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="comment">   power of two */</span></div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="port__platform_8h.html#a53c934fa255faf3f8c4f028df105c8e2">  321</a></span>&#160;<span class="preprocessor">#define GPR_MAX_ALIGNMENT 16</span></div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor">#ifndef GRPC_MUST_USE_RESULT</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#ifdef __GNUC__</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_MUST_USE_RESULT __attribute__((warn_unused_result))</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#else</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="port__platform_8h.html#aef49047a3be38448a61332117b306686">  327</a></span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define GRPC_MUST_USE_RESULT</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_SUPPORT_PORT_PLATFORM_H */</span><span class="preprocessor"></span></div>
+<div class="ttc" id="port__platform_8h_html_a72d9d0d00bd576cfc8eab61aaea76db2"><div class="ttname"><a href="port__platform_8h.html#a72d9d0d00bd576cfc8eab61aaea76db2">gpr_intptr</a></div><div class="ttdeci">intptr_t gpr_intptr</div><div class="ttdef"><b>Definition:</b> port_platform.h:312</div></div>
+<div class="ttc" id="port__platform_8h_html_aeeb41e29e7c7a916a4e0fb6cfb9f92e0"><div class="ttname"><a href="port__platform_8h.html#aeeb41e29e7c7a916a4e0fb6cfb9f92e0">gpr_uint8</a></div><div class="ttdeci">uint8_t gpr_uint8</div><div class="ttdef"><b>Definition:</b> port_platform.h:307</div></div>
+<div class="ttc" id="port__platform_8h_html_ab302f9bfe3be467072bd8c79847636d4"><div class="ttname"><a href="port__platform_8h.html#ab302f9bfe3be467072bd8c79847636d4">gpr_uintptr</a></div><div class="ttdeci">uintptr_t gpr_uintptr</div><div class="ttdef"><b>Definition:</b> port_platform.h:314</div></div>
+<div class="ttc" id="port__platform_8h_html_aa6abd4df815a5498d1a04b5e691a74a9"><div class="ttname"><a href="port__platform_8h.html#aa6abd4df815a5498d1a04b5e691a74a9">gpr_uint32</a></div><div class="ttdeci">uint32_t gpr_uint32</div><div class="ttdef"><b>Definition:</b> port_platform.h:309</div></div>
+<div class="ttc" id="port__platform_8h_html_abee5d576e1d284a7c8135df7d89af0f7"><div class="ttname"><a href="port__platform_8h.html#abee5d576e1d284a7c8135df7d89af0f7">gpr_uintmax</a></div><div class="ttdeci">uintmax_t gpr_uintmax</div><div class="ttdef"><b>Definition:</b> port_platform.h:313</div></div>
+<div class="ttc" id="port__platform_8h_html_a71edab4bc3421f129764e5cb342f7181"><div class="ttname"><a href="port__platform_8h.html#a71edab4bc3421f129764e5cb342f7181">gpr_int64</a></div><div class="ttdeci">int64_t gpr_int64</div><div class="ttdef"><b>Definition:</b> port_platform.h:306</div></div>
+<div class="ttc" id="port__platform_8h_html_abb7bceac4325643af77af51c7b6af371"><div class="ttname"><a href="port__platform_8h.html#abb7bceac4325643af77af51c7b6af371">gpr_uint16</a></div><div class="ttdeci">uint16_t gpr_uint16</div><div class="ttdef"><b>Definition:</b> port_platform.h:308</div></div>
+<div class="ttc" id="port__platform_8h_html_a7c9027ffa98b5efe1767efe79903c6b7"><div class="ttname"><a href="port__platform_8h.html#a7c9027ffa98b5efe1767efe79903c6b7">gpr_int32</a></div><div class="ttdeci">int32_t gpr_int32</div><div class="ttdef"><b>Definition:</b> port_platform.h:305</div></div>
+<div class="ttc" id="port__platform_8h_html_a737bb95b7b58d90b4215602d36ed65b6"><div class="ttname"><a href="port__platform_8h.html#a737bb95b7b58d90b4215602d36ed65b6">gpr_uint64</a></div><div class="ttdeci">uint64_t gpr_uint64</div><div class="ttdef"><b>Definition:</b> port_platform.h:310</div></div>
+<div class="ttc" id="port__platform_8h_html_a3ecb17ae580dbde63199ac206a732139"><div class="ttname"><a href="port__platform_8h.html#a3ecb17ae580dbde63199ac206a732139">gpr_intmax</a></div><div class="ttdeci">intmax_t gpr_intmax</div><div class="ttdef"><b>Definition:</b> port_platform.h:311</div></div>
+<div class="ttc" id="port__platform_8h_html_a6c41ac43b02ec37b1e07967a8706e709"><div class="ttname"><a href="port__platform_8h.html#a6c41ac43b02ec37b1e07967a8706e709">gpr_int16</a></div><div class="ttdeci">int16_t gpr_int16</div><div class="ttdef"><b>Definition:</b> port_platform.h:304</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Wed Aug 5 2015 08:17:05 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>

+ 26 - 0
core/search/all_0.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 9 - 0
core/search/all_0.js

@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['alloc_2eh',['alloc.h',['../alloc_8h.html',1,'']]],
+  ['args',['args',['../structgrpc__channel__args.html#a05aa7aeb14aa9ae5f4d6a34f5c222b76',1,'grpc_channel_args']]],
+  ['atm_2eh',['atm.h',['../atm_8h.html',1,'']]],
+  ['atm_5fgcc_5fatomic_2eh',['atm_gcc_atomic.h',['../atm__gcc__atomic_8h.html',1,'']]],
+  ['atm_5fgcc_5fsync_2eh',['atm_gcc_sync.h',['../atm__gcc__sync_8h.html',1,'']]],
+  ['atm_5fwin32_2eh',['atm_win32.h',['../atm__win32_8h.html',1,'']]]
+];

+ 26 - 0
core/search/all_1.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 8 - 0
core/search/all_1.js

@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['buffer_5fin',['buffer_in',['../structgrpc__byte__buffer__reader.html#a8856d955b045dab1a425fac372e0be22',1,'grpc_byte_buffer_reader']]],
+  ['buffer_5fout',['buffer_out',['../structgrpc__byte__buffer__reader.html#aa947e8d51e0b4333e2b68f0ac55f4e47',1,'grpc_byte_buffer_reader']]],
+  ['byte_5fbuffer_2eh',['byte_buffer.h',['../byte__buffer_8h.html',1,'']]],
+  ['byte_5fbuffer_5freader_2eh',['byte_buffer_reader.h',['../byte__buffer__reader_8h.html',1,'']]],
+  ['bytes',['bytes',['../structgpr__slice.html#a16646e1a137851f2b031cf2c431b2864',1,'gpr_slice::bytes()'],['../structgpr__slice.html#a39592633c4ad594a15b3a52aadff398d',1,'gpr_slice::bytes()']]]
+];

+ 26 - 0
core/search/all_10.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 15 - 0
core/search/all_10.js

@@ -0,0 +1,15 @@
+var searchData=
+[
+  ['tag',['tag',['../structgrpc__event.html#a883ab15e862db582116c72cdcdc4c201',1,'grpc_event']]],
+  ['thd_2eh',['thd.h',['../thd_8h.html',1,'']]],
+  ['time_2eh',['time.h',['../time_8h.html',1,'']]],
+  ['tls_2eh',['tls.h',['../tls_8h.html',1,'']]],
+  ['tls_5fgcc_2eh',['tls_gcc.h',['../tls__gcc_8h.html',1,'']]],
+  ['tls_5fmsvc_2eh',['tls_msvc.h',['../tls__msvc_8h.html',1,'']]],
+  ['tls_5fpthread_2eh',['tls_pthread.h',['../tls__pthread_8h.html',1,'']]],
+  ['trailing_5fmetadata',['trailing_metadata',['../structgrpc__op.html#a521b48faec3b3f7646a877055f118d47',1,'grpc_op::trailing_metadata()'],['../structgrpc__op.html#abb4d84434a0b74283c8b5d8d6501baf1',1,'grpc_op::trailing_metadata()']]],
+  ['trailing_5fmetadata_5fcount',['trailing_metadata_count',['../structgrpc__op.html#a4b9454278c105e08d54142adff37b5ab',1,'grpc_op']]],
+  ['tv_5fnsec',['tv_nsec',['../structgpr__timespec.html#ac326c2133cd003cb206715cf5f500268',1,'gpr_timespec']]],
+  ['tv_5fsec',['tv_sec',['../structgpr__timespec.html#af9294cf0049fd33c76ad2da925d9051e',1,'gpr_timespec']]],
+  ['type',['type',['../structgrpc__byte__buffer.html#aa7357d67e401d5bc9d10d8fed008dec8',1,'grpc_byte_buffer::type()'],['../structgrpc__arg.html#aa26f2d3c4b1649c9eb061d24a8c10fd4',1,'grpc_arg::type()'],['../structgrpc__event.html#a8e7f571b759f55db4f6bebc2a4f56ad7',1,'grpc_event::type()']]]
+];

+ 26 - 0
core/search/all_11.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 5 - 0
core/search/all_11.js

@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['unref',['unref',['../structgpr__slice__refcount.html#ae31a3f84f0032dd388418eee26aa9c00',1,'gpr_slice_refcount']]],
+  ['useful_2eh',['useful.h',['../useful_8h.html',1,'']]]
+];

+ 26 - 0
core/search/all_12.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 5 - 0
core/search/all_12.js

@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['value',['value',['../structgrpc__auth__property.html#af44f45ac4673a0298d00354c47d0907e',1,'grpc_auth_property::value()'],['../structgrpc__arg.html#ad2be4ee606c82fc084af1661d30f6f7f',1,'grpc_arg::value()'],['../structgrpc__metadata.html#a57b63d7b7a3e4720a0cc0d20bb2ecf36',1,'grpc_metadata::value()'],['../structcensus__stat.html#a3daa951eaf025870b0ab4b63343fe179',1,'census_stat::value()'],['../structgpr__stats__counter.html#ab9338ff7b5fd9f0c0830a8a788aab04a',1,'gpr_stats_counter::value()'],['../structgpr__gcc__thread__local.html#a057ec2885013c01ce37fffc6d9afece1',1,'gpr_gcc_thread_local::value()'],['../structgpr__msvc__thread__local.html#a0187c953da78c5a0620d75aaaaaa5798',1,'gpr_msvc_thread_local::value()']]],
+  ['value_5flength',['value_length',['../structgrpc__auth__property.html#a07359a178c29240cab42a89ef047b101',1,'grpc_auth_property::value_length()'],['../structgrpc__metadata.html#a2084add9ffe64cf337576114d189af3f',1,'grpc_metadata::value_length()']]]
+];

+ 26 - 0
core/search/all_13.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 4 - 0
core/search/all_13.js

@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['waiters',['waiters',['../structgpr__cancellable.html#a99dfebf899cae60307fb8b83e8cfdb43',1,'gpr_cancellable']]]
+];

+ 26 - 0
core/search/all_2.html

@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>

+ 35 - 0
core/search/all_2.js

@@ -0,0 +1,35 @@
+var searchData=
+[
+  ['cancellable_5fplatform_2eh',['cancellable_platform.h',['../cancellable__platform_8h.html',1,'']]],
+  ['cancelled',['cancelled',['../structgrpc__op.html#ae5a9717d4a69c46f343381596e223874',1,'grpc_op::cancelled()'],['../structgpr__cancellable.html#a1729b5836bf4181d092f3636368d17b2',1,'gpr_cancellable::cancelled()']]],
+  ['capacity',['capacity',['../structgrpc__metadata__array.html#a5b293b4f8e734b032b80741abf538a97',1,'grpc_metadata_array::capacity()'],['../structgpr__slice__buffer.html#a48b6efc57238e7abd0bcbb579219456e',1,'gpr_slice_buffer::capacity()']]],
+  ['census_2eh',['census.h',['../census_8h.html',1,'']]],
+  ['census_5fcontext',['census_context',['../census_8h.html#a27fc8788690179599713226f1f054736',1,'census.h']]],
+  ['census_5fcontext_5fdeserialize',['census_context_deserialize',['../census_8h.html#ad9daab242b41571299ac5b3bca71fc0d',1,'census.h']]],
+  ['census_5fcontext_5fdestroy',['census_context_destroy',['../census_8h.html#a5bfcd1edc546eeacf111c3316ae7785d',1,'census.h']]],
+  ['census_5fcontext_5fserialize',['census_context_serialize',['../census_8h.html#ad9a7d3170ecf720e1b22a4f255605748',1,'census.h']]],
+  ['census_5fenabled',['census_enabled',['../census_8h.html#a742616973e78aaf969389cea20feea9f',1,'census.h']]],
+  ['census_5ffeature_5fall',['CENSUS_FEATURE_ALL',['../census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aba96a94fb7af8cf1144ca14edc0b1f0c',1,'census.h']]],
+  ['census_5ffeature_5fcpu',['CENSUS_FEATURE_CPU',['../census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a4808bff624e2377596b86a6f58ab04b5',1,'census.h']]],
+  ['census_5ffeature_5fnone',['CENSUS_FEATURE_NONE',['../census_8h.html#abe92e59c22481b0de3742673cbbb1bf8aac1986834f37851b8d899c4a08c8e3ab',1,'census.h']]],
+  ['census_5ffeature_5fstats',['CENSUS_FEATURE_STATS',['../census_8h.html#abe92e59c22481b0de3742673cbbb1bf8a84c772b868e53ee3487c7bfc8e8b2f1a',1,'census.h']]],
+  ['census_5ffeature_5ftracing',['CENSUS_FEATURE_TRACING',['../census_8h.html#abe92e59c22481b0de3742673cbbb1bf8ab0722326e730113d5be97f643c3e6718',1,'census.h']]],
+  ['census_5ffeatures',['census_features',['../census_8h.html#abe92e59c22481b0de3742673cbbb1bf8',1,'census.h']]],
+  ['census_5finitialize',['census_initialize',['../census_8h.html#a4cea92157f3de215724f6bf4aeaee1b6',1,'census.h']]],
+  ['census_5frecord_5fstat',['census_record_stat',['../census_8h.html#a0cdd5ba86b080e6b5a4b47cfaa5b51cb',1,'census.h']]],
+  ['census_5fshutdown',['census_shutdown',['../census_8h.html#aa792b067548ecdd987d560b492c83d85',1,'census.h']]],
+  ['census_5fstat',['census_stat',['../structcensus__stat.html',1,'']]],
+  ['census_5fsupported',['census_supported',['../census_8h.html#ad5f627a64ac4febbc61d2b89801d40e9',1,'census.h']]],
+  ['cert_5fchain',['cert_chain',['../structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656',1,'grpc_ssl_pem_key_cert_pair']]],
+  ['clock_5ftype',['clock_type',['../structgpr__timespec.html#a6dd26976820fa71a7c5a710d4c1845ff',1,'gpr_timespec']]],
+  ['cmdline_2eh',['cmdline.h',['../cmdline_8h.html',1,'']]],
+  ['compression',['compression',['../structgrpc__byte__buffer.html#a3663648016e1076b82c5e731dc5b2399',1,'grpc_byte_buffer']]],
+  ['compression_2eh',['compression.h',['../compression_8h.html',1,'']]],
+  ['copy',['copy',['../structgrpc__arg.html#abef4f8be0109b19fcbe7f614f1243303',1,'grpc_arg']]],
+  ['count',['count',['../structgrpc__metadata__array.html#a314ce51b22a5934cc672f3736d44b9e4',1,'grpc_metadata_array::count()'],['../structgrpc__op.html#ac5983d0a5d60c26ca2d1b37d31ba2e2a',1,'grpc_op::count()'],['../structgpr__slice__buffer.html#a3adc77c3ef399ae0aa1ce1377e0e9fff',1,'gpr_slice_buffer::count()'],['../structgpr__refcount.html#ae1e2d58344b59ff6c0db0dc4f2953470',1,'gpr_refcount::count()']]],
+  ['cpu_2eh',['cpu.h',['../cpu_8h.html',1,'']]],
+  ['cs',['cs',['../structgpr__mu.html#abab5a72a693be27488fb7a9b2cb23e5c',1,'gpr_mu']]],
+  ['ctx',['ctx',['../structgrpc__auth__property__iterator.html#a971904d29fa6f6ca6a853d078cae2f58',1,'grpc_auth_property_iterator']]],
+  ['current',['current',['../structgrpc__byte__buffer__reader.html#aaa53ee469c319cbdd72d44548d1f981f',1,'grpc_byte_buffer_reader']]],
+  ['cv',['cv',['../structgpr__cancellable__list__.html#ae47b7ccae73001ae1539dfe3bcc8a459',1,'gpr_cancellable_list_']]]
+];

部分文件因为文件数量过多而无法显示