<tr class="memdesc:a2a32fcafdda423e2a11b4130d55951b4"><td class="mdescLeft"> </td><td class="mdescRight">Request the family of allocation functions in <em>functions</em> be used. <a href="#a2a32fcafdda423e2a11b4130d55951b4">More...</a><br/></td></tr>
<tr class="memdesc:a2a32fcafdda423e2a11b4130d55951b4"><td class="mdescLeft"> </td><td class="mdescRight">Request the family of allocation functions in <em>functions</em> be used. <a href="#a2a32fcafdda423e2a11b4130d55951b4">More...</a><br/></td></tr>
-<tr class="memdesc:ac0a25de49821991a7c7b1ea91a8f06ee"><td class="mdescLeft"> </td><td class="mdescRight">Return the family of allocation functions currently in effect. <a href="#ac0a25de49821991a7c7b1ea91a8f06ee">More...</a><br/></td></tr>
+<tr class="memdesc:aa96aa61deb3f72c6e5d8f57d08942602"><td class="mdescLeft"> </td><td class="mdescRight">Return the family of allocation functions currently in effect. <a href="#aa96aa61deb3f72c6e5d8f57d08942602">More...</a><br/></td></tr>
-<div class="ttc" id="alloc_8h_html_ac0a25de49821991a7c7b1ea91a8f06ee"><div class="ttname"><a href="alloc_8h.html#ac0a25de49821991a7c7b1ea91a8f06ee">gpr_get_allocation_functions</a></div><div class="ttdeci">GPRAPI gpr_allocation_functions gpr_get_allocation_functions()</div><div class="ttdoc">Return the family of allocation functions currently in effect. </div></div>
<div class="ttc" id="alloc_8h_html_a06063f6aa3522eaed0f1eae1987c31db"><div class="ttname"><a href="alloc_8h.html#a06063f6aa3522eaed0f1eae1987c31db">gpr_malloc_aligned</a></div><div class="ttdeci">GPRAPI void * gpr_malloc_aligned(size_t size, size_t alignment_log)</div><div class="ttdoc">aligned malloc, never returns NULL, will align to 1 << alignment_log </div></div>
<div class="ttc" id="alloc_8h_html_a06063f6aa3522eaed0f1eae1987c31db"><div class="ttname"><a href="alloc_8h.html#a06063f6aa3522eaed0f1eae1987c31db">gpr_malloc_aligned</a></div><div class="ttdeci">GPRAPI void * gpr_malloc_aligned(size_t size, size_t alignment_log)</div><div class="ttdoc">aligned malloc, never returns NULL, will align to 1 << alignment_log </div></div>
+<div class="ttc" id="alloc_8h_html_aa96aa61deb3f72c6e5d8f57d08942602"><div class="ttname"><a href="alloc_8h.html#aa96aa61deb3f72c6e5d8f57d08942602">gpr_get_allocation_functions</a></div><div class="ttdeci">GPRAPI gpr_allocation_functions gpr_get_allocation_functions(void)</div><div class="ttdoc">Return the family of allocation functions currently in effect. </div></div>
<div class="ttc" id="alloc_8h_html_ad9a7a782f4f00cad27d64d27ebbd1a72"><div class="ttname"><a href="alloc_8h.html#ad9a7a782f4f00cad27d64d27ebbd1a72">gpr_zalloc</a></div><div class="ttdeci">GPRAPI void * gpr_zalloc(size_t size)</div><div class="ttdoc">like malloc, but zero all bytes before returning them </div></div>
<div class="ttc" id="alloc_8h_html_ad9a7a782f4f00cad27d64d27ebbd1a72"><div class="ttname"><a href="alloc_8h.html#ad9a7a782f4f00cad27d64d27ebbd1a72">gpr_zalloc</a></div><div class="ttdeci">GPRAPI void * gpr_zalloc(size_t size)</div><div class="ttdoc">like malloc, but zero all bytes before returning them </div></div>
<div class="ttc" id="alloc_8h_html_a2a32fcafdda423e2a11b4130d55951b4"><div class="ttname"><a href="alloc_8h.html#a2a32fcafdda423e2a11b4130d55951b4">gpr_set_allocation_functions</a></div><div class="ttdeci">GPRAPI void gpr_set_allocation_functions(gpr_allocation_functions functions)</div><div class="ttdoc">Request the family of allocation functions in functions be used. </div></div>
<div class="ttc" id="alloc_8h_html_a2a32fcafdda423e2a11b4130d55951b4"><div class="ttname"><a href="alloc_8h.html#a2a32fcafdda423e2a11b4130d55951b4">gpr_set_allocation_functions</a></div><div class="ttdeci">GPRAPI void gpr_set_allocation_functions(gpr_allocation_functions functions)</div><div class="ttdoc">Request the family of allocation functions in functions be used. </div></div>
@@ -158,7 +158,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
-<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__context__iterator.html" target="_self">census_context_iterator</a></td><td class="desc">Structure used for iterating over the tags in a context </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="structcensus__context__status.html" target="_self">census_context_status</a></td><td class="desc">An instance of this structure is kept by every context, and records the basic information associated with the creation of that context </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="structcensus__rpc__name__info.html" target="_self">census_rpc_name_info</a></td><td class="desc">Represent functions to map RPC name ID to service/method names </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="structcensus__tag.html" target="_self">census_tag</a></td><td class="desc">A tag is a key:value pair </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="structcensus__timestamp.html" target="_self">census_timestamp</a></td><td class="desc">The concept of "operation" is a fundamental concept for Census </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="structcensus__value.html" target="_self">census_value</a></td><td class="desc">A single value to be recorded comprises two parts: an ID for the particular resource and the value to be recorded against it </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__avl.html" target="_self">gpr_avl</a></td><td class="desc">"pointer" to an AVL tree - this is a reference counted object - use gpr_avl_ref to add a reference, gpr_avl_unref when done with a reference </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__avl__node.html" target="_self">gpr_avl_node</a></td><td class="desc">Internal node of an AVL tree </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__avl__vtable.html" target="_self">gpr_avl_vtable</a></td><td class="desc">Vtable for the AVL tree The optional user_data is propagated from the top level gpr_avl_XXX API </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__gcc__thread__local.html" target="_self">gpr_gcc_thread_local</a></td><td class="desc">Thread local storage based on gcc compiler primitives </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__log__func__args.html" target="_self">gpr_log_func_args</a></td><td class="desc">Log overrides: applications can use this API to intercept logging calls and use their own implementations </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__msvc__thread__local.html" target="_self">gpr_msvc_thread_local</a></td><td class="desc">Thread local storage based on ms visual c compiler primitives </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__auth__metadata__context.html" target="_self">grpc_auth_metadata_context</a></td><td class="desc">Context that can be used by metadata credentials plugin in order to create auth related metadata </td></tr>
-<tr id="row_37_" 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__credentials__plugin.html" target="_self">grpc_metadata_credentials_plugin</a></td><td class="desc">Grpc_metadata_credentials plugin is an API user provided structure used to create grpc_credentials objects that can be set on a channel (composed) or a call </td></tr>
-<tr id="row_38_"><td class="entry"><img id="arr_38_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('38_')"/><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_38_0_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt=" " width="16" height="22" /><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_1_1grpc__op__data_1_1grpc__op__recv__initial__metadata.html" target="_self">grpc_op_recv_initial_metadata</a></td><td class="desc">Ownership of the array is with the caller, but ownership of the elements stays with the call object (ie key, value members are owned by the call object, recv_initial_metadata->array is owned by the caller) </td></tr>
-<tr id="row_38_0_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt=" " width="16" height="22" /><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_1_1grpc__op__data_1_1grpc__op__recv__message.html" target="_self">grpc_op_recv_message</a></td><td class="desc">Ownership of the byte buffer is moved to the caller; the caller must call grpc_byte_buffer_destroy on this value, or reuse it in a future op </td></tr>
-<tr id="row_40_"><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__slice__buffer.html" target="_self">grpc_slice_buffer</a></td><td class="desc">Represents an expandable array of slices, to be interpreted as a single item </td></tr>
-<tr id="row_41_" 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__slice__refcount.html" target="_self">grpc_slice_refcount</a></td><td class="desc">Reference count container for <a class="el" href="structgrpc__slice.html" title="A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...">grpc_slice</a> </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__avl.html" target="_self">gpr_avl</a></td><td class="desc">"pointer" to an AVL tree - this is a reference counted object - use gpr_avl_ref to add a reference, gpr_avl_unref when done with a reference </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__avl__node.html" target="_self">gpr_avl_node</a></td><td class="desc">Internal node of an AVL tree </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__avl__vtable.html" target="_self">gpr_avl_vtable</a></td><td class="desc">Vtable for the AVL tree The optional user_data is propagated from the top level gpr_avl_XXX API </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__gcc__thread__local.html" target="_self">gpr_gcc_thread_local</a></td><td class="desc">Thread local storage based on gcc compiler primitives </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__log__func__args.html" target="_self">gpr_log_func_args</a></td><td class="desc">Log overrides: applications can use this API to intercept logging calls and use their own implementations </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__msvc__thread__local.html" target="_self">gpr_msvc_thread_local</a></td><td class="desc">Thread local storage based on ms visual c compiler primitives </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__auth__metadata__context.html" target="_self">grpc_auth_metadata_context</a></td><td class="desc">Context that can be used by metadata credentials plugin in order to create auth related metadata </td></tr>
+<tr id="row_30_"><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__credentials__plugin.html" target="_self">grpc_metadata_credentials_plugin</a></td><td class="desc">Grpc_metadata_credentials plugin is an API user provided structure used to create grpc_credentials objects that can be set on a channel (composed) or a call </td></tr>
+<tr id="row_31_" class="even"><td class="entry"><img id="arr_31_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('31_')"/><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_31_0_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt=" " width="16" height="22" /><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_1_1grpc__op__data_1_1grpc__op__recv__initial__metadata.html" target="_self">grpc_op_recv_initial_metadata</a></td><td class="desc">Ownership of the array is with the caller, but ownership of the elements stays with the call object (ie key, value members are owned by the call object, recv_initial_metadata->array is owned by the caller) </td></tr>
+<tr id="row_31_0_2_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2blank.png" alt=" " width="16" height="22" /><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_1_1grpc__op__data_1_1grpc__op__recv__message.html" target="_self">grpc_op_recv_message</a></td><td class="desc">Ownership of the byte buffer is moved to the caller; the caller must call grpc_byte_buffer_destroy on this value, or reuse it in a future op </td></tr>
+<tr id="row_33_"><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__slice__buffer.html" target="_self">grpc_slice_buffer</a></td><td class="desc">Represents an expandable array of slices, to be interpreted as a single item </td></tr>
+<tr id="row_34_" 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__slice__refcount.html" target="_self">grpc_slice_refcount</a></td><td class="desc">Reference count container for <a class="el" href="structgrpc__slice.html" title="A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...">grpc_slice</a> </td></tr>
-<div class="ttc" id="structgpr__avl__vtable_html"><div class="ttname"><a href="structgpr__avl__vtable.html">gpr_avl_vtable</a></div><div class="ttdoc">vtable for the AVL tree The optional user_data is propagated from the top level gpr_avl_XXX API...</div><div class="ttdef"><b>Definition:</b> avl.h:39</div></div>
+<div class="ttc" id="structgpr__avl__vtable_html"><div class="ttname"><a href="structgpr__avl__vtable.html">gpr_avl_vtable</a></div><div class="ttdoc">vtable for the AVL tree The optional user_data is propagated from the top level gpr_avl_XXX API...</div><div class="ttdef"><b>Definition:</b> avl.h:43</div></div>
<div class="ttc" id="avl_8h_html_a67437810e910a0b5eaf783d1e59f6299"><div class="ttname"><a href="avl_8h.html#a67437810e910a0b5eaf783d1e59f6299">gpr_avl_is_empty</a></div><div class="ttdeci">GPRAPI int gpr_avl_is_empty(gpr_avl avl)</div><div class="ttdoc">Return 1 if avl is empty, 0 otherwise. </div></div>
<div class="ttc" id="avl_8h_html_a67437810e910a0b5eaf783d1e59f6299"><div class="ttname"><a href="avl_8h.html#a67437810e910a0b5eaf783d1e59f6299">gpr_avl_is_empty</a></div><div class="ttdeci">GPRAPI int gpr_avl_is_empty(gpr_avl avl)</div><div class="ttdoc">Return 1 if avl is empty, 0 otherwise. </div></div>
<div class="ttc" id="avl_8h_html_aef295ada15917867e6e1649b99197830"><div class="ttname"><a href="avl_8h.html#aef295ada15917867e6e1649b99197830">gpr_avl_ref</a></div><div class="ttdeci">GPRAPI gpr_avl gpr_avl_ref(gpr_avl avl, void *user_data)</div><div class="ttdoc">Add a reference to an existing tree - returns the tree as a convenience. </div></div>
<div class="ttc" id="avl_8h_html_aef295ada15917867e6e1649b99197830"><div class="ttname"><a href="avl_8h.html#aef295ada15917867e6e1649b99197830">gpr_avl_ref</a></div><div class="ttdeci">GPRAPI gpr_avl gpr_avl_ref(gpr_avl avl, void *user_data)</div><div class="ttdoc">Add a reference to an existing tree - returns the tree as a convenience. </div></div>
<div class="ttc" id="avl_8h_html_af809cc603919889ef2f5da7bb46f9f1b"><div class="ttname"><a href="avl_8h.html#af809cc603919889ef2f5da7bb46f9f1b">gpr_avl_remove</a></div><div class="ttdeci">GPRAPI gpr_avl gpr_avl_remove(gpr_avl avl, void *key, void *user_data)</div><div class="ttdoc">Return a new tree with key deleted implicitly unrefs avl to allow easy chaining. </div></div>
<div class="ttc" id="avl_8h_html_af809cc603919889ef2f5da7bb46f9f1b"><div class="ttname"><a href="avl_8h.html#af809cc603919889ef2f5da7bb46f9f1b">gpr_avl_remove</a></div><div class="ttdeci">GPRAPI gpr_avl gpr_avl_remove(gpr_avl avl, void *key, void *user_data)</div><div class="ttdoc">Return a new tree with key deleted implicitly unrefs avl to allow easy chaining. </div></div>
-<div class="ttc" id="structgpr__avl_html"><div class="ttname"><a href="structgpr__avl.html">gpr_avl</a></div><div class="ttdoc">"pointer" to an AVL tree - this is a reference counted object - use gpr_avl_ref to add a reference...</div><div class="ttdef"><b>Definition:</b> avl.h:56</div></div>
+<div class="ttc" id="structgpr__avl_html"><div class="ttname"><a href="structgpr__avl.html">gpr_avl</a></div><div class="ttdoc">"pointer" to an AVL tree - this is a reference counted object - use gpr_avl_ref to add a reference...</div><div class="ttdef"><b>Definition:</b> avl.h:60</div></div>
<div class="ttc" id="avl_8h_html_a22f47f7f803e1c2e48df0fa8ce40eb47"><div class="ttname"><a href="avl_8h.html#a22f47f7f803e1c2e48df0fa8ce40eb47">gpr_avl_add</a></div><div class="ttdeci">GPRAPI gpr_avl gpr_avl_add(gpr_avl avl, void *key, void *value, void *user_data)</div><div class="ttdoc">Return a new tree with (key, value) added to avl. </div></div>
<div class="ttc" id="avl_8h_html_a22f47f7f803e1c2e48df0fa8ce40eb47"><div class="ttname"><a href="avl_8h.html#a22f47f7f803e1c2e48df0fa8ce40eb47">gpr_avl_add</a></div><div class="ttdeci">GPRAPI gpr_avl gpr_avl_add(gpr_avl avl, void *key, void *value, void *user_data)</div><div class="ttdoc">Return a new tree with (key, value) added to avl. </div></div>
<div class="ttc" id="avl_8h_html_aeb1c9e0a533b8a25b593a806fa070f3f"><div class="ttname"><a href="avl_8h.html#aeb1c9e0a533b8a25b593a806fa070f3f">gpr_avl_unref</a></div><div class="ttdeci">GPRAPI void gpr_avl_unref(gpr_avl avl, void *user_data)</div><div class="ttdoc">Remove a reference to a tree - destroying it if there are no references left. </div></div>
<div class="ttc" id="avl_8h_html_aeb1c9e0a533b8a25b593a806fa070f3f"><div class="ttname"><a href="avl_8h.html#aeb1c9e0a533b8a25b593a806fa070f3f">gpr_avl_unref</a></div><div class="ttdeci">GPRAPI void gpr_avl_unref(gpr_avl avl, void *user_data)</div><div class="ttdoc">Remove a reference to a tree - destroying it if there are no references left. </div></div>
<div class="ttc" id="avl_8h_html_a31a6a15570ecac89eadb97e13e6b73bd"><div class="ttname"><a href="avl_8h.html#a31a6a15570ecac89eadb97e13e6b73bd">gpr_avl</a></div><div class="ttdeci">struct gpr_avl gpr_avl</div><div class="ttdoc">"pointer" to an AVL tree - this is a reference counted object - use gpr_avl_ref to add a reference...</div></div>
<div class="ttc" id="avl_8h_html_a31a6a15570ecac89eadb97e13e6b73bd"><div class="ttname"><a href="avl_8h.html#a31a6a15570ecac89eadb97e13e6b73bd">gpr_avl</a></div><div class="ttdeci">struct gpr_avl gpr_avl</div><div class="ttdoc">"pointer" to an AVL tree - this is a reference counted object - use gpr_avl_ref to add a reference...</div></div>
<div class="ttc" id="avl_8h_html_a7b4e175c2732d19931f686aeb7b4f570"><div class="ttname"><a href="avl_8h.html#a7b4e175c2732d19931f686aeb7b4f570">gpr_avl_vtable</a></div><div class="ttdeci">struct gpr_avl_vtable gpr_avl_vtable</div><div class="ttdoc">vtable for the AVL tree The optional user_data is propagated from the top level gpr_avl_XXX API...</div></div>
<div class="ttc" id="avl_8h_html_a7b4e175c2732d19931f686aeb7b4f570"><div class="ttname"><a href="avl_8h.html#a7b4e175c2732d19931f686aeb7b4f570">gpr_avl_vtable</a></div><div class="ttdeci">struct gpr_avl_vtable gpr_avl_vtable</div><div class="ttdoc">vtable for the AVL tree The optional user_data is propagated from the top level gpr_avl_XXX API...</div></div>
<div class="ttc" id="avl_8h_html_a25526da4bdaa6a799e36aa7c2e3e67fd"><div class="ttname"><a href="avl_8h.html#a25526da4bdaa6a799e36aa7c2e3e67fd">gpr_avl_maybe_get</a></div><div class="ttdeci">GPRAPI int gpr_avl_maybe_get(gpr_avl avl, void *key, void **value, void *user_data)</div><div class="ttdoc">Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to its value. </div></div>
<div class="ttc" id="avl_8h_html_a25526da4bdaa6a799e36aa7c2e3e67fd"><div class="ttname"><a href="avl_8h.html#a25526da4bdaa6a799e36aa7c2e3e67fd">gpr_avl_maybe_get</a></div><div class="ttdeci">GPRAPI int gpr_avl_maybe_get(gpr_avl avl, void *key, void **value, void *user_data)</div><div class="ttdoc">Return 1 if avl contains key, 0 otherwise; if it has the key, sets *value to its value. </div></div>
-<div class="ttc" id="structgpr__avl__vtable_html_aaaf0cee2aa90353bd8f2281389af5242"><div class="ttname"><a href="structgpr__avl__vtable.html#aaaf0cee2aa90353bd8f2281389af5242">gpr_avl_vtable::destroy_value</a></div><div class="ttdeci">void(* destroy_value)(void *value, void *user_data)</div><div class="ttdoc">destroy a value </div><div class="ttdef"><b>Definition:</b> avl.h:48</div></div>
<div class="ttc" id="avl_8h_html_a387f850dc2c55ba4e46c3f847e176ada"><div class="ttname"><a href="avl_8h.html#a387f850dc2c55ba4e46c3f847e176ada">gpr_avl_node</a></div><div class="ttdeci">struct gpr_avl_node gpr_avl_node</div><div class="ttdoc">internal node of an AVL tree </div></div>
<div class="ttc" id="avl_8h_html_a387f850dc2c55ba4e46c3f847e176ada"><div class="ttname"><a href="avl_8h.html#a387f850dc2c55ba4e46c3f847e176ada">gpr_avl_node</a></div><div class="ttdeci">struct gpr_avl_node gpr_avl_node</div><div class="ttdoc">internal node of an AVL tree </div></div>
-<div class="ttc" id="structgpr__avl__node_html"><div class="ttname"><a href="structgpr__avl__node.html">gpr_avl_node</a></div><div class="ttdoc">internal node of an AVL tree </div><div class="ttdef"><b>Definition:</b> avl.h:25</div></div>
+<div class="ttc" id="structgpr__avl__node_html"><div class="ttname"><a href="structgpr__avl__node.html">gpr_avl_node</a></div><div class="ttdoc">internal node of an AVL tree </div><div class="ttdef"><b>Definition:</b> avl.h:29</div></div>
-<tr class="memdesc:a5ab72d6615ee89c975c46ad4e50c1387"><td class="mdescLeft"> </td><td class="mdescRight">Returns a RAW byte buffer instance over the given slices (up to <em>nslices</em>). <a href="#a5ab72d6615ee89c975c46ad4e50c1387">More...</a><br/></td></tr>
-<tr class="memdesc:a49ca36baa74fa2f9ae0c615bf53cec7d"><td class="mdescLeft"> </td><td class="mdescRight">Returns a <em>compressed</em> RAW byte buffer instance over the given slices (up to <em>nslices</em>). <a href="#a49ca36baa74fa2f9ae0c615bf53cec7d">More...</a><br/></td></tr>
-<tr class="memdesc:a9532c0f54de763057e185a950368b0bb"><td class="mdescLeft"> </td><td class="mdescRight">Returns the size of the given byte buffer, in bytes. <a href="#a9532c0f54de763057e185a950368b0bb">More...</a><br/></td></tr>
-<tr class="memdesc:a8352c7f73cf930c8195e547bd1a5a242"><td class="mdescLeft"> </td><td class="mdescRight">Updates <em>slice</em> with the next piece of data from from <em>reader</em> and returns. <a href="#a8352c7f73cf930c8195e547bd1a5a242">More...</a><br/></td></tr>
-<tr class="memdesc:a4cbf1eb762ea3c6c08bcfc46201c7691"><td class="mdescLeft"> </td><td class="mdescRight">Merge all data from <em>reader</em> into single slice. <a href="#a4cbf1eb762ea3c6c08bcfc46201c7691">More...</a><br/></td></tr>
-<tr class="memdesc:ac7407c6fa60073adb166ca4f3cfbc8e7"><td class="mdescLeft"> </td><td class="mdescRight">Returns a RAW byte buffer instance from the output of <em>reader</em>. <a href="#ac7407c6fa60073adb166ca4f3cfbc8e7">More...</a><br/></td></tr>
-<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>
-<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 class="ttc" id="byte__buffer_8h_html_a5ab72d6615ee89c975c46ad4e50c1387"><div class="ttname"><a href="byte__buffer_8h.html#a5ab72d6615ee89c975c46ad4e50c1387">grpc_raw_byte_buffer_create</a></div><div class="ttdeci">GRPCAPI grpc_byte_buffer * grpc_raw_byte_buffer_create(grpc_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__slice_html"><div class="ttname"><a href="structgrpc__slice.html">grpc_slice</a></div><div class="ttdoc">A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...</div><div class="ttdef"><b>Definition:</b> slice.h:76</div></div>
-<div class="ttc" id="byte__buffer_8h_html_a9532c0f54de763057e185a950368b0bb"><div class="ttname"><a href="byte__buffer_8h.html#a9532c0f54de763057e185a950368b0bb">grpc_byte_buffer_length</a></div><div class="ttdeci">GRPCAPI 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="byte__buffer_8h_html_a8352c7f73cf930c8195e547bd1a5a242"><div class="ttname"><a href="byte__buffer_8h.html#a8352c7f73cf930c8195e547bd1a5a242">grpc_byte_buffer_reader_next</a></div><div class="ttdeci">GRPCAPI int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, grpc_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="byte__buffer_8h_html_affd8fb29176a60c44fe704983fa87406"><div class="ttname"><a href="byte__buffer_8h.html#affd8fb29176a60c44fe704983fa87406">grpc_byte_buffer_reader_init</a></div><div class="ttdeci">GRPCAPI int 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="byte__buffer_8h_html_a32c878db8b0a48035ce777844360a6f0"><div class="ttname"><a href="byte__buffer_8h.html#a32c878db8b0a48035ce777844360a6f0">grpc_byte_buffer_destroy</a></div><div class="ttdeci">GRPCAPI 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="compression__types_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9"><div class="ttname"><a href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a></div><div class="ttdeci">grpc_compression_algorithm</div><div class="ttdoc">The various compression algorithms supported by gRPC. </div><div class="ttdef"><b>Definition:</b> compression_types.h:56</div></div>
-<div class="ttc" id="byte__buffer_8h_html_ac7407c6fa60073adb166ca4f3cfbc8e7"><div class="ttname"><a href="byte__buffer_8h.html#ac7407c6fa60073adb166ca4f3cfbc8e7">grpc_raw_byte_buffer_from_reader</a></div><div class="ttdeci">GRPCAPI 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="byte__buffer_8h_html_a4cbf1eb762ea3c6c08bcfc46201c7691"><div class="ttname"><a href="byte__buffer_8h.html#a4cbf1eb762ea3c6c08bcfc46201c7691">grpc_byte_buffer_reader_readall</a></div><div class="ttdeci">GRPCAPI grpc_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader *reader)</div><div class="ttdoc">Merge all data from reader into single slice. </div></div>
-<div class="ttc" id="byte__buffer_8h_html_a49ca36baa74fa2f9ae0c615bf53cec7d"><div class="ttname"><a href="byte__buffer_8h.html#a49ca36baa74fa2f9ae0c615bf53cec7d">grpc_raw_compressed_byte_buffer_create</a></div><div class="ttdeci">GRPCAPI grpc_byte_buffer * grpc_raw_compressed_byte_buffer_create(grpc_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>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A tag is a key:value pair. <a href="structcensus__tag.html#details">More...</a><br/></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">An instance of this structure is kept by every context, and records the basic information associated with the creation of that context. <a href="structcensus__context__status.html#details">More...</a><br/></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure used for iterating over the tags in a context. <a href="structcensus__context__iterator.html#details">More...</a><br/></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">The concept of "operation" is a fundamental concept for Census. <a href="structcensus__timestamp.html#details">More...</a><br/></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Represent functions to map RPC name ID to service/method names. <a href="structcensus__rpc__name__info.html#details">More...</a><br/></td></tr>
-<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A single value to be recorded comprises two parts: an ID for the particular resource and the value to be recorded against it. <a href="structcensus__value.html#details">More...</a><br/></td></tr>
-<tr class="memdesc:ac3fa459cd0c1621953c46b07bac2faa7"><td class="mdescLeft"> </td><td class="mdescRight">Maximum length of a tag's key or value. <a href="#ac3fa459cd0c1621953c46b07bac2faa7">More...</a><br/></td></tr>
-<tr class="memdesc:a487ca94a4b349f1a7d3d28a21b154f4e"><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of propagatable tags. <a href="#a487ca94a4b349f1a7d3d28a21b154f4e">More...</a><br/></td></tr>
-<tr class="memitem:ac116a5843bd29f43a949c56ef5ae619a"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#ac116a5843bd29f43a949c56ef5ae619a">CENSUS_TAG_PROPAGATE</a>   1 /** Tag should be propagated over RPC */</td></tr>
-<tr class="memitem:ab3c3a66a8c2f392d4a14e75dc44e8931"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="census_8h.html#ab3c3a66a8c2f392d4a14e75dc44e8931">CENSUS_TAG_STATS</a>   2 /** Tag will be used for statistics aggregation */</td></tr>
<tr class="memdesc:a27fc8788690179599713226f1f054736"><td class="mdescLeft"> </td><td class="mdescRight">A Census Context is a handle used by Census to represent the current tracing and stats collection information. <a href="#a27fc8788690179599713226f1f054736">More...</a><br/></td></tr>
<tr class="memdesc:a27fc8788690179599713226f1f054736"><td class="mdescLeft"> </td><td class="mdescRight">A Census Context is a handle used by Census to represent the current tracing and stats collection information. <a href="#a27fc8788690179599713226f1f054736">More...</a><br/></td></tr>
-<tr class="memdesc:ad4ff7b1db813ee5318871121bb4281cc"><td class="mdescLeft"> </td><td class="mdescRight">Distributed traces can have a number of options. <a href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cc">More...</a><br/></td></tr>
-<tr class="memdesc:a850c1ca105245a514e76519d5edaad2c"><td class="mdescLeft"> </td><td class="mdescRight">Shutdown and startup census subsystem. <a href="#a850c1ca105245a514e76519d5edaad2c">More...</a><br/></td></tr>
-<tr class="memdesc:ae22d3c8dfe3bfac5e831b0135ff7a536"><td class="mdescLeft"> </td><td class="mdescRight">Return the features supported by the current census implementation (not all features will be available on all platforms). <a href="#ae22d3c8dfe3bfac5e831b0135ff7a536">More...</a><br/></td></tr>
-<tr class="memdesc:a6964222b3c20833883d7d05ab6b6e67e"><td class="mdescLeft"> </td><td class="mdescRight">Return the census features currently enabled. <a href="#a6964222b3c20833883d7d05ab6b6e67e">More...</a><br/></td></tr>
-<tr class="memdesc:a63289de665c241f31e9c32666310ec3a"><td class="mdescLeft"> </td><td class="mdescRight">Create a new context, adding and removing tags from an existing context. <a href="#a63289de665c241f31e9c32666310ec3a">More...</a><br/></td></tr>
-<tr class="memdesc:a12077dda197a10bf2198203eac1a348a"><td class="mdescLeft"> </td><td class="mdescRight">Get a pointer to the original status from the context creation. <a href="#a12077dda197a10bf2198203eac1a348a">More...</a><br/></td></tr>
-<tr class="memdesc:a756d86b68b73a9ad9dacdfdaeb2a865c"><td class="mdescLeft"> </td><td class="mdescRight">Get the contents of the "next" tag in the context. <a href="#a756d86b68b73a9ad9dacdfdaeb2a865c">More...</a><br/></td></tr>
-<tr class="memdesc:a610c654980b00da26ed7b2becca79f94"><td class="mdescLeft"> </td><td class="mdescRight">Get a context tag by key. <a href="#a610c654980b00da26ed7b2becca79f94">More...</a><br/></td></tr>
-<tr class="memdesc:a2a2dfc973cd259d93b0901c8b32e8f34"><td class="mdescLeft"> </td><td class="mdescRight">Get the current trace mask associated with this context. <a href="#a2a2dfc973cd259d93b0901c8b32e8f34">More...</a><br/></td></tr>
-<tr class="memdesc:a2088bf00a48a7a9b0a6e659fa5161ef9"><td class="mdescLeft"> </td><td class="mdescRight">Set the trace mask associated with a context. <a href="#a2088bf00a48a7a9b0a6e659fa5161ef9">More...</a><br/></td></tr>
-<tr class="memdesc:a57255eb87c6ade8ee6eb8856d3ecfc11"><td class="mdescLeft"> </td><td class="mdescRight">Mark the beginning of an RPC operation. <a href="#a57255eb87c6ade8ee6eb8856d3ecfc11">More...</a><br/></td></tr>
-<tr class="memdesc:ab20a8e42995181004f5fbc9a87e339d3"><td class="mdescLeft"> </td><td class="mdescRight">Add peer information to a context representing a client RPC operation. <a href="#ab20a8e42995181004f5fbc9a87e339d3">More...</a><br/></td></tr>
-<tr class="memdesc:a18e3c1cddf38f66a5e8cbf79d7084369"><td class="mdescLeft"> </td><td class="mdescRight">Start a server RPC operation. <a href="#a18e3c1cddf38f66a5e8cbf79d7084369">More...</a><br/></td></tr>
-<tr class="memdesc:aee31ac081d81e46746025b06071f1f0e"><td class="mdescLeft"> </td><td class="mdescRight">End an operation started by any of the census_start_*_op*() calls. <a href="#aee31ac081d81e46746025b06071f1f0e">More...</a><br/></td></tr>
-<tr class="memdesc:aacf722bf9259354d1ab7a81a6c2fd666"><td class="mdescLeft"> </td><td class="mdescRight">Insert a trace record into the trace stream. <a href="#aacf722bf9259354d1ab7a81a6c2fd666">More...</a><br/></td></tr>
-<tr class="memdesc:ad78c02761da0d8a7a70bf4add263f91f"><td class="mdescLeft"> </td><td class="mdescRight">Start a scan of existing trace records. <a href="#ad78c02761da0d8a7a70bf4add263f91f">More...</a><br/></td></tr>
-<tr class="memdesc:a22eb7df4c9b232d8962592d738007ecb"><td class="mdescLeft"> </td><td class="mdescRight">End a scan previously started by <a class="el" href="census_8h.html#ad78c02761da0d8a7a70bf4add263f91f" title="Start a scan of existing trace records. ">census_trace_scan_start()</a> <a href="#a22eb7df4c9b232d8962592d738007ecb">More...</a><br/></td></tr>
-<tr class="memdesc:aeb7f7e4f427236d00446d2eb836c5252"><td class="mdescLeft"> </td><td class="mdescRight">Determine the id of a resource, given its name. <a href="#aeb7f7e4f427236d00446d2eb836c5252">More...</a><br/></td></tr>
-<tr class="memdesc:a26acfcba7f6b3f2b86d0a7fdc45e32ba"><td class="mdescLeft"> </td><td class="mdescRight">Record new usage values against the given context. <a href="#a26acfcba7f6b3f2b86d0a7fdc45e32ba">More...</a><br/></td></tr>
<p>A Census Context is a handle used by Census to represent the current tracing and stats collection information. </p>
<p>A Census Context is a handle used by Census to represent the current tracing and stats collection information. </p>
-<p>Contexts should be propagated across RPC's (this is the responsibility of the local RPC system). A context is typically used as the first argument to most census functions. Conceptually, they should be thought of as specific to a single RPC/thread. The user visible context representation is that of a collection of key:value string pairs, each of which is termed a 'tag'; these form the basis against which Census metrics will be recorded. Keys are unique within a context. </p>
-
-</div>
-</div>
-<h2 class="groupheader">Enumeration Type Documentation</h2>
-<p>These are designed to be generic enough that they can (ultimately) be used in many different RPC systems (with differing implementations). Identify census features that can be enabled via <a class="el" href="census_8h.html#a850c1ca105245a514e76519d5edaad2c" title="Shutdown and startup census subsystem. ">census_initialize()</a>. </p>
-<p>Create a new context, adding and removing tags from an existing context. </p>
-<p>This will copy all tags from the 'tags' input, so it is recommended to add as many tags in a single operation as is practical for the client. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">base</td><td>Base context to build upon. Can be NULL. </td></tr>
- <tr><td class="paramname">tags</td><td>A set of tags to be added/changed/deleted. Tags with keys that are in 'tags', but not 'base', are added to the context. Keys that are in both 'tags' and 'base' will have their value/flags modified. Tags with keys in both, but with NULL values, will be deleted from the context. Tags with invalid (too long or short) keys or values will be ignored. If adding a tag will result in more than CENSUS_MAX_PROPAGATED_TAGS in either binary or non-binary tags, they will be ignored, as will deletions of tags that don't exist. </td></tr>
- <tr><td class="paramname">ntags</td><td>number of tags in 'tags' </td></tr>
- <tr><td class="paramname">status</td><td>If not NULL, will return a pointer to a <a class="el" href="structcensus__context__status.html" title="An instance of this structure is kept by every context, and records the basic information associated ...">census_context_status</a> structure containing information about the new context and status of the tags used in its creation. </td></tr>
-<p>These functions are intended for use by RPC systems only, for purposes of transmitting/receiving contexts. Encode a context into a buffer. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">context</td><td>context to be encoded </td></tr>
- <tr><td class="paramname">buffer</td><td>buffer into which the context will be encoded. </td></tr>
- <tr><td class="paramname">buf_size</td><td>number of available bytes in buffer. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>The number of buffer bytes consumed for the encoded context, or zero if the buffer was of insufficient size. </dd></dl>
-<p>The following concepts are used: Resource: Users record measurements for a single resource. Examples include RPC latency, CPU seconds consumed, and bytes transmitted. Aggregation: An aggregation of a set of measurements. Census supports the following aggregation types: Distribution - statistical distribution information, used for recording average, standard deviation etc. Can include a histogram. Interval - a count of events that happen in a rolling time window. View: A view is a combination of a Resource, a set of tag keys and an Aggregation. When a measurement for a Resource matches the View tags, it is recorded (for each unique set of tag values) using the Aggregation type. Each resource can have an arbitrary number of views by which it will be broken down.</p>
-<p>Census uses protos to define each of the above, and output results. This ensures unification across the different language and runtime implementations. The proto definitions can be found in src/proto/census. Define a new resource. <code>resource_pb</code> should contain an encoded Resource protobuf, <code>resource_pb_size</code> being the size of the buffer. Returns a -ve value on error, or a positive (>= 0) resource id (for use in <a class="el" href="census_8h.html#ac68fd1dbb1767d8e080ec22f4767be89" title="Delete a resource created by census_define_resource(). ">census_delete_resource()</a> and <a class="el" href="census_8h.html#a26acfcba7f6b3f2b86d0a7fdc45e32ba" title="Record new usage values against the given context. ">census_record_values()</a>). In order to be valid, a resource must have a name, and at least one numerator in its unit type. The resource name must be unique, and an error will be returned if it is not. </p>
-<p>Delete a resource created by <a class="el" href="census_8h.html#a689ea02b5b0907f69ecb0baee371aa55" title="Core stats collection API's. ">census_define_resource()</a>. </p>
-<p>The data pointed to by the trace buffer is guaranteed stable until the next <a class="el" href="census_8h.html#aeb5d22e80a87eabe9880f08c56e95bf1" title="Get a trace record. ">census_get_trace_record()</a> call (if the consume argument to census_trace_scan_start was non-zero) or <a class="el" href="census_8h.html#a22eb7df4c9b232d8962592d738007ecb" title="End a scan previously started by census_trace_scan_start() ">census_trace_scan_end()</a> is called (otherwise). </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">trace_record</td><td>structure that will be filled in with oldest trace record. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>-1 if an error occurred (e.g. no previous call to <a class="el" href="census_8h.html#ad78c02761da0d8a7a70bf4add263f91f" title="Start a scan of existing trace records. ">census_trace_scan_start()</a>), 0 if there is no more trace data (and trace_record will not be modified) or 1 otherwise. </dd></dl>
-<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#a850c1ca105245a514e76519d5edaad2c" title="Shutdown and startup census subsystem. ">census_initialize()</a> will return -1, otherwise the set of enabled features (which may be smaller than that provided in the <code>features</code> argument, see <a class="el" href="census_8h.html#ae22d3c8dfe3bfac5e831b0135ff7a536" title="Return the features supported by the current census implementation (not all features will be availabl...">census_supported()</a>) is returned. It is an error to call <a class="el" href="census_8h.html#a850c1ca105245a514e76519d5edaad2c" title="Shutdown and startup census subsystem. ">census_initialize()</a> more than once (without an intervening <a class="el" href="census_8h.html#ad21073b22ae5c30cad63a29340f54048">census_shutdown()</a>). These functions are not thread-safe. </p>
-<p>This function should be called as early in the client RPC path as possible. This function will create a new context. If the context argument is non-null, then the new context will inherit all its properties, with the following changes:</p>
-<ul>
-<li>create a new operation ID for the new context, marking it as a child of the previous operation.</li>
-<li>use the new RPC path and peer information for tracing and stats collection purposes, rather than those from the original context</li>
-</ul>
-<p>If the context argument is NULL, then a new root context is created. This is particularly important for tracing purposes (the trace spans generated will be unassociated with any other trace spans, except those downstream). The trace_mask will be used for tracing operations associated with the new context.</p>
-<p>In some RPC systems (e.g. where load balancing is used), peer information may not be available at the time the operation starts. In this case, use a NULL value for peer, and set it later using the <a class="el" href="census_8h.html#ab20a8e42995181004f5fbc9a87e339d3" title="Add peer information to a context representing a client RPC operation. ">census_set_rpc_client_peer()</a> function.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">context</td><td>The parent context. Can be NULL. </td></tr>
- <tr><td class="paramname">rpc_name_id</td><td>The rpc name identifier to be associated with this RPC. </td></tr>
- <tr><td class="paramname">rpc_name_info</td><td>Used to decode rpc_name_id. </td></tr>
- <tr><td class="paramname">peer</td><td>RPC peer. If not available at the time, NULL can be used, and a later <a class="el" href="census_8h.html#ab20a8e42995181004f5fbc9a87e339d3" title="Add peer information to a context representing a client RPC operation. ">census_set_rpc_client_peer()</a> call made. </td></tr>
- <tr><td class="paramname">trace_mask</td><td>An OR of census_trace_mask_values values. Only used in the creation of a new root context (context == NULL). </td></tr>
- <tr><td class="paramname">start_time</td><td>A timestamp returned from <a class="el" href="census_8h.html#a57255eb87c6ade8ee6eb8856d3ecfc11" title="Mark the beginning of an RPC operation. ">census_start_rpc_op_timestamp()</a>. Can be NULL. Used to set the true time the operation begins.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A new census context. </dd></dl>
-<p>In general, this function works very similarly to census_start_client_rpc_op, with the primary difference being the replacement of host/path information with the more generic family/name tags. If the context argument is non-null, then the new context will inherit all its properties, with the following changes:</p>
-<ul>
-<li>create a new operation ID for the new context, marking it as a child of the previous operation.</li>
-<li>use the family and name information for tracing and stats collection purposes, rather than those from the original context</li>
-</ul>
-<p>If the context argument is NULL, then a new root context is created. This is particularly important for tracing purposes (the trace spans generated will be unassociated with any other trace spans, except those downstream). The trace_mask will be used for tracing operations associated with the new context.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">context</td><td>The base context. Can be NULL. </td></tr>
- <tr><td class="paramname">family</td><td>Family name to associate with the trace </td></tr>
- <tr><td class="paramname">name</td><td>Name within family to associate with traces/stats </td></tr>
- <tr><td class="paramname">trace_mask</td><td>An OR of census_trace_mask_values values. Only used if context is NULL.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A new census context. </dd></dl>
-<p>The information required to call the functions to record the start of RPC operations (both client and server) may not be callable at the true start time of the operation, due to information not being available (e.g. the census context data will not be available in a server RPC until at least initial metadata has been processed). To ensure correct CPU accounting and latency recording, RPC systems can call this function to get the timestamp of operation beginning. This can later be used as an argument to census_start_{client,server}_rpc_op(). NB: for correct CPU accounting, the system must guarantee that the same thread is used for all request processing after this function is called.</p>
-<dl class="section return"><dt>Returns</dt><dd>A timestamp representing the operation start time. </dd></dl>
-<p>Returns a new context to be used in future census calls. If buffer is non-NULL, then the buffer contents should represent the client context, as generated by census_context_serialize(). If buffer is NULL, a new root context is created.</p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">buffer</td><td>Buffer containing bytes output from census_context_serialize(). </td></tr>
- <tr><td class="paramname">rpc_name_id</td><td>The rpc name identifier to be associated with this RPC. </td></tr>
- <tr><td class="paramname">rpc_name_info</td><td>Used to decode rpc_name_id. </td></tr>
- <tr><td class="paramname">trace_mask</td><td>An OR of census_trace_mask_values values. Only used in the creation of a new root context (buffer == NULL). </td></tr>
- <tr><td class="paramname">start_time</td><td>A timestamp returned from <a class="el" href="census_8h.html#a57255eb87c6ade8ee6eb8856d3ecfc11" title="Mark the beginning of an RPC operation. ">census_start_rpc_op_timestamp()</a>. Can be NULL. Used to set the true time the operation begins.</td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>A new census context. </dd></dl>
-<p>End a scan previously started by <a class="el" href="census_8h.html#ad78c02761da0d8a7a70bf4add263f91f" title="Start a scan of existing trace records. ">census_trace_scan_start()</a> </p>
-<p>While a scan is ongoing, addition of new trace records will be blocked if the underlying trace buffers fill up, so trace processing systems should endeavor to complete reading as soon as possible. </p>
-<dl class="params"><dt>Parameters</dt><dd>
- <table class="params">
- <tr><td class="paramname">consume</td><td>if non-zero, indicates that reading records also "consumes" the previously read record - i.e. releases space in the trace log while scanning is ongoing. </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="section return"><dt>Returns</dt><dd>0 on success, non-zero on failure (e.g. if a scan is already ongoing) </dd></dl>
+<p>Contexts should be propagated across RPC's (this is the responsibility of the local RPC system). </p>
-<div class="ttc" id="structcensus__context__status_html_a4f2fbaa6bfdadc681a74e6fd947f6e7e"><div class="ttname"><a href="structcensus__context__status.html#a4f2fbaa6bfdadc681a74e6fd947f6e7e">census_context_status::n_modified_tags</a></div><div class="ttdeci">int n_modified_tags</div><div class="ttdoc">number of tags that were added </div><div class="ttdef"><b>Definition:</b> census.h:107</div></div>
-<div class="ttc" id="census_8h_html_a6964222b3c20833883d7d05ab6b6e67e"><div class="ttname"><a href="census_8h.html#a6964222b3c20833883d7d05ab6b6e67e">census_enabled</a></div><div class="ttdeci">CENSUSAPI int census_enabled(void)</div><div class="ttdoc">Return the census features currently enabled. </div></div>
-<div class="ttc" id="census_8h_html_a18e3c1cddf38f66a5e8cbf79d7084369"><div class="ttname"><a href="census_8h.html#a18e3c1cddf38f66a5e8cbf79d7084369">census_start_server_rpc_op</a></div><div class="ttdeci">CENSUSAPI census_context * census_start_server_rpc_op(const char *buffer, int64_t rpc_name_id, const census_rpc_name_info *rpc_name_info, const char *peer, int trace_mask, census_timestamp *start_time)</div><div class="ttdoc">Start a server RPC operation. </div></div>
-<div class="ttc" id="structcensus__value_html"><div class="ttname"><a href="structcensus__value.html">census_value</a></div><div class="ttdoc">A single value to be recorded comprises two parts: an ID for the particular resource and the value to...</div><div class="ttdef"><b>Definition:</b> census.h:456</div></div>
-<div class="ttc" id="structcensus__context__status_html"><div class="ttname"><a href="structcensus__context__status.html">census_context_status</a></div><div class="ttdoc">An instance of this structure is kept by every context, and records the basic information associated ...</div><div class="ttdef"><b>Definition:</b> census.h:102</div></div>
-<div class="ttc" id="census_8h_html_a12077dda197a10bf2198203eac1a348a"><div class="ttname"><a href="census_8h.html#a12077dda197a10bf2198203eac1a348a">census_context_get_status</a></div><div class="ttdeci">CENSUSAPI const census_context_status * census_context_get_status(const census_context *context)</div><div class="ttdoc">Get a pointer to the original status from the context creation. </div></div>
-<div class="ttc" id="structcensus__context__status_html_ad44570570f170577c7fec0381adea3d5"><div class="ttname"><a href="structcensus__context__status.html#ad44570570f170577c7fec0381adea3d5">census_context_status::n_added_tags</a></div><div class="ttdeci">int n_added_tags</div><div class="ttdoc">number of tags that were deleted </div><div class="ttdef"><b>Definition:</b> census.h:106</div></div>
-<div class="ttc" id="census_8h_html_a610c654980b00da26ed7b2becca79f94"><div class="ttname"><a href="census_8h.html#a610c654980b00da26ed7b2becca79f94">census_context_get_tag</a></div><div class="ttdeci">CENSUSAPI int census_context_get_tag(const census_context *context, const char *key, census_tag *tag)</div><div class="ttdoc">Get a context tag by key. </div></div>
-<div class="ttc" id="census_8h_html_a2a2dfc973cd259d93b0901c8b32e8f34"><div class="ttname"><a href="census_8h.html#a2a2dfc973cd259d93b0901c8b32e8f34">census_trace_mask</a></div><div class="ttdeci">CENSUSAPI int census_trace_mask(const census_context *context)</div><div class="ttdoc">Get the current trace mask associated with this context. </div></div>
-<div class="ttc" id="census_8h_html_a26acfcba7f6b3f2b86d0a7fdc45e32ba"><div class="ttname"><a href="census_8h.html#a26acfcba7f6b3f2b86d0a7fdc45e32ba">census_record_values</a></div><div class="ttdeci">CENSUSAPI void census_record_values(census_context *context, census_value *values, size_t nvalues)</div><div class="ttdoc">Record new usage values against the given context. </div></div>
-<div class="ttc" id="census_8h_html_aacf722bf9259354d1ab7a81a6c2fd666"><div class="ttname"><a href="census_8h.html#aacf722bf9259354d1ab7a81a6c2fd666">census_trace_print</a></div><div class="ttdeci">CENSUSAPI void census_trace_print(census_context *context, uint32_t type, const char *buffer, size_t n)</div><div class="ttdoc">Insert a trace record into the trace stream. </div></div>
-<div class="ttc" id="census_8h_html_ad4ff7b1db813ee5318871121bb4281cc"><div class="ttname"><a href="census_8h.html#ad4ff7b1db813ee5318871121bb4281cc">census_trace_mask_values</a></div><div class="ttdeci">census_trace_mask_values</div><div class="ttdoc">Distributed traces can have a number of options. </div><div class="ttdef"><b>Definition:</b> census.h:187</div></div>
-<div class="ttc" id="structcensus__rpc__name__info_html"><div class="ttname"><a href="structcensus__rpc__name__info.html">census_rpc_name_info</a></div><div class="ttdoc">Represent functions to map RPC name ID to service/method names. </div><div class="ttdef"><b>Definition:</b> census.h:258</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="ttdoc">Enable Census CPU usage collection. </div><div class="ttdef"><b>Definition:</b> census.h:38</div></div>
-<div class="ttc" id="structcensus__trace__record_html_a7a9ffdb2e91c34802e5102a1632b2e58"><div class="ttname"><a href="structcensus__trace__record.html#a7a9ffdb2e91c34802e5102a1632b2e58">census_trace_record::op_id</a></div><div class="ttdeci">uint64_t op_id</div><div class="ttdoc">Trace ID associated with record. </div><div class="ttdef"><b>Definition:</b> census.h:388</div></div>
-<div class="ttc" id="census_8h_html_ad78c02761da0d8a7a70bf4add263f91f"><div class="ttname"><a href="census_8h.html#ad78c02761da0d8a7a70bf4add263f91f">census_trace_scan_start</a></div><div class="ttdeci">CENSUSAPI int census_trace_scan_start(int consume)</div><div class="ttdoc">Start a scan of existing trace records. </div></div>
-<div class="ttc" id="structcensus__context__status_html_ab567b892584772dcb4a13ae7c8b95316"><div class="ttname"><a href="structcensus__context__status.html#ab567b892584772dcb4a13ae7c8b95316">census_context_status::n_ignored_tags</a></div><div class="ttdeci">int n_ignored_tags</div><div class="ttdoc">number of tags with bad keys or values (e.g. </div><div class="ttdef"><b>Definition:</b> census.h:110</div></div>
-<div class="ttc" id="structcensus__timestamp_html"><div class="ttname"><a href="structcensus__timestamp.html">census_timestamp</a></div><div class="ttdoc">The concept of "operation" is a fundamental concept for Census. </div><div class="ttdef"><b>Definition:</b> census.h:225</div></div>
-<div class="ttc" id="census_8h_html_a756d86b68b73a9ad9dacdfdaeb2a865c"><div class="ttname"><a href="census_8h.html#a756d86b68b73a9ad9dacdfdaeb2a865c">census_context_next_tag</a></div><div class="ttdeci">CENSUSAPI int census_context_next_tag(census_context_iterator *iterator, census_tag *tag)</div><div class="ttdoc">Get the contents of the "next" tag in the context. </div></div>
-<div class="ttc" id="census_8h_html_ac68fd1dbb1767d8e080ec22f4767be89"><div class="ttname"><a href="census_8h.html#ac68fd1dbb1767d8e080ec22f4767be89">census_delete_resource</a></div><div class="ttdeci">CENSUSAPI void census_delete_resource(int32_t resource_id)</div><div class="ttdoc">Delete a resource created by census_define_resource(). </div></div>
-<div class="ttc" id="census_8h_html_ae22d3c8dfe3bfac5e831b0135ff7a536"><div class="ttname"><a href="census_8h.html#ae22d3c8dfe3bfac5e831b0135ff7a536">census_supported</a></div><div class="ttdeci">CENSUSAPI 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="census_8h_html_aeb7f7e4f427236d00446d2eb836c5252"><div class="ttname"><a href="census_8h.html#aeb7f7e4f427236d00446d2eb836c5252">census_resource_id</a></div><div class="ttdeci">CENSUSAPI int32_t census_resource_id(const char *name)</div><div class="ttdoc">Determine the id of a resource, given its name. </div></div>
-<div class="ttc" id="census_8h_html_aeb5d22e80a87eabe9880f08c56e95bf1"><div class="ttname"><a href="census_8h.html#aeb5d22e80a87eabe9880f08c56e95bf1">census_get_trace_record</a></div><div class="ttdeci">CENSUSAPI int census_get_trace_record(census_trace_record *trace_record)</div><div class="ttdoc">Get a trace record. </div></div>
-<div class="ttc" id="census_8h_html_aee31ac081d81e46746025b06071f1f0e"><div class="ttname"><a href="census_8h.html#aee31ac081d81e46746025b06071f1f0e">census_end_op</a></div><div class="ttdeci">CENSUSAPI void census_end_op(census_context *context, int status)</div><div class="ttdoc">End an operation started by any of the census_start_*_op*() calls. </div></div>
-<div class="ttc" id="census_8h_html_a850c1ca105245a514e76519d5edaad2c"><div class="ttname"><a href="census_8h.html#a850c1ca105245a514e76519d5edaad2c">census_initialize</a></div><div class="ttdeci">CENSUSAPI int census_initialize(int features)</div><div class="ttdoc">Shutdown and startup census subsystem. </div></div>
-<div class="ttc" id="census_8h_html_a2088bf00a48a7a9b0a6e659fa5161ef9"><div class="ttname"><a href="census_8h.html#a2088bf00a48a7a9b0a6e659fa5161ef9">census_set_trace_mask</a></div><div class="ttdeci">CENSUSAPI void census_set_trace_mask(int trace_mask)</div><div class="ttdoc">Set the trace mask associated with a context. </div></div>
-<div class="ttc" id="structcensus__trace__record_html_a69511d4d1ae8297580789786feb564d4"><div class="ttname"><a href="structcensus__trace__record.html#a69511d4d1ae8297580789786feb564d4">census_trace_record::trace_id</a></div><div class="ttdeci">uint64_t trace_id</div><div class="ttdoc">Time of record creation. </div><div class="ttdef"><b>Definition:</b> census.h:387</div></div>
-<div class="ttc" id="census_8h_html_ab20a8e42995181004f5fbc9a87e339d3"><div class="ttname"><a href="census_8h.html#ab20a8e42995181004f5fbc9a87e339d3">census_set_rpc_client_peer</a></div><div class="ttdeci">CENSUSAPI void census_set_rpc_client_peer(census_context *context, const char *peer)</div><div class="ttdoc">Add peer information to a context representing a client RPC operation. </div></div>
-<div class="ttc" id="structcensus__tag_html"><div class="ttname"><a href="structcensus__tag.html">census_tag</a></div><div class="ttdoc">A tag is a key:value pair. </div><div class="ttdef"><b>Definition:</b> census.h:79</div></div>
-<div class="ttc" id="census_8h_html_a57255eb87c6ade8ee6eb8856d3ecfc11"><div class="ttname"><a href="census_8h.html#a57255eb87c6ade8ee6eb8856d3ecfc11">census_start_rpc_op_timestamp</a></div><div class="ttdeci">CENSUSAPI census_timestamp census_start_rpc_op_timestamp(void)</div><div class="ttdoc">Mark the beginning of an RPC operation. </div></div>
-<div class="ttc" id="structcensus__context__iterator_html"><div class="ttname"><a href="structcensus__context__iterator.html">census_context_iterator</a></div><div class="ttdoc">Structure used for iterating over the tags in a context. </div><div class="ttdef"><b>Definition:</b> census.h:147</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="ttdoc">A Census Context is a handle used by Census to represent the current tracing and stats collection inf...</div><div class="ttdef"><b>Definition:</b> census.h:68</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="ttdoc">A Census Context is a handle used by Census to represent the current tracing and stats collection inf...</div><div class="ttdef"><b>Definition:</b> census.h:32</div></div>
-<tr class="memdesc:ad361141d2df046516b472df11e2712fb"><td class="mdescLeft"> </td><td class="mdescRight">And for a string. <a href="#ad361141d2df046516b472df11e2712fb">More...</a><br/></td></tr>
+<tr class="memdesc:a631534c0f6c1820ae22a4f1e692f0830"><td class="mdescLeft"> </td><td class="mdescRight">And for a string. <a href="#a631534c0f6c1820ae22a4f1e692f0830">More...</a><br/></td></tr>
<div class="ttc" id="cmdline_8h_html_acc2f66f6bcdf05c8b761419bf2d40509"><div class="ttname"><a href="cmdline_8h.html#acc2f66f6bcdf05c8b761419bf2d40509">gpr_cmdline_parse</a></div><div class="ttdeci">GPRAPI int gpr_cmdline_parse(gpr_cmdline *cl, int argc, char **argv)</div><div class="ttdoc">Parse the command line; returns 1 on success, on failure either dies (by default) or returns 0 if gpr...</div></div>
<div class="ttc" id="cmdline_8h_html_acc2f66f6bcdf05c8b761419bf2d40509"><div class="ttname"><a href="cmdline_8h.html#acc2f66f6bcdf05c8b761419bf2d40509">gpr_cmdline_parse</a></div><div class="ttdeci">GPRAPI int gpr_cmdline_parse(gpr_cmdline *cl, int argc, char **argv)</div><div class="ttdoc">Parse the command line; returns 1 on success, on failure either dies (by default) or returns 0 if gpr...</div></div>
<div class="ttc" id="cmdline_8h_html_a31fa94e5c43847c82e90bb40087f5aa9"><div class="ttname"><a href="cmdline_8h.html#a31fa94e5c43847c82e90bb40087f5aa9">gpr_cmdline_create</a></div><div class="ttdeci">GPRAPI gpr_cmdline * gpr_cmdline_create(const char *description)</div><div class="ttdoc">Construct a command line parser: takes a short description of the tool doing the parsing. </div></div>
<div class="ttc" id="cmdline_8h_html_a31fa94e5c43847c82e90bb40087f5aa9"><div class="ttname"><a href="cmdline_8h.html#a31fa94e5c43847c82e90bb40087f5aa9">gpr_cmdline_create</a></div><div class="ttdeci">GPRAPI gpr_cmdline * gpr_cmdline_create(const char *description)</div><div class="ttdoc">Construct a command line parser: takes a short description of the tool doing the parsing. </div></div>
<div class="ttc" id="cmdline_8h_html_a87c433155b5df21be39818d658cfe93f"><div class="ttname"><a href="cmdline_8h.html#a87c433155b5df21be39818d658cfe93f">gpr_cmdline_add_int</a></div><div class="ttdeci">GPRAPI void gpr_cmdline_add_int(gpr_cmdline *cl, const char *name, const char *help, int *value)</div><div class="ttdoc">Add an integer parameter, with a name (used on the command line) and some helpful text (used in the c...</div></div>
<div class="ttc" id="cmdline_8h_html_a87c433155b5df21be39818d658cfe93f"><div class="ttname"><a href="cmdline_8h.html#a87c433155b5df21be39818d658cfe93f">gpr_cmdline_add_int</a></div><div class="ttdeci">GPRAPI void gpr_cmdline_add_int(gpr_cmdline *cl, const char *name, const char *help, int *value)</div><div class="ttdoc">Add an integer parameter, with a name (used on the command line) and some helpful text (used in the c...</div></div>
-<tr class="memdesc:a5054ebec22cc256853a7ac2ed61fd654"><td class="mdescLeft"> </td><td class="mdescRight">Parses the first <em>name_length</em> bytes of <em>name</em> as a grpc_compression_algorithm instance, updating <em>algorithm</em>. <a href="#a5054ebec22cc256853a7ac2ed61fd654">More...</a><br/></td></tr>
+<tr class="memdesc:a5054ebec22cc256853a7ac2ed61fd654"><td class="mdescLeft"> </td><td class="mdescRight">Parses the <em>slice</em> as a grpc_compression_algorithm instance and updating <em>algorithm</em>. <a href="#a5054ebec22cc256853a7ac2ed61fd654">More...</a><br/></td></tr>
-<tr class="memdesc:a03ef1c76766826058d841d7f4e1213f0"><td class="mdescLeft"> </td><td class="mdescRight">Updates <em>name</em> with the encoding name corresponding to a valid <em>algorithm</em>. <a href="#a03ef1c76766826058d841d7f4e1213f0">More...</a><br/></td></tr>
+<tr class="memdesc:a67faee49695eae970d85c047833d76f0"><td class="mdescLeft"> </td><td class="mdescRight">Parses the <em>slice</em> as a grpc_stream_compression_algorithm instance and updating <em>algorithm</em>. <a href="#a67faee49695eae970d85c047833d76f0">More...</a><br/></td></tr>
+<tr class="memdesc:a177f6d6330355d5ecaffb042ab1c2c8f"><td class="mdescLeft"> </td><td class="mdescRight">Updates <em>name</em> with the encoding name corresponding to a valid <em>algorithm</em>. <a href="#a177f6d6330355d5ecaffb042ab1c2c8f">More...</a><br/></td></tr>
+<tr class="memdesc:a51d280a2d18d8cc37a25d8b9286d9440"><td class="mdescLeft"> </td><td class="mdescRight">Updates <em>name</em> with the encoding name corresponding to a valid <em>algorithm</em>. <a href="#a51d280a2d18d8cc37a25d8b9286d9440">More...</a><br/></td></tr>
<tr class="memdesc:adc2d1d89d880f67aacc4ce84cd72f8f3"><td class="mdescLeft"> </td><td class="mdescRight">Returns the compression algorithm corresponding to <em>level</em> for the compression algorithms encoded in the <em>accepted_encodings</em> bitset. <a href="#adc2d1d89d880f67aacc4ce84cd72f8f3">More...</a><br/></td></tr>
<tr class="memdesc:adc2d1d89d880f67aacc4ce84cd72f8f3"><td class="mdescLeft"> </td><td class="mdescRight">Returns the compression algorithm corresponding to <em>level</em> for the compression algorithms encoded in the <em>accepted_encodings</em> bitset. <a href="#adc2d1d89d880f67aacc4ce84cd72f8f3">More...</a><br/></td></tr>
+<tr class="memdesc:a24dec74f48599ba12becb0ce78425e39"><td class="mdescLeft"> </td><td class="mdescRight">Returns the stream compression algorithm corresponding to <em>level</em> for the compression algorithms encoded in the <em>accepted_stream_encodings</em> bitset. <a href="#a24dec74f48599ba12becb0ce78425e39">More...</a><br/></td></tr>
<tr class="memdesc:aba0dfe631311c3f49d1045694bc9b0df"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if <em>algorithm</em> is marked as enabled in <em>opts</em>. <a href="#aba0dfe631311c3f49d1045694bc9b0df">More...</a><br/></td></tr>
<tr class="memdesc:aba0dfe631311c3f49d1045694bc9b0df"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if <em>algorithm</em> is marked as enabled in <em>opts</em>. <a href="#aba0dfe631311c3f49d1045694bc9b0df">More...</a><br/></td></tr>
+<tr class="memdesc:a2bf848d4d1d0122f70dbe436aeb47d8e"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if <em>algorithm</em> is marked as enabled in <em>opts</em>. <a href="#a2bf848d4d1d0122f70dbe436aeb47d8e">More...</a><br/></td></tr>
<p>Returns the compression algorithm corresponding to <em>level</em> for the compression algorithms encoded in the <em>accepted_encodings</em> bitset. </p>
<p>Returns the compression algorithm corresponding to <em>level</em> for the compression algorithms encoded in the <em>accepted_encodings</em> bitset. </p>
+<p>Returns the stream compression algorithm corresponding to <em>level</em> for the compression algorithms encoded in the <em>accepted_stream_encodings</em> bitset. </p>
+<div class="ttc" id="compression_8h_html_a177f6d6330355d5ecaffb042ab1c2c8f"><div class="ttname"><a href="compression_8h.html#a177f6d6330355d5ecaffb042ab1c2c8f">grpc_compression_algorithm_name</a></div><div class="ttdeci">GRPCAPI int grpc_compression_algorithm_name(grpc_compression_algorithm algorithm, const 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_adc2d1d89d880f67aacc4ce84cd72f8f3"><div class="ttname"><a href="compression_8h.html#adc2d1d89d880f67aacc4ce84cd72f8f3">grpc_compression_algorithm_for_level</a></div><div class="ttdeci">GRPCAPI grpc_compression_algorithm grpc_compression_algorithm_for_level(grpc_compression_level level, uint32_t accepted_encodings)</div><div class="ttdoc">Returns the compression algorithm corresponding to level for the compression algorithms encoded in th...</div></div>
<div class="ttc" id="compression_8h_html_adc2d1d89d880f67aacc4ce84cd72f8f3"><div class="ttname"><a href="compression_8h.html#adc2d1d89d880f67aacc4ce84cd72f8f3">grpc_compression_algorithm_for_level</a></div><div class="ttdeci">GRPCAPI grpc_compression_algorithm grpc_compression_algorithm_for_level(grpc_compression_level level, uint32_t accepted_encodings)</div><div class="ttdoc">Returns the compression algorithm corresponding to level for the compression algorithms encoded in th...</div></div>
<div class="ttc" id="compression_8h_html_a79e61d1ac1d226b3b54b73837f28f0ff"><div class="ttname"><a href="compression_8h.html#a79e61d1ac1d226b3b54b73837f28f0ff">grpc_compression_options_enable_algorithm</a></div><div class="ttdeci">GRPCAPI void grpc_compression_options_enable_algorithm(grpc_compression_options *opts, grpc_compression_algorithm algorithm)</div><div class="ttdoc">Mark algorithm as enabled in opts. </div></div>
<div class="ttc" id="compression_8h_html_a79e61d1ac1d226b3b54b73837f28f0ff"><div class="ttname"><a href="compression_8h.html#a79e61d1ac1d226b3b54b73837f28f0ff">grpc_compression_options_enable_algorithm</a></div><div class="ttdeci">GRPCAPI void grpc_compression_options_enable_algorithm(grpc_compression_options *opts, grpc_compression_algorithm algorithm)</div><div class="ttdoc">Mark algorithm as enabled in opts. </div></div>
-<div class="ttc" id="structgrpc__slice_html"><div class="ttname"><a href="structgrpc__slice.html">grpc_slice</a></div><div class="ttdoc">A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...</div><div class="ttdef"><b>Definition:</b> slice.h:76</div></div>
-<div class="ttc" id="compression__types_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7"><div class="ttname"><a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a></div><div class="ttdeci">grpc_compression_level</div><div class="ttdoc">Compression levels allow a party with knowledge of its peer's accepted encodings to request compressi...</div><div class="ttdef"><b>Definition:</b> compression_types.h:68</div></div>
+<div class="ttc" id="compression_8h_html_a24dec74f48599ba12becb0ce78425e39"><div class="ttname"><a href="compression_8h.html#a24dec74f48599ba12becb0ce78425e39">grpc_stream_compression_algorithm_for_level</a></div><div class="ttdeci">GRPCAPI grpc_stream_compression_algorithm grpc_stream_compression_algorithm_for_level(grpc_stream_compression_level level, uint32_t accepted_stream_encodings)</div><div class="ttdoc">Returns the stream compression algorithm corresponding to level for the compression algorithms encode...</div></div>
+<div class="ttc" id="compression_8h_html_a51d280a2d18d8cc37a25d8b9286d9440"><div class="ttname"><a href="compression_8h.html#a51d280a2d18d8cc37a25d8b9286d9440">grpc_stream_compression_algorithm_name</a></div><div class="ttdeci">GRPCAPI int grpc_stream_compression_algorithm_name(grpc_stream_compression_algorithm algorithm, const char **name)</div><div class="ttdoc">Updates name with the encoding name corresponding to a valid algorithm. </div></div>
+<div class="ttc" id="structgrpc__slice_html"><div class="ttname"><a href="structgrpc__slice.html">grpc_slice</a></div><div class="ttdoc">A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...</div><div class="ttdef"><b>Definition:</b> slice.h:81</div></div>
+<div class="ttc" id="compression_8h_html_a2bf848d4d1d0122f70dbe436aeb47d8e"><div class="ttname"><a href="compression_8h.html#a2bf848d4d1d0122f70dbe436aeb47d8e">grpc_compression_options_is_stream_compression_algorithm_enabled</a></div><div class="ttdeci">GRPCAPI int grpc_compression_options_is_stream_compression_algorithm_enabled(const grpc_compression_options *opts, grpc_stream_compression_algorithm algorithm)</div><div class="ttdoc">Returns true if algorithm is marked as enabled in opts. </div></div>
+<div class="ttc" id="compression__types_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7"><div class="ttname"><a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a></div><div class="ttdeci">grpc_compression_level</div><div class="ttdoc">Compression levels allow a party with knowledge of its peer's accepted encodings to request compressi...</div><div class="ttdef"><b>Definition:</b> compression_types.h:97</div></div>
<div class="ttc" id="compression_8h_html_a1b58d314775a3651ee2f5f2d3ab4f6d9"><div class="ttname"><a href="compression_8h.html#a1b58d314775a3651ee2f5f2d3ab4f6d9">grpc_compression_options_disable_algorithm</a></div><div class="ttdeci">GRPCAPI void grpc_compression_options_disable_algorithm(grpc_compression_options *opts, grpc_compression_algorithm algorithm)</div><div class="ttdoc">Mark algorithm as disabled in opts. </div></div>
<div class="ttc" id="compression_8h_html_a1b58d314775a3651ee2f5f2d3ab4f6d9"><div class="ttname"><a href="compression_8h.html#a1b58d314775a3651ee2f5f2d3ab4f6d9">grpc_compression_options_disable_algorithm</a></div><div class="ttdeci">GRPCAPI void grpc_compression_options_disable_algorithm(grpc_compression_options *opts, grpc_compression_algorithm algorithm)</div><div class="ttdoc">Mark algorithm as disabled in opts. </div></div>
-<div class="ttc" id="compression__types_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9"><div class="ttname"><a href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a></div><div class="ttdeci">grpc_compression_algorithm</div><div class="ttdoc">The various compression algorithms supported by gRPC. </div><div class="ttdef"><b>Definition:</b> compression_types.h:56</div></div>
+<div class="ttc" id="compression__types_8h_html_ab9de0f68bfb1ef8ed09bd00643db14c9"><div class="ttname"><a href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a></div><div class="ttdeci">grpc_compression_algorithm</div><div class="ttdoc">The various compression algorithms supported by gRPC. </div><div class="ttdef"><b>Definition:</b> compression_types.h:78</div></div>
<div class="ttc" id="compression_8h_html_aba0dfe631311c3f49d1045694bc9b0df"><div class="ttname"><a href="compression_8h.html#aba0dfe631311c3f49d1045694bc9b0df">grpc_compression_options_is_algorithm_enabled</a></div><div class="ttdeci">GRPCAPI int grpc_compression_options_is_algorithm_enabled(const grpc_compression_options *opts, grpc_compression_algorithm algorithm)</div><div class="ttdoc">Returns true if algorithm is marked as enabled in opts. </div></div>
<div class="ttc" id="compression_8h_html_aba0dfe631311c3f49d1045694bc9b0df"><div class="ttname"><a href="compression_8h.html#aba0dfe631311c3f49d1045694bc9b0df">grpc_compression_options_is_algorithm_enabled</a></div><div class="ttdeci">GRPCAPI int grpc_compression_options_is_algorithm_enabled(const grpc_compression_options *opts, grpc_compression_algorithm algorithm)</div><div class="ttdoc">Returns true if algorithm is marked as enabled in opts. </div></div>
-<div class="ttc" id="compression_8h_html_a03ef1c76766826058d841d7f4e1213f0"><div class="ttname"><a href="compression_8h.html#a03ef1c76766826058d841d7f4e1213f0">grpc_compression_algorithm_name</a></div><div class="ttdeci">GRPCAPI 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_a5054ebec22cc256853a7ac2ed61fd654"><div class="ttname"><a href="compression_8h.html#a5054ebec22cc256853a7ac2ed61fd654">grpc_compression_algorithm_parse</a></div><div class="ttdeci">GRPCAPI int grpc_compression_algorithm_parse(grpc_slice value, grpc_compression_algorithm *algorithm)</div><div class="ttdoc">Parses the first name_length bytes of name as a grpc_compression_algorithm instance, updating algorithm. </div></div>
+<div class="ttc" id="compression_8h_html_a5054ebec22cc256853a7ac2ed61fd654"><div class="ttname"><a href="compression_8h.html#a5054ebec22cc256853a7ac2ed61fd654">grpc_compression_algorithm_parse</a></div><div class="ttdeci">GRPCAPI int grpc_compression_algorithm_parse(grpc_slice value, grpc_compression_algorithm *algorithm)</div><div class="ttdoc">Parses the slice as a grpc_compression_algorithm instance and updating algorithm. ...</div></div>
<tr class="memdesc:a862adef9b36180377a6db217dd5f52fe"><td class="mdescLeft"> </td><td class="mdescRight">To be used as initial metadata key for the request of a concrete compression algorithm. <a href="#a862adef9b36180377a6db217dd5f52fe">More...</a><br/></td></tr>
<tr class="memdesc:a862adef9b36180377a6db217dd5f52fe"><td class="mdescLeft"> </td><td class="mdescRight">To be used as initial metadata key for the request of a concrete compression algorithm. <a href="#a862adef9b36180377a6db217dd5f52fe">More...</a><br/></td></tr>
+<tr class="memdesc:ab5c6aaa4113d464af2bba590fe18ef05"><td class="mdescLeft"> </td><td class="mdescRight">To be used as initial metadata key for the request of a concrete stream compression algorithm. <a href="#ab5c6aaa4113d464af2bba590fe18ef05">More...</a><br/></td></tr>
<tr class="memdesc:a14a79ed6b5ebd7e1dda7c2684f499cc7"><td class="mdescLeft"> </td><td class="mdescRight">Compression levels allow a party with knowledge of its peer's accepted encodings to request compression in an abstract way. <a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">More...</a><br/></td></tr>
<tr class="memdesc:a14a79ed6b5ebd7e1dda7c2684f499cc7"><td class="mdescLeft"> </td><td class="mdescRight">Compression levels allow a party with knowledge of its peer's accepted encodings to request compression in an abstract way. <a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">More...</a><br/></td></tr>
-<div class="ttc" id="compression__types_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7"><div class="ttname"><a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a></div><div class="ttdeci">grpc_compression_level</div><div class="ttdoc">Compression levels allow a party with knowledge of its peer's accepted encodings to request compressi...</div><div class="ttdef"><b>Definition:</b> compression_types.h:68</div></div>
+<div class="ttc" id="compression__types_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7"><div class="ttname"><a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a></div><div class="ttdeci">grpc_compression_level</div><div class="ttdoc">Compression levels allow a party with knowledge of its peer's accepted encodings to request compressi...</div><div class="ttdef"><b>Definition:</b> compression_types.h:97</div></div>
<tr class="memdesc:a065b65f5cdd062a67d82e2b6bcf68cf2"><td class="mdescLeft"> </td><td class="mdescRight">Connectivity state of a channel. <a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">More...</a><br/></td></tr>
<tr class="memdesc:a065b65f5cdd062a67d82e2b6bcf68cf2"><td class="mdescLeft"> </td><td class="mdescRight">Connectivity state of a channel. <a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2">More...</a><br/></td></tr>
-<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6"><div class="ttname"><a href="connectivity__state_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> connectivity_state.h:37</div></div>
+<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2af5bffd3ffb03795f551b0fa78e44b9b6"><div class="ttname"><a href="connectivity__state_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> connectivity_state.h:35</div></div>
<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2"><div class="ttname"><a href="connectivity__state_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> connectivity_state.h:27</div></div>
<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2"><div class="ttname"><a href="connectivity__state_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> connectivity_state.h:27</div></div>
-<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea"><div class="ttname"><a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">GRPC_CHANNEL_READY</a></div><div class="ttdoc">channel is ready for work </div><div class="ttdef"><b>Definition:</b> connectivity_state.h:35</div></div>
-<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2afbab6ba9d3b0986cec9184a1c4c8bb6c"><div class="ttname"><a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2afbab6ba9d3b0986cec9184a1c4c8bb6c">GRPC_CHANNEL_SHUTDOWN</a></div><div class="ttdoc">channel has seen a failure that it cannot recover from </div><div class="ttdef"><b>Definition:</b> connectivity_state.h:39</div></div>
-<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2ab12cc86bc5568c64ebbdebc9032e4d46"><div class="ttname"><a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2ab12cc86bc5568c64ebbdebc9032e4d46">GRPC_CHANNEL_INIT</a></div><div class="ttdoc">channel has just been initialized </div><div class="ttdef"><b>Definition:</b> connectivity_state.h:29</div></div>
+<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea"><div class="ttname"><a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">GRPC_CHANNEL_READY</a></div><div class="ttdoc">channel is ready for work </div><div class="ttdef"><b>Definition:</b> connectivity_state.h:33</div></div>
+<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2afbab6ba9d3b0986cec9184a1c4c8bb6c"><div class="ttname"><a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2afbab6ba9d3b0986cec9184a1c4c8bb6c">GRPC_CHANNEL_SHUTDOWN</a></div><div class="ttdoc">channel has seen a failure that it cannot recover from </div><div class="ttdef"><b>Definition:</b> connectivity_state.h:37</div></div>
<div class="ttc" id="cpu_8h_html_ad02216a0383f381a320c8d183a69bf29"><div class="ttname"><a href="cpu_8h.html#ad02216a0383f381a320c8d183a69bf29">gpr_cpu_num_cores</a></div><div class="ttdeci">GPRAPI unsigned gpr_cpu_num_cores(void)</div><div class="ttdoc">Interface providing CPU information for currently running system. </div></div>
<div class="ttc" id="cpu_8h_html_ad02216a0383f381a320c8d183a69bf29"><div class="ttname"><a href="cpu_8h.html#ad02216a0383f381a320c8d183a69bf29">gpr_cpu_num_cores</a></div><div class="ttdeci">GPRAPI unsigned gpr_cpu_num_cores(void)</div><div class="ttdoc">Interface providing CPU information for currently running system. </div></div>
<div class="ttc" id="cpu_8h_html_a751e8c9f891e8b36fb7f22cc39c92c15"><div class="ttname"><a href="cpu_8h.html#a751e8c9f891e8b36fb7f22cc39c92c15">gpr_cpu_current_cpu</a></div><div class="ttdeci">GPRAPI unsigned gpr_cpu_current_cpu(void)</div><div class="ttdoc">Return the CPU on which the current thread is executing; N.B. </div></div>
<div class="ttc" id="cpu_8h_html_a751e8c9f891e8b36fb7f22cc39c92c15"><div class="ttname"><a href="cpu_8h.html#a751e8c9f891e8b36fb7f22cc39c92c15">gpr_cpu_current_cpu</a></div><div class="ttdeci">GPRAPI unsigned gpr_cpu_current_cpu(void)</div><div class="ttdoc">Return the CPU on which the current thread is executing; N.B. </div></div>
+<a href="fork_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> <span class="comment">/*</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * you may not use this file except in compliance with the License.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * You may obtain a copy of the License at</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * See the License for the specific language governing permissions and</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * limitations under the License.</span></div>
<tr class="memdesc:gae498934a02de89ce29cec570b02a2037"><td class="mdescLeft"> </td><td class="mdescRight">If non-zero, enable census for tracing and stats collection. <a href="#gae498934a02de89ce29cec570b02a2037">More...</a><br/></td></tr>
<tr class="memdesc:gae498934a02de89ce29cec570b02a2037"><td class="mdescLeft"> </td><td class="mdescRight">If non-zero, enable census for tracing and stats collection. <a href="#gae498934a02de89ce29cec570b02a2037">More...</a><br/></td></tr>
-<tr class="memdesc:gacc0d0f1d3d582d39fcfb7a835b730a6c"><td class="mdescLeft"> </td><td class="mdescRight">Minimum time (in milliseconds) between successive ping frames being sent. <a href="#gacc0d0f1d3d582d39fcfb7a835b730a6c">More...</a><br/></td></tr>
+<tr class="memdesc:ga69583c8efdbdcb7cdf9055ee80a07014"><td class="mdescLeft"> </td><td class="mdescRight">Minimum time between sending successive ping frames without receiving any data frame, Int valued, milliseconds. <a href="#ga69583c8efdbdcb7cdf9055ee80a07014">More...</a><br/></td></tr>
+<tr class="memdesc:ga4494709dc5c7c899af4ed67ec7728549"><td class="mdescLeft"> </td><td class="mdescRight">Minimum allowed time between receiving successive ping frames without sending any data frame. <a href="#ga4494709dc5c7c899af4ed67ec7728549">More...</a><br/></td></tr>
<tr class="memdesc:gaf50a9992745183e14e8c660d954c1d82"><td class="mdescLeft"> </td><td class="mdescRight">How many misbehaving pings the server can bear before sending goaway and closing the transport? (0 indicates that the server can bear an infinite number of misbehaving pings) <a href="#gaf50a9992745183e14e8c660d954c1d82">More...</a><br/></td></tr>
<tr class="memdesc:gaf50a9992745183e14e8c660d954c1d82"><td class="mdescLeft"> </td><td class="mdescRight">How many misbehaving pings the server can bear before sending goaway and closing the transport? (0 indicates that the server can bear an infinite number of misbehaving pings) <a href="#gaf50a9992745183e14e8c660d954c1d82">More...</a><br/></td></tr>
-<tr class="memdesc:gac3470e2718001b173a7b8398ab60fe09"><td class="mdescLeft"> </td><td class="mdescRight">Minimum allowed time between two pings without sending any data frame. <a href="#gac3470e2718001b173a7b8398ab60fe09">More...</a><br/></td></tr>
<tr class="memdesc:ga8ee81850446e587a7410df5ab640c565"><td class="mdescLeft"> </td><td class="mdescRight">How much data are we willing to queue up per stream if GRPC_WRITE_BUFFER_HINT is set? This is an upper bound. <a href="#ga8ee81850446e587a7410df5ab640c565">More...</a><br/></td></tr>
<tr class="memdesc:ga8ee81850446e587a7410df5ab640c565"><td class="mdescLeft"> </td><td class="mdescRight">How much data are we willing to queue up per stream if GRPC_WRITE_BUFFER_HINT is set? This is an upper bound. <a href="#ga8ee81850446e587a7410df5ab640c565">More...</a><br/></td></tr>
<tr class="memdesc:gaedb26c5ca7d3d279b81d12d9bf6dabc6"><td class="mdescLeft"> </td><td class="mdescRight">The time between the first and second connection attempts, in ms. <a href="#gaedb26c5ca7d3d279b81d12d9bf6dabc6">More...</a><br/></td></tr>
<tr class="memdesc:gaedb26c5ca7d3d279b81d12d9bf6dabc6"><td class="mdescLeft"> </td><td class="mdescRight">The time between the first and second connection attempts, in ms. <a href="#gaedb26c5ca7d3d279b81d12d9bf6dabc6">More...</a><br/></td></tr>
+<tr class="memdesc:gabd95d2a6b1cd3b3ca8a1c9fb7eb4cdf1"><td class="mdescLeft"> </td><td class="mdescRight">The timeout used on servers for finishing handshaking on an incoming connection. <a href="#gabd95d2a6b1cd3b3ca8a1c9fb7eb4cdf1">More...</a><br/></td></tr>
<tr class="memdesc:ga218bf55b665134a11baf07ada5980825"><td class="mdescLeft"> </td><td class="mdescRight">This <em>should</em> be used for testing only. <a href="#ga218bf55b665134a11baf07ada5980825">More...</a><br/></td></tr>
<tr class="memdesc:ga218bf55b665134a11baf07ada5980825"><td class="mdescLeft"> </td><td class="mdescRight">This <em>should</em> be used for testing only. <a href="#ga218bf55b665134a11baf07ada5980825">More...</a><br/></td></tr>
<p>This <em>should</em> be used for testing only. </p>
<p>This <em>should</em> be used for testing only. </p>
<p>The caller of the secure_channel_create functions may override the target name used for SSL host name checking using this channel argument which is of type <em>GRPC_ARG_STRING</em>. If this argument is not specified, the name used for SSL host name checking will be the target parameter (assuming that the secure channel is an SSL channel). If this parameter is specified and the underlying is not an SSL channel, it will just be ignored. </p>
<p>The caller of the secure_channel_create functions may override the target name used for SSL host name checking using this channel argument which is of type <em>GRPC_ARG_STRING</em>. If this argument is not specified, the name used for SSL host name checking will be the target parameter (assuming that the secure channel is an SSL channel). If this parameter is specified and the underlying is not an SSL channel, it will just be ignored. </p>
+<p>Stream compression algorithms supported by the channel. </p>
+<p>Its value is a bitset (an int). Bits correspond to algorithms in <em>grpc_stream_compression_algorithm</em>. For example, its LSB corresponds to GRPC_STREAM_COMPRESS_NONE, the next bit to GRPC_STREAM_COMPRESS_DEFLATE, etc. Unset bits disable support for the algorithm. By default all algorithms are supported. It's not possible to disable GRPC_STREAM_COMPRESS_NONE (the attempt will be ignored). </p>
-<tr class="memdesc:a44294a352d5e6c2d23a213668e2a11cb"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the given completion queue alarm, cancelling it in the process. <a href="#a44294a352d5e6c2d23a213668e2a11cb">More...</a><br/></td></tr>
+<tr class="memdesc:ae5a76150605c2ec42b9cfa71d488590e"><td class="mdescLeft"> </td><td class="mdescRight">Initializes a thread local cache for <em>cq</em>. <a href="#ae5a76150605c2ec42b9cfa71d488590e">More...</a><br/></td></tr>
+<tr class="memdesc:aa92bdf2570e9c0f63e2e76ad22291907"><td class="mdescLeft"> </td><td class="mdescRight">Flushes the thread local cache for <em>cq</em>. <a href="#aa92bdf2570e9c0f63e2e76ad22291907">More...</a><br/></td></tr>
+<tr class="memdesc:a4bcf958a8230547e3fff7604e634231f"><td class="mdescLeft"> </td><td class="mdescRight">Destroy the given completion queue alarm, cancelling it in the process. <a href="#a4bcf958a8230547e3fff7604e634231f">More...</a><br/></td></tr>
<tr class="memdesc:a783c4ef542c9899f3c2e02c2a956fd6d"><td class="mdescLeft"> </td><td class="mdescRight">Check the connectivity state of a channel. <a href="#a783c4ef542c9899f3c2e02c2a956fd6d">More...</a><br/></td></tr>
<tr class="memdesc:a783c4ef542c9899f3c2e02c2a956fd6d"><td class="mdescLeft"> </td><td class="mdescRight">Check the connectivity state of a channel. <a href="#a783c4ef542c9899f3c2e02c2a956fd6d">More...</a><br/></td></tr>
<tr class="memdesc:a568bac9fe4004c1dd790e6569b918d2f"><td class="mdescLeft"> </td><td class="mdescRight">Watch for a change in connectivity state. <a href="#a568bac9fe4004c1dd790e6569b918d2f">More...</a><br/></td></tr>
<tr class="memdesc:a568bac9fe4004c1dd790e6569b918d2f"><td class="mdescLeft"> </td><td class="mdescRight">Watch for a change in connectivity state. <a href="#a568bac9fe4004c1dd790e6569b918d2f">More...</a><br/></td></tr>
<tr class="memdesc:a9686ae95702f8d696c134d3a3e02fa97"><td class="mdescLeft"> </td><td class="mdescRight">Create a call given a grpc_channel, in order to call 'method'. <a href="#a9686ae95702f8d696c134d3a3e02fa97">More...</a><br/></td></tr>
<tr class="memdesc:a9686ae95702f8d696c134d3a3e02fa97"><td class="mdescLeft"> </td><td class="mdescRight">Create a call given a grpc_channel, in order to call 'method'. <a href="#a9686ae95702f8d696c134d3a3e02fa97">More...</a><br/></td></tr>
-<p>Create a completion queue alarm instance associated to <em>cq</em>. </p>
-<p>Once the alarm expires (at <em>deadline</em>) or it's cancelled (see <em>grpc_alarm_cancel</em>), an event with tag <em>tag</em> will be added to <em>cq</em>. If the alarm expired, the event's success bit will be true, false otherwise (ie, upon cancellation). </p>
+<p>Destroy the given completion queue alarm, cancelling it in the process. </p>
-<p>Destroy the given completion queue alarm, cancelling it in the process. </p>
+<p>Set a completion queue alarm instance associated to <em>cq</em>. </p>
+<p>Once the alarm expires (at <em>deadline</em>) or it's cancelled (see <em>grpc_alarm_cancel</em>), an event with tag <em>tag</em> will be added to <em>cq</em>. If the alarm expired, the event's success bit will be true, false otherwise (ie, upon cancellation). </p>
</div>
</div>
</div>
</div>
@@ -597,7 +659,7 @@ Functions</h2></td></tr>
</div><div class="memdoc">
</div><div class="memdoc">
<p>Ref a call. </p>
<p>Ref a call. </p>
-<p>THREAD SAFETY: grpc_call_unref is thread-compatible </p>
+<p>THREAD SAFETY: grpc_call_ref is thread-compatible </p>
</div>
</div>
</div>
</div>
@@ -1027,6 +1089,24 @@ Functions</h2></td></tr>
<p>Pre-register a method/host pair on a channel. </p>
<p>Pre-register a method/host pair on a channel. </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>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>
<p>After calling this function applications should ensure that no NEW work is added to be published on this completion queue. </p>
+<p>Flushes the thread local cache for <em>cq</em>. </p>
+<p>Returns 1 if there was contents in the cache. If there was an event in <em>cq</em> tls cache, its tag is placed in tag, and ok is set to the event success. </p>
<div class="ttc" id="grpc_8h_html_a5c09d334ae49404386cc0b13559dbb4d"><div class="ttname"><a href="grpc_8h.html#a5c09d334ae49404386cc0b13559dbb4d">grpc_call_cancel_with_status</a></div><div class="ttdeci">GRPCAPI grpc_call_error grpc_call_cancel_with_status(grpc_call *call, grpc_status_code status, const char *description, void *reserved)</div><div class="ttdoc">Called by clients to cancel an RPC on the server. </div></div>
<div class="ttc" id="grpc_8h_html_a5c09d334ae49404386cc0b13559dbb4d"><div class="ttname"><a href="grpc_8h.html#a5c09d334ae49404386cc0b13559dbb4d">grpc_call_cancel_with_status</a></div><div class="ttdeci">GRPCAPI grpc_call_error grpc_call_cancel_with_status(grpc_call *call, grpc_status_code status, const char *description, void *reserved)</div><div class="ttdoc">Called by clients to cancel an RPC on the server. </div></div>
<div class="ttc" id="grpc_8h_html_a5950aea48195923a1f4f585b1ecb6ba0"><div class="ttname"><a href="grpc_8h.html#a5950aea48195923a1f4f585b1ecb6ba0">grpc_server_shutdown_and_notify</a></div><div class="ttdeci">GRPCAPI 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_a5950aea48195923a1f4f585b1ecb6ba0"><div class="ttname"><a href="grpc_8h.html#a5950aea48195923a1f4f585b1ecb6ba0">grpc_server_shutdown_and_notify</a></div><div class="ttdeci">GRPCAPI 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_a687672b2c261e965286e36f66e3adbef"><div class="ttname"><a href="grpc_8h.html#a687672b2c261e965286e36f66e3adbef">grpc_completion_queue_create_for_next</a></div><div class="ttdeci">GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_next(void *reserved)</div><div class="ttdoc">Helper function to create a completion queue with grpc_cq_completion_type of GRPC_CQ_NEXT and grpc_cq...</div></div>
<div class="ttc" id="grpc_8h_html_a687672b2c261e965286e36f66e3adbef"><div class="ttname"><a href="grpc_8h.html#a687672b2c261e965286e36f66e3adbef">grpc_completion_queue_create_for_next</a></div><div class="ttdeci">GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_next(void *reserved)</div><div class="ttdoc">Helper function to create a completion queue with grpc_cq_completion_type of GRPC_CQ_NEXT and grpc_cq...</div></div>
<div class="ttc" id="grpc_8h_html_ab43d55077bcbeb324044d3dcd26a5c80"><div class="ttname"><a href="grpc_8h.html#ab43d55077bcbeb324044d3dcd26a5c80">grpc_completion_queue_next</a></div><div class="ttdeci">GRPCAPI grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, gpr_timespec deadline, void *reserved)</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_ab43d55077bcbeb324044d3dcd26a5c80"><div class="ttname"><a href="grpc_8h.html#ab43d55077bcbeb324044d3dcd26a5c80">grpc_completion_queue_next</a></div><div class="ttdeci">GRPCAPI grpc_event grpc_completion_queue_next(grpc_completion_queue *cq, gpr_timespec deadline, void *reserved)</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__types_8h_html_a7598a0f60120f40389e6e264d23b88a6"><div class="ttname"><a href="grpc__types_8h.html#a7598a0f60120f40389e6e264d23b88a6">grpc_completion_queue_factory</a></div><div class="ttdeci">struct grpc_completion_queue_factory grpc_completion_queue_factory</div><div class="ttdoc">The completion queue factory structure is opaque to the callers of grpc. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:612</div></div>
+<div class="ttc" id="grpc__types_8h_html_a7598a0f60120f40389e6e264d23b88a6"><div class="ttname"><a href="grpc__types_8h.html#a7598a0f60120f40389e6e264d23b88a6">grpc_completion_queue_factory</a></div><div class="ttdeci">struct grpc_completion_queue_factory grpc_completion_queue_factory</div><div class="ttdoc">The completion queue factory structure is opaque to the callers of grpc. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:636</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_types.h:128</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_types.h:128</div></div>
<div class="ttc" id="grpc_8h_html_a098116a78dbf2f635a9934be014d2bd8"><div class="ttname"><a href="grpc_8h.html#a098116a78dbf2f635a9934be014d2bd8">grpc_server_register_completion_queue</a></div><div class="ttdeci">GRPCAPI void grpc_server_register_completion_queue(grpc_server *server, grpc_completion_queue *cq, void *reserved)</div><div class="ttdoc">Register a completion queue with the server. </div></div>
<div class="ttc" id="grpc_8h_html_a098116a78dbf2f635a9934be014d2bd8"><div class="ttname"><a href="grpc_8h.html#a098116a78dbf2f635a9934be014d2bd8">grpc_server_register_completion_queue</a></div><div class="ttdeci">GRPCAPI void grpc_server_register_completion_queue(grpc_server *server, grpc_completion_queue *cq, void *reserved)</div><div class="ttdoc">Register a completion queue with the server. </div></div>
<div class="ttc" id="grpc_8h_html_a62cdc0eb52e0d7742c2f1b72e4cb4850"><div class="ttname"><a href="grpc_8h.html#a62cdc0eb52e0d7742c2f1b72e4cb4850">grpc_g_stands_for</a></div><div class="ttdeci">GRPCAPI const char * grpc_g_stands_for(void)</div><div class="ttdoc">Return a string specifying what the 'g' in gRPC stands for. </div></div>
<div class="ttc" id="grpc_8h_html_a62cdc0eb52e0d7742c2f1b72e4cb4850"><div class="ttname"><a href="grpc_8h.html#a62cdc0eb52e0d7742c2f1b72e4cb4850">grpc_g_stands_for</a></div><div class="ttdeci">GRPCAPI const char * grpc_g_stands_for(void)</div><div class="ttdoc">Return a string specifying what the 'g' in gRPC stands for. </div></div>
<div class="ttc" id="grpc_8h_html_a8bf40c680565d2d3b29b85e8a9e661f3"><div class="ttname"><a href="grpc_8h.html#a8bf40c680565d2d3b29b85e8a9e661f3">grpc_version_string</a></div><div class="ttdeci">GRPCAPI 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="grpc_8h_html_a8bf40c680565d2d3b29b85e8a9e661f3"><div class="ttname"><a href="grpc_8h.html#a8bf40c680565d2d3b29b85e8a9e661f3">grpc_version_string</a></div><div class="ttdeci">GRPCAPI 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__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_types.h:412</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_types.h:423</div></div>
<div class="ttc" id="grpc_8h_html_acad1b47029ebf10f80e0db9423401c87"><div class="ttname"><a href="grpc_8h.html#acad1b47029ebf10f80e0db9423401c87">grpc_channel_ping</a></div><div class="ttdeci">GRPCAPI void grpc_channel_ping(grpc_channel *channel, grpc_completion_queue *cq, void *tag, void *reserved)</div><div class="ttdoc">Ping the channels peer (load balanced channels will select one sub-channel to ping); if the channel i...</div></div>
<div class="ttc" id="grpc_8h_html_acad1b47029ebf10f80e0db9423401c87"><div class="ttname"><a href="grpc_8h.html#acad1b47029ebf10f80e0db9423401c87">grpc_channel_ping</a></div><div class="ttdeci">GRPCAPI void grpc_channel_ping(grpc_channel *channel, grpc_completion_queue *cq, void *tag, void *reserved)</div><div class="ttdoc">Ping the channels peer (load balanced channels will select one sub-channel to ping); if the channel i...</div></div>
-<div class="ttc" id="grpc_8h_html_a44294a352d5e6c2d23a213668e2a11cb"><div class="ttname"><a href="grpc_8h.html#a44294a352d5e6c2d23a213668e2a11cb">grpc_alarm_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_alarm_destroy(grpc_alarm *alarm)</div><div class="ttdoc">Destroy the given completion queue alarm, cancelling it in the process. </div></div>
<div class="ttc" id="grpc_8h_html_ac325c84ef541bcf04697abcc5d167a51"><div class="ttname"><a href="grpc_8h.html#ac325c84ef541bcf04697abcc5d167a51">grpc_channel_num_external_connectivity_watchers</a></div><div class="ttdeci">GRPCAPI int grpc_channel_num_external_connectivity_watchers(grpc_channel *channel)</div><div class="ttdoc">Number of active "external connectivity state watchers" attached to a channel. </div></div>
<div class="ttc" id="grpc_8h_html_ac325c84ef541bcf04697abcc5d167a51"><div class="ttname"><a href="grpc_8h.html#ac325c84ef541bcf04697abcc5d167a51">grpc_channel_num_external_connectivity_watchers</a></div><div class="ttdeci">GRPCAPI int grpc_channel_num_external_connectivity_watchers(grpc_channel *channel)</div><div class="ttdoc">Number of active "external connectivity state watchers" attached to a channel. </div></div>
-<div class="ttc" id="structgrpc__slice_html"><div class="ttname"><a href="structgrpc__slice.html">grpc_slice</a></div><div class="ttdoc">A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...</div><div class="ttdef"><b>Definition:</b> slice.h:76</div></div>
+<div class="ttc" id="structgrpc__slice_html"><div class="ttname"><a href="structgrpc__slice.html">grpc_slice</a></div><div class="ttdoc">A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...</div><div class="ttdef"><b>Definition:</b> slice.h:81</div></div>
<div class="ttc" id="grpc_8h_html_a704afb1a7423e76a9b6264ba840ba54b"><div class="ttname"><a href="grpc_8h.html#a704afb1a7423e76a9b6264ba840ba54b">grpc_resource_quota_unref</a></div><div class="ttdeci">GRPCAPI void grpc_resource_quota_unref(grpc_resource_quota *resource_quota)</div><div class="ttdoc">Drop a reference to a buffer pool. </div></div>
<div class="ttc" id="grpc_8h_html_a704afb1a7423e76a9b6264ba840ba54b"><div class="ttname"><a href="grpc_8h.html#a704afb1a7423e76a9b6264ba840ba54b">grpc_resource_quota_unref</a></div><div class="ttdeci">GRPCAPI void grpc_resource_quota_unref(grpc_resource_quota *resource_quota)</div><div class="ttdoc">Drop a reference to a buffer pool. </div></div>
<div class="ttc" id="grpc_8h_html_ab2213d7fae4c33c47c824266f268859c"><div class="ttname"><a href="grpc_8h.html#ab2213d7fae4c33c47c824266f268859c">grpc_server_start</a></div><div class="ttdeci">GRPCAPI 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="grpc_8h_html_ab2213d7fae4c33c47c824266f268859c"><div class="ttname"><a href="grpc_8h.html#ab2213d7fae4c33c47c824266f268859c">grpc_server_start</a></div><div class="ttdeci">GRPCAPI 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="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
<div class="ttc" id="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
<div class="ttc" id="grpc_8h_html_a3878872e5415c8b8f7765221a8dc961d"><div class="ttname"><a href="grpc_8h.html#a3878872e5415c8b8f7765221a8dc961d">grpc_resource_quota_arg_vtable</a></div><div class="ttdeci">GRPCAPI const grpc_arg_pointer_vtable * grpc_resource_quota_arg_vtable(void)</div><div class="ttdoc">Fetch a vtable for a grpc_channel_arg that points to a grpc_resource_quota. </div></div>
<div class="ttc" id="grpc_8h_html_a3878872e5415c8b8f7765221a8dc961d"><div class="ttname"><a href="grpc_8h.html#a3878872e5415c8b8f7765221a8dc961d">grpc_resource_quota_arg_vtable</a></div><div class="ttdeci">GRPCAPI const grpc_arg_pointer_vtable * grpc_resource_quota_arg_vtable(void)</div><div class="ttdoc">Fetch a vtable for a grpc_channel_arg that points to a grpc_resource_quota. </div></div>
-<div class="ttc" id="grpc_8h_html_aab04022748000f50c2590230f985acbca366bf1a7d2e4cafb3a606436876a1555"><div class="ttname"><a href="grpc_8h.html#aab04022748000f50c2590230f985acbca366bf1a7d2e4cafb3a606436876a1555">GRPC_SRM_PAYLOAD_NONE</a></div><div class="ttdoc">Don't try to read the payload. </div><div class="ttdef"><b>Definition:</b> grpc.h:334</div></div>
+<div class="ttc" id="grpc_8h_html_aab04022748000f50c2590230f985acbca366bf1a7d2e4cafb3a606436876a1555"><div class="ttname"><a href="grpc_8h.html#aab04022748000f50c2590230f985acbca366bf1a7d2e4cafb3a606436876a1555">GRPC_SRM_PAYLOAD_NONE</a></div><div class="ttdoc">Don't try to read the payload. </div><div class="ttdef"><b>Definition:</b> grpc.h:357</div></div>
<div class="ttc" id="grpc_8h_html_ad8472547ac3173e746b1e7980c1208b5"><div class="ttname"><a href="grpc_8h.html#ad8472547ac3173e746b1e7980c1208b5">grpc_server_request_call</a></div><div class="ttdeci">GRPCAPI 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="grpc_8h_html_ad8472547ac3173e746b1e7980c1208b5"><div class="ttname"><a href="grpc_8h.html#ad8472547ac3173e746b1e7980c1208b5">grpc_server_request_call</a></div><div class="ttdeci">GRPCAPI 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="grpc_8h_html_a96bc6ab4dac03f512a04ea6c19733289"><div class="ttname"><a href="grpc_8h.html#a96bc6ab4dac03f512a04ea6c19733289">grpc_call_get_peer</a></div><div class="ttdeci">GRPCAPI 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_a96bc6ab4dac03f512a04ea6c19733289"><div class="ttname"><a href="grpc_8h.html#a96bc6ab4dac03f512a04ea6c19733289">grpc_call_get_peer</a></div><div class="ttdeci">GRPCAPI 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_a783c4ef542c9899f3c2e02c2a956fd6d"><div class="ttname"><a href="grpc_8h.html#a783c4ef542c9899f3c2e02c2a956fd6d">grpc_channel_check_connectivity_state</a></div><div class="ttdeci">GRPCAPI 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="grpc_8h_html_a783c4ef542c9899f3c2e02c2a956fd6d"><div class="ttname"><a href="grpc_8h.html#a783c4ef542c9899f3c2e02c2a956fd6d">grpc_channel_check_connectivity_state</a></div><div class="ttdeci">GRPCAPI 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="grpc_8h_html_aaa25111c739e1c01ae2d195a23079afd"><div class="ttname"><a href="grpc_8h.html#aaa25111c739e1c01ae2d195a23079afd">grpc_channel_get_target</a></div><div class="ttdeci">GRPCAPI 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_aaa25111c739e1c01ae2d195a23079afd"><div class="ttname"><a href="grpc_8h.html#aaa25111c739e1c01ae2d195a23079afd">grpc_channel_get_target</a></div><div class="ttdeci">GRPCAPI 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_a63ace3b4e161d0b5667a5d11dfd602dc"><div class="ttname"><a href="grpc_8h.html#a63ace3b4e161d0b5667a5d11dfd602dc">grpc_is_binary_header</a></div><div class="ttdeci">GRPCAPI int grpc_is_binary_header(grpc_slice slice)</div><div class="ttdoc">Check whether a metadata key corresponds to a binary value. </div></div>
<div class="ttc" id="grpc_8h_html_a63ace3b4e161d0b5667a5d11dfd602dc"><div class="ttname"><a href="grpc_8h.html#a63ace3b4e161d0b5667a5d11dfd602dc">grpc_is_binary_header</a></div><div class="ttdeci">GRPCAPI int grpc_is_binary_header(grpc_slice slice)</div><div class="ttdoc">Check whether a metadata key corresponds to a binary value. </div></div>
<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2"><div class="ttname"><a href="connectivity__state_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> connectivity_state.h:27</div></div>
<div class="ttc" id="connectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2"><div class="ttname"><a href="connectivity__state_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> connectivity_state.h:27</div></div>
@@ -368,15 +379,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="grpc_8h_html_aaf12188fc8a1a4a686595606891a42af"><div class="ttname"><a href="grpc_8h.html#aaf12188fc8a1a4a686595606891a42af">grpc_resource_quota_create</a></div><div class="ttdeci">GRPCAPI grpc_resource_quota * grpc_resource_quota_create(const char *trace_name)</div><div class="ttdoc">Create a buffer pool. </div></div>
<div class="ttc" id="grpc_8h_html_aaf12188fc8a1a4a686595606891a42af"><div class="ttname"><a href="grpc_8h.html#aaf12188fc8a1a4a686595606891a42af">grpc_resource_quota_create</a></div><div class="ttdeci">GRPCAPI grpc_resource_quota * grpc_resource_quota_create(const char *trace_name)</div><div class="ttdoc">Create a buffer pool. </div></div>
<div class="ttc" id="grpc_8h_html_a3af54515116727e18116883e64ee031e"><div class="ttname"><a href="grpc_8h.html#a3af54515116727e18116883e64ee031e">grpc_channel_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_channel_destroy(grpc_channel *channel)</div><div class="ttdoc">Close and destroy a grpc channel. </div></div>
<div class="ttc" id="grpc_8h_html_a3af54515116727e18116883e64ee031e"><div class="ttname"><a href="grpc_8h.html#a3af54515116727e18116883e64ee031e">grpc_channel_destroy</a></div><div class="ttdeci">GRPCAPI 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"><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_types.h:487</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_types.h:498</div></div>
<div class="ttc" id="grpc_8h_html_a5ca4074294f4acbc5cf8c16208a871fc"><div class="ttname"><a href="grpc_8h.html#a5ca4074294f4acbc5cf8c16208a871fc">grpc_server_add_insecure_http2_port</a></div><div class="ttdeci">GRPCAPI int grpc_server_add_insecure_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="grpc_8h_html_a5ca4074294f4acbc5cf8c16208a871fc"><div class="ttname"><a href="grpc_8h.html#a5ca4074294f4acbc5cf8c16208a871fc">grpc_server_add_insecure_http2_port</a></div><div class="ttdeci">GRPCAPI int grpc_server_add_insecure_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="grpc_8h_html_aa7e0ae56f1bbfd9746805bc0161f80bc"><div class="ttname"><a href="grpc_8h.html#aa7e0ae56f1bbfd9746805bc0161f80bc">grpc_completion_queue_factory_lookup</a></div><div class="ttdeci">GRPCAPI const grpc_completion_queue_factory * grpc_completion_queue_factory_lookup(const grpc_completion_queue_attributes *attributes)</div><div class="ttdoc">Returns the completion queue factory based on the attributes. </div></div>
<div class="ttc" id="grpc_8h_html_aa7e0ae56f1bbfd9746805bc0161f80bc"><div class="ttname"><a href="grpc_8h.html#aa7e0ae56f1bbfd9746805bc0161f80bc">grpc_completion_queue_factory_lookup</a></div><div class="ttdeci">GRPCAPI const grpc_completion_queue_factory * grpc_completion_queue_factory_lookup(const grpc_completion_queue_attributes *attributes)</div><div class="ttdoc">Returns the completion queue factory based on the attributes. </div></div>
<div class="ttc" id="grpc_8h_html_a3e1097e9c970519e357eb556777315ec"><div class="ttname"><a href="grpc_8h.html#a3e1097e9c970519e357eb556777315ec">grpc_completion_queue_shutdown</a></div><div class="ttdeci">GRPCAPI 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_a3e1097e9c970519e357eb556777315ec"><div class="ttname"><a href="grpc_8h.html#a3e1097e9c970519e357eb556777315ec">grpc_completion_queue_shutdown</a></div><div class="ttdeci">GRPCAPI 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__types_8h_html_a09ce3d7fa6473ac1cb39692adf257a13"><div class="ttname"><a href="grpc__types_8h.html#a09ce3d7fa6473ac1cb39692adf257a13">grpc_alarm</a></div><div class="ttdeci">struct grpc_alarm grpc_alarm</div><div class="ttdoc">An alarm associated with a completion queue. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:60</div></div>
<div class="ttc" id="grpc__types_8h_html_a09ce3d7fa6473ac1cb39692adf257a13"><div class="ttname"><a href="grpc__types_8h.html#a09ce3d7fa6473ac1cb39692adf257a13">grpc_alarm</a></div><div class="ttdeci">struct grpc_alarm grpc_alarm</div><div class="ttdoc">An alarm associated with a completion queue. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:60</div></div>
<div class="ttc" id="grpc_8h_html_a693db1327a74ba933ad5e2d26e410622"><div class="ttname"><a href="grpc_8h.html#a693db1327a74ba933ad5e2d26e410622">grpc_call_start_batch</a></div><div class="ttdeci">GRPCAPI grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, size_t nops, void *tag, void *reserved)</div><div class="ttdoc">Start a batch of operations defined in the array ops; when complete, post a completion of type 'tag' ...</div></div>
<div class="ttc" id="grpc_8h_html_a693db1327a74ba933ad5e2d26e410622"><div class="ttname"><a href="grpc_8h.html#a693db1327a74ba933ad5e2d26e410622">grpc_call_start_batch</a></div><div class="ttdeci">GRPCAPI grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops, size_t nops, void *tag, void *reserved)</div><div class="ttdoc">Start a batch of operations defined in the array ops; when complete, post a completion of type 'tag' ...</div></div>
@@ -388,27 +398,33 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="grpc_8h_html_ac98bf44e113cc1430e6f1419b4b22cb0"><div class="ttname"><a href="grpc_8h.html#ac98bf44e113cc1430e6f1419b4b22cb0">grpc_header_nonbin_value_is_legal</a></div><div class="ttdeci">GRPCAPI int grpc_header_nonbin_value_is_legal(grpc_slice slice)</div><div class="ttdoc">Check whether a non-binary metadata value is legal (will be accepted by core) </div></div>
<div class="ttc" id="grpc_8h_html_ac98bf44e113cc1430e6f1419b4b22cb0"><div class="ttname"><a href="grpc_8h.html#ac98bf44e113cc1430e6f1419b4b22cb0">grpc_header_nonbin_value_is_legal</a></div><div class="ttdeci">GRPCAPI int grpc_header_nonbin_value_is_legal(grpc_slice slice)</div><div class="ttdoc">Check whether a non-binary metadata value is legal (will be accepted by core) </div></div>
+<div class="ttc" id="grpc_8h_html_a4bcf958a8230547e3fff7604e634231f"><div class="ttname"><a href="grpc_8h.html#a4bcf958a8230547e3fff7604e634231f">grpc_alarm_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_alarm_destroy(grpc_alarm *alarm, void *reserved)</div><div class="ttdoc">Destroy the given completion queue alarm, cancelling it in the process. </div></div>
<div class="ttc" id="grpc_8h_html_a25a24cbee66233b54eecb26ba3cd44ae"><div class="ttname"><a href="grpc_8h.html#a25a24cbee66233b54eecb26ba3cd44ae">grpc_header_key_is_legal</a></div><div class="ttdeci">GRPCAPI int grpc_header_key_is_legal(grpc_slice slice)</div><div class="ttdoc">Check whether a metadata key is legal (will be accepted by core) </div></div>
<div class="ttc" id="grpc_8h_html_a25a24cbee66233b54eecb26ba3cd44ae"><div class="ttname"><a href="grpc_8h.html#a25a24cbee66233b54eecb26ba3cd44ae">grpc_header_key_is_legal</a></div><div class="ttdeci">GRPCAPI int grpc_header_key_is_legal(grpc_slice slice)</div><div class="ttdoc">Check whether a metadata key is legal (will be accepted by core) </div></div>
<div class="ttc" id="grpc_8h_html_a0292bf7a0c794771cd66766dc4b8276c"><div class="ttname"><a href="grpc_8h.html#a0292bf7a0c794771cd66766dc4b8276c">grpc_completion_queue_pluck</a></div><div class="ttdeci">GRPCAPI grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag, gpr_timespec deadline, void *reserved)</div><div class="ttdoc">Blocks until an event with tag 'tag' is available, the completion queue is being shutdown or deadline...</div></div>
<div class="ttc" id="grpc_8h_html_a0292bf7a0c794771cd66766dc4b8276c"><div class="ttname"><a href="grpc_8h.html#a0292bf7a0c794771cd66766dc4b8276c">grpc_completion_queue_pluck</a></div><div class="ttdeci">GRPCAPI grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cq, void *tag, gpr_timespec deadline, void *reserved)</div><div class="ttdoc">Blocks until an event with tag 'tag' is available, the completion queue is being shutdown or deadline...</div></div>
<div class="ttc" id="grpc_8h_html_afacf7bcca0bd15d1ae07fa1ff7b94dce"><div class="ttname"><a href="grpc_8h.html#afacf7bcca0bd15d1ae07fa1ff7b94dce">grpc_census_call_set_context</a></div><div class="ttdeci">GRPCAPI void grpc_census_call_set_context(grpc_call *call, struct census_context *context)</div><div class="ttdoc">Set census context for a call; Must be called before first call to grpc_call_start_batch(). </div></div>
<div class="ttc" id="grpc_8h_html_afacf7bcca0bd15d1ae07fa1ff7b94dce"><div class="ttname"><a href="grpc_8h.html#afacf7bcca0bd15d1ae07fa1ff7b94dce">grpc_census_call_set_context</a></div><div class="ttdeci">GRPCAPI void grpc_census_call_set_context(grpc_call *call, struct census_context *context)</div><div class="ttdoc">Set census context for a call; Must be called before first call to grpc_call_start_batch(). </div></div>
<div class="ttc" id="grpc_8h_html_ae9ceac4996a8c73159e3dc8dd560b882"><div class="ttname"><a href="grpc_8h.html#ae9ceac4996a8c73159e3dc8dd560b882">grpc_completion_queue_create_for_pluck</a></div><div class="ttdeci">GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_pluck(void *reserved)</div><div class="ttdoc">Helper function to create a completion queue with grpc_cq_completion_type of GRPC_CQ_PLUCK and grpc_c...</div></div>
<div class="ttc" id="grpc_8h_html_ae9ceac4996a8c73159e3dc8dd560b882"><div class="ttname"><a href="grpc_8h.html#ae9ceac4996a8c73159e3dc8dd560b882">grpc_completion_queue_create_for_pluck</a></div><div class="ttdeci">GRPCAPI grpc_completion_queue * grpc_completion_queue_create_for_pluck(void *reserved)</div><div class="ttdoc">Helper function to create a completion queue with grpc_cq_completion_type of GRPC_CQ_PLUCK and grpc_c...</div></div>
+<div class="ttc" id="grpc_8h_html_ae5a76150605c2ec42b9cfa71d488590e"><div class="ttname"><a href="grpc_8h.html#ae5a76150605c2ec42b9cfa71d488590e">grpc_completion_queue_thread_local_cache_init</a></div><div class="ttdeci">GRPCAPI void grpc_completion_queue_thread_local_cache_init(grpc_completion_queue *cq)</div><div class="ttdoc">Initializes a thread local cache for cq. </div></div>
+<div class="ttc" id="grpc_8h_html_aa92bdf2570e9c0f63e2e76ad22291907"><div class="ttname"><a href="grpc_8h.html#aa92bdf2570e9c0f63e2e76ad22291907">grpc_completion_queue_thread_local_cache_flush</a></div><div class="ttdeci">GRPCAPI int grpc_completion_queue_thread_local_cache_flush(grpc_completion_queue *cq, void **tag, int *ok)</div><div class="ttdoc">Flushes the thread local cache for cq. </div></div>
<div class="ttc" id="grpc_8h_html_a0bcbc8d69b256843facb8339d812ae2e"><div class="ttname"><a href="grpc_8h.html#a0bcbc8d69b256843facb8339d812ae2e">grpc_tracer_set_enabled</a></div><div class="ttdeci">GRPCAPI 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_a0bcbc8d69b256843facb8339d812ae2e"><div class="ttname"><a href="grpc_8h.html#a0bcbc8d69b256843facb8339d812ae2e">grpc_tracer_set_enabled</a></div><div class="ttdeci">GRPCAPI 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_afb2c29a4f1805be6903261d6f4cfefd0"><div class="ttname"><a href="grpc_8h.html#afb2c29a4f1805be6903261d6f4cfefd0">grpc_register_plugin</a></div><div class="ttdeci">GRPCAPI void grpc_register_plugin(void(*init)(void), void(*destroy)(void))</div><div class="ttdoc">Registers a plugin to be initialized and destroyed with the library. </div></div>
<div class="ttc" id="grpc_8h_html_afb2c29a4f1805be6903261d6f4cfefd0"><div class="ttname"><a href="grpc_8h.html#afb2c29a4f1805be6903261d6f4cfefd0">grpc_register_plugin</a></div><div class="ttdeci">GRPCAPI void grpc_register_plugin(void(*init)(void), void(*destroy)(void))</div><div class="ttdoc">Registers a plugin to be initialized and destroyed with the library. </div></div>
<div class="ttc" id="grpc_8h_html_aee71b01d5d8e91607258d01e1d15785d"><div class="ttname"><a href="grpc_8h.html#aee71b01d5d8e91607258d01e1d15785d">grpc_resource_quota_resize</a></div><div class="ttdeci">GRPCAPI void grpc_resource_quota_resize(grpc_resource_quota *resource_quota, size_t new_size)</div><div class="ttdoc">Update the size of a buffer pool. </div></div>
<div class="ttc" id="grpc_8h_html_aee71b01d5d8e91607258d01e1d15785d"><div class="ttname"><a href="grpc_8h.html#aee71b01d5d8e91607258d01e1d15785d">grpc_resource_quota_resize</a></div><div class="ttdeci">GRPCAPI void grpc_resource_quota_resize(grpc_resource_quota *resource_quota, size_t new_size)</div><div class="ttdoc">Update the size of a buffer pool. </div></div>
<div class="ttc" id="grpc_8h_html_aff94033db2c0a4c2486f8551399b17cd"><div class="ttname"><a href="grpc_8h.html#aff94033db2c0a4c2486f8551399b17cd">grpc_call_error_to_string</a></div><div class="ttdeci">GRPCAPI const char * grpc_call_error_to_string(grpc_call_error error)</div><div class="ttdoc">Convert grpc_call_error values to a string. </div></div>
<div class="ttc" id="grpc_8h_html_aff94033db2c0a4c2486f8551399b17cd"><div class="ttname"><a href="grpc_8h.html#aff94033db2c0a4c2486f8551399b17cd">grpc_call_error_to_string</a></div><div class="ttdeci">GRPCAPI const char * grpc_call_error_to_string(grpc_call_error error)</div><div class="ttdoc">Convert grpc_call_error values to a string. </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="ttdoc">A Census Context is a handle used by Census to represent the current tracing and stats collection inf...</div><div class="ttdef"><b>Definition:</b> census.h:68</div></div>
+<div class="ttc" id="grpc_8h_html_a2fa5cfcbb0f87e4e71e1644f0305cf89"><div class="ttname"><a href="grpc_8h.html#a2fa5cfcbb0f87e4e71e1644f0305cf89">grpc_channel_support_connectivity_watcher</a></div><div class="ttdeci">GRPCAPI int grpc_channel_support_connectivity_watcher(grpc_channel *channel)</div><div class="ttdoc">Check whether a grpc channel supports connectivity watcher. </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="ttdoc">A Census Context is a handle used by Census to represent the current tracing and stats collection inf...</div><div class="ttdef"><b>Definition:</b> census.h:32</div></div>
@@ -140,12 +140,12 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
<div class="ttc" id="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
<div class="ttc" id="grpc__posix_8h_html_a9a7bbbb272a485556cf84f96905b1c78"><div class="ttname"><a href="grpc__posix_8h.html#a9a7bbbb272a485556cf84f96905b1c78">grpc_server_add_insecure_channel_from_fd</a></div><div class="ttdeci">GRPCAPI void grpc_server_add_insecure_channel_from_fd(grpc_server *server, void *reserved, int fd)</div><div class="ttdoc">Add the connected communication channel based on file descriptor 'fd' to the 'server'. </div></div>
<div class="ttc" id="grpc__posix_8h_html_a9a7bbbb272a485556cf84f96905b1c78"><div class="ttname"><a href="grpc__posix_8h.html#a9a7bbbb272a485556cf84f96905b1c78">grpc_server_add_insecure_channel_from_fd</a></div><div class="ttdeci">GRPCAPI void grpc_server_add_insecure_channel_from_fd(grpc_server *server, void *reserved, int fd)</div><div class="ttdoc">Add the connected communication channel based on file descriptor 'fd' to the 'server'. </div></div>
+<tr class="memdesc:a33e259900dbbac0ea018352adf1a4af7"><td class="mdescLeft"> </td><td class="mdescRight">Maximum number of metadata entries returnable by a credentials plugin via a synchronous return. <a href="#a33e259900dbbac0ea018352adf1a4af7">More...</a><br/></td></tr>
+<tr class="memdesc:acb8bbd3a6006aee7f7b254d4a91d914f"><td class="mdescLeft"> </td><td class="mdescRight">Server certificate config object holds the server's public certificates and associated private keys, as well as any CA certificates needed for client certificate validation (if applicable). <a href="#acb8bbd3a6006aee7f7b254d4a91d914f">More...</a><br/></td></tr>
+<tr class="memdesc:a10aa18e9708aa3b13e9464d57ade0782"><td class="mdescLeft"> </td><td class="mdescRight">Callback to retrieve updated SSL server certificates, private keys, and trusted CAs (for client authentication). <a href="#a10aa18e9708aa3b13e9464d57ade0782">More...</a><br/></td></tr>
<tr class="memdesc:af66841ff2c26a95ff9cd18ea2cdf38cb"><td class="mdescLeft"> </td><td class="mdescRight">Creates a compute engine credentials object for connecting to Google. <a href="#af66841ff2c26a95ff9cd18ea2cdf38cb">More...</a><br/></td></tr>
<tr class="memdesc:af66841ff2c26a95ff9cd18ea2cdf38cb"><td class="mdescLeft"> </td><td class="mdescRight">Creates a compute engine credentials object for connecting to Google. <a href="#af66841ff2c26a95ff9cd18ea2cdf38cb">More...</a><br/></td></tr>
<tr class="memdesc:adde6c7d191f88997fd82fd8b54f9420e"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated in favor of grpc_ssl_server_credentials_create_ex. <a href="#adde6c7d191f88997fd82fd8b54f9420e">More...</a><br/></td></tr>
<tr class="memdesc:adde6c7d191f88997fd82fd8b54f9420e"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated in favor of grpc_ssl_server_credentials_create_ex. <a href="#adde6c7d191f88997fd82fd8b54f9420e">More...</a><br/></td></tr>
-<tr class="memdesc:a5f8a4204d09f2b10a3986d25b6583a08"><td class="mdescLeft"> </td><td class="mdescRight">Same as grpc_ssl_server_credentials_create method except uses grpc_ssl_client_certificate_request_type enum to support more ways to authenticate client cerificates. <a href="#a5f8a4204d09f2b10a3986d25b6583a08">More...</a><br/></td></tr>
+<tr class="memdesc:a5f8a4204d09f2b10a3986d25b6583a08"><td class="mdescLeft"> </td><td class="mdescRight">Deprecated in favor of grpc_ssl_server_credentials_create_with_options. <a href="#a5f8a4204d09f2b10a3986d25b6583a08">More...</a><br/></td></tr>
+<tr class="memdesc:a019828123e4b76b8a13f7d8045396d28"><td class="mdescLeft"> </td><td class="mdescRight">Creates an options object using a certificate config. <a href="#a019828123e4b76b8a13f7d8045396d28">More...</a><br/></td></tr>
+<tr class="memdesc:a0bef5efe91a84e2c74b031759a9a7313"><td class="mdescLeft"> </td><td class="mdescRight">Creates an options object using a certificate config fetcher. <a href="#a0bef5efe91a84e2c74b031759a9a7313">More...</a><br/></td></tr>
+<tr class="memdesc:aec838ac89bd393040f0c88dad25a72ca"><td class="mdescLeft"> </td><td class="mdescRight">Creates an SSL server_credentials object using the provided options struct. <a href="#aec838ac89bd393040f0c88dad25a72ca">More...</a><br/></td></tr>
<p>Callback for getting the SSL roots override from the application. </p>
<p>Callback for getting the SSL roots override from the application. </p>
<p>In case of success, *pem_roots_certs must be set to a NULL terminated string containing the list of PEM encoded root certificates. The ownership is passed to the core and freed (laster by the core) with gpr_free. If this function fails and GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment is set to a valid path, it will override the roots specified this func </p>
<p>In case of success, *pem_roots_certs must be set to a NULL terminated string containing the list of PEM encoded root certificates. The ownership is passed to the core and freed (laster by the core) with gpr_free. If this function fails and GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment is set to a valid path, it will override the roots specified this func </p>
+<p>Server certificate config object holds the server's public certificates and associated private keys, as well as any CA certificates needed for client certificate validation (if applicable). </p>
+<p>Create using <a class="el" href="grpc__security_8h.html#a0fbb46fa71b635516037e6b265f937f5" title="Creates a grpc_ssl_server_certificate_config object. ">grpc_ssl_server_certificate_config_create()</a>. </p>
<li>pem_key_cert_pair is a pointer on the object containing client's private key and certificate chain. This parameter can be NULL if the client does not have such a key/cert pair. </li>
<li>pem_key_cert_pair is a pointer on the object containing client's private key and certificate chain. This parameter can be NULL if the client does not have such a key/cert pair. </li>
+<p>Creates a grpc_ssl_server_certificate_config object. </p>
+<ul>
+<li>pem_roots_cert is the NULL-terminated string containing the PEM encoding of the client root certificates. This parameter may be NULL if the server does not want the client to be authenticated with SSL.</li>
+<li>pem_key_cert_pairs is an array private key / certificate chains of the server. This parameter cannot be NULL.</li>
+<li>num_key_cert_pairs indicates the number of items in the private_key_files and cert_chain_files parameters. It must be at least 1.</li>
+<li>It is the caller's responsibility to free this object via <a class="el" href="grpc__security_8h.html#a077c39db13d0211eac9c6a952882bc31" title="Destroys a grpc_ssl_server_certificate_config object. ">grpc_ssl_server_certificate_config_destroy()</a>. </li>
+<p>Deprecated in favor of grpc_ssl_server_credentials_create_with_options. </p>
<p>Same as grpc_ssl_server_credentials_create method except uses grpc_ssl_client_certificate_request_type enum to support more ways to authenticate client cerificates. </p>
<p>Same as grpc_ssl_server_credentials_create method except uses grpc_ssl_client_certificate_request_type enum to support more ways to authenticate client cerificates. </p>
+<p>Creates an options object using a certificate config fetcher. </p>
+<p>Use this method to reload the certificates and keys of the SSL server without interrupting the operation of the server. Initial certificate config will be fetched during server initialization.</p>
+<ul>
+<li>user_data parameter, if not NULL, contains opaque data which will be passed to the fetcher (see definition of grpc_ssl_server_certificate_config_callback). </li>
<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_types.h:128</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_types.h:128</div></div>
-<div class="ttc" id="structgrpc__metadata__credentials__plugin_html"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html">grpc_metadata_credentials_plugin</a></div><div class="ttdoc">grpc_metadata_credentials plugin is an API user provided structure used to create grpc_credentials ob...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:257</div></div>
+<div class="ttc" id="structgrpc__metadata__credentials__plugin_html"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html">grpc_metadata_credentials_plugin</a></div><div class="ttdoc">grpc_metadata_credentials plugin is an API user provided structure used to create grpc_credentials ob...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:261</div></div>
<div class="ttc" id="structgrpc__auth__metadata__context_html_ad031faf41efeaae29c4f71d67a0d2cb3"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#ad031faf41efeaae29c4f71d67a0d2cb3">grpc_auth_metadata_context::method_name</a></div><div class="ttdeci">const char * method_name</div><div class="ttdoc">The method name of the RPC being called (not fully qualified). </div><div class="ttdef"><b>Definition:</b> grpc_security.h:243</div></div>
<div class="ttc" id="structgrpc__auth__metadata__context_html_ad031faf41efeaae29c4f71d67a0d2cb3"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#ad031faf41efeaae29c4f71d67a0d2cb3">grpc_auth_metadata_context::method_name</a></div><div class="ttdeci">const char * method_name</div><div class="ttdoc">The method name of the RPC being called (not fully qualified). </div><div class="ttdef"><b>Definition:</b> grpc_security.h:243</div></div>
-<div class="ttc" id="structgrpc__metadata__credentials__plugin_html_a6c02843e7eff42cb3b397800bd64f2dc"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html#a6c02843e7eff42cb3b397800bd64f2dc">grpc_metadata_credentials_plugin::type</a></div><div class="ttdeci">const char * type</div><div class="ttdoc">Type of credentials that this plugin is implementing. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:273</div></div>
+<div class="ttc" id="structgrpc__metadata__credentials__plugin_html_a6c02843e7eff42cb3b397800bd64f2dc"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html#a6c02843e7eff42cb3b397800bd64f2dc">grpc_metadata_credentials_plugin::type</a></div><div class="ttdeci">const char * type</div><div class="ttdoc">Type of credentials that this plugin is implementing. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:294</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="ttdoc">private_key is the NULL-terminated string containing the PEM encoding of the client's private key...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:138</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="ttdoc">private_key is the NULL-terminated string containing the PEM encoding of the client's private key...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:138</div></div>
<div class="ttc" id="grpc__security_8h_html_aa2108431aea25ab0e9bef17becff7357"><div class="ttname"><a href="grpc__security_8h.html#aa2108431aea25ab0e9bef17becff7357">grpc_google_refresh_token_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_refresh_token_credentials_create(const char *json_refresh_token, void *reserved)</div><div class="ttdoc">Creates an Oauth2 Refresh Token credentials object for connecting to Google. </div></div>
<div class="ttc" id="grpc__security_8h_html_aa2108431aea25ab0e9bef17becff7357"><div class="ttname"><a href="grpc__security_8h.html#aa2108431aea25ab0e9bef17becff7357">grpc_google_refresh_token_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_refresh_token_credentials_create(const char *json_refresh_token, void *reserved)</div><div class="ttdoc">Creates an Oauth2 Refresh Token credentials object for connecting to Google. </div></div>
<div class="ttc" id="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
<div class="ttc" id="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
<div class="ttc" id="grpc__security_8h_html_a93f543166de70abb3a725bdca1d79996"><div class="ttname"><a href="grpc__security_8h.html#a93f543166de70abb3a725bdca1d79996">grpc_auth_context_add_property</a></div><div class="ttdeci">GRPCAPI void grpc_auth_context_add_property(grpc_auth_context *ctx, const char *name, const char *value, size_t value_length)</div><div class="ttdoc">– The following auth context methods should only be called by a server metadata processor to set prop...</div></div>
<div class="ttc" id="grpc__security_8h_html_a93f543166de70abb3a725bdca1d79996"><div class="ttname"><a href="grpc__security_8h.html#a93f543166de70abb3a725bdca1d79996">grpc_auth_context_add_property</a></div><div class="ttdeci">GRPCAPI void grpc_auth_context_add_property(grpc_auth_context *ctx, const char *name, const char *value, size_t value_length)</div><div class="ttdoc">– The following auth context methods should only be called by a server metadata processor to set prop...</div></div>
+<div class="ttc" id="grpc__security_8h_html_aec838ac89bd393040f0c88dad25a72ca"><div class="ttname"><a href="grpc__security_8h.html#aec838ac89bd393040f0c88dad25a72ca">grpc_ssl_server_credentials_create_with_options</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create_with_options(grpc_ssl_server_credentials_options *options)</div><div class="ttdoc">Creates an SSL server_credentials object using the provided options struct. </div></div>
<div class="ttc" id="grpc__security_8h_html_a68183d792830190c3e14504557d57ad7"><div class="ttname"><a href="grpc__security_8h.html#a68183d792830190c3e14504557d57ad7">grpc_google_default_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_google_default_credentials_create(void)</div><div class="ttdoc">Creates default credentials to connect to a google gRPC service. </div></div>
<div class="ttc" id="grpc__security_8h_html_a68183d792830190c3e14504557d57ad7"><div class="ttname"><a href="grpc__security_8h.html#a68183d792830190c3e14504557d57ad7">grpc_google_default_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_google_default_credentials_create(void)</div><div class="ttdoc">Creates default credentials to connect to a google gRPC service. </div></div>
<div class="ttc" id="grpc__security_8h_html_a44c23e47832d9cc27bb56822d66bf436"><div class="ttname"><a href="grpc__security_8h.html#a44c23e47832d9cc27bb56822d66bf436">grpc_set_ssl_roots_override_callback</a></div><div class="ttdeci">GRPCAPI void grpc_set_ssl_roots_override_callback(grpc_ssl_roots_override_callback cb)</div><div class="ttdoc">Setup a callback to override the default TLS/SSL roots. </div></div>
<div class="ttc" id="grpc__security_8h_html_a44c23e47832d9cc27bb56822d66bf436"><div class="ttname"><a href="grpc__security_8h.html#a44c23e47832d9cc27bb56822d66bf436">grpc_set_ssl_roots_override_callback</a></div><div class="ttdeci">GRPCAPI void grpc_set_ssl_roots_override_callback(grpc_ssl_roots_override_callback cb)</div><div class="ttdoc">Setup a callback to override the default TLS/SSL roots. </div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785b"><div class="ttname"><a href="grpc__types_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_types.h:308</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785b"><div class="ttname"><a href="grpc__types_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_types.h:316</div></div>
<div class="ttc" id="grpc__security_8h_html_a064c4dc355a3720cd2bcf6e3ddfb3e05"><div class="ttname"><a href="grpc__security_8h.html#a064c4dc355a3720cd2bcf6e3ddfb3e05">grpc_auth_property_iterator_next</a></div><div class="ttdeci">GRPCAPI const grpc_auth_property * grpc_auth_property_iterator_next(grpc_auth_property_iterator *it)</div><div class="ttdoc">Returns NULL when the iterator is at the end. </div></div>
<div class="ttc" id="grpc__security_8h_html_a064c4dc355a3720cd2bcf6e3ddfb3e05"><div class="ttname"><a href="grpc__security_8h.html#a064c4dc355a3720cd2bcf6e3ddfb3e05">grpc_auth_property_iterator_next</a></div><div class="ttdeci">GRPCAPI const grpc_auth_property * grpc_auth_property_iterator_next(grpc_auth_property_iterator *it)</div><div class="ttdoc">Returns NULL when the iterator is at the end. </div></div>
+<div class="ttc" id="grpc__security_8h_html_a33e259900dbbac0ea018352adf1a4af7"><div class="ttname"><a href="grpc__security_8h.html#a33e259900dbbac0ea018352adf1a4af7">GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX</a></div><div class="ttdeci">#define GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX</div><div class="ttdoc">Maximum number of metadata entries returnable by a credentials plugin via a synchronous return...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:254</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="ttdoc">cert_chain is the NULL-terminated string containing the PEM encoding of the client's certificate chai...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:142</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="ttdoc">cert_chain is the NULL-terminated string containing the PEM encoding of the client's certificate chai...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:142</div></div>
<div class="ttc" id="grpc__security_8h_html_adde6c7d191f88997fd82fd8b54f9420e"><div class="ttname"><a href="grpc__security_8h.html#adde6c7d191f88997fd82fd8b54f9420e">grpc_ssl_server_credentials_create</a></div><div class="ttdeci">GRPCAPI 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, void *reserved)</div><div class="ttdoc">Deprecated in favor of grpc_ssl_server_credentials_create_ex. </div></div>
<div class="ttc" id="grpc__security_8h_html_adde6c7d191f88997fd82fd8b54f9420e"><div class="ttname"><a href="grpc__security_8h.html#adde6c7d191f88997fd82fd8b54f9420e">grpc_ssl_server_credentials_create</a></div><div class="ttdeci">GRPCAPI 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, void *reserved)</div><div class="ttdoc">Deprecated in favor of grpc_ssl_server_credentials_create_ex. </div></div>
<div class="ttc" id="grpc__security__constants_8h_html_a90c47ae1d8c33145342170fe615fa68c"><div class="ttname"><a href="grpc__security__constants_8h.html#a90c47ae1d8c33145342170fe615fa68c">grpc_ssl_roots_override_result</a></div><div class="ttdeci">grpc_ssl_roots_override_result</div><div class="ttdoc">Results for the SSL roots override callback. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:45</div></div>
<div class="ttc" id="grpc__security__constants_8h_html_a90c47ae1d8c33145342170fe615fa68c"><div class="ttname"><a href="grpc__security__constants_8h.html#a90c47ae1d8c33145342170fe615fa68c">grpc_ssl_roots_override_result</a></div><div class="ttdeci">grpc_ssl_roots_override_result</div><div class="ttdoc">Results for the SSL roots override callback. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:45</div></div>
-<div class="ttc" id="structgrpc__metadata__credentials__plugin_html_a3b571f8cbf3cffd887dec1ed5a662571"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html#a3b571f8cbf3cffd887dec1ed5a662571">grpc_metadata_credentials_plugin::state</a></div><div class="ttdeci">void * state</div><div class="ttdoc">State that will be set as the first parameter of the methods above. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:270</div></div>
+<div class="ttc" id="structgrpc__metadata__credentials__plugin_html_a3b571f8cbf3cffd887dec1ed5a662571"><div class="ttname"><a href="structgrpc__metadata__credentials__plugin.html#a3b571f8cbf3cffd887dec1ed5a662571">grpc_metadata_credentials_plugin::state</a></div><div class="ttdeci">void * state</div><div class="ttdoc">State that will be set as the first parameter of the methods above. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:291</div></div>
<div class="ttc" id="grpc__security_8h_html_af66841ff2c26a95ff9cd18ea2cdf38cb"><div class="ttname"><a href="grpc__security_8h.html#af66841ff2c26a95ff9cd18ea2cdf38cb">grpc_google_compute_engine_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_compute_engine_credentials_create(void *reserved)</div><div class="ttdoc">Creates a compute engine credentials object for connecting to Google. </div></div>
<div class="ttc" id="grpc__security_8h_html_af66841ff2c26a95ff9cd18ea2cdf38cb"><div class="ttname"><a href="grpc__security_8h.html#af66841ff2c26a95ff9cd18ea2cdf38cb">grpc_google_compute_engine_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_compute_engine_credentials_create(void *reserved)</div><div class="ttdoc">Creates a compute engine credentials object for connecting to Google. </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="ttdoc">value, if not NULL, is guaranteed to be NULL terminated. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:41</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="ttdoc">value, if not NULL, is guaranteed to be NULL terminated. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:41</div></div>
@@ -362,10 +411,14 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
<div class="ttc" id="grpc__security_8h_html_aa64d5173a15c51fdb2d80c3c187157ca"><div class="ttname"><a href="grpc__security_8h.html#aa64d5173a15c51fdb2d80c3c187157ca">grpc_access_token_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_access_token_credentials_create(const char *access_token, void *reserved)</div><div class="ttdoc">Creates an Oauth2 Access Token credentials with an access token that was aquired by an out of band me...</div></div>
<div class="ttc" id="grpc__security_8h_html_aa64d5173a15c51fdb2d80c3c187157ca"><div class="ttname"><a href="grpc__security_8h.html#aa64d5173a15c51fdb2d80c3c187157ca">grpc_access_token_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_access_token_credentials_create(const char *access_token, void *reserved)</div><div class="ttdoc">Creates an Oauth2 Access Token credentials with an access token that was aquired by an out of band me...</div></div>
<div class="ttc" id="grpc__security_8h_html_a5a627008e49efec12fb97c25b5da4628"><div class="ttname"><a href="grpc__security_8h.html#a5a627008e49efec12fb97c25b5da4628">grpc_auth_context_peer_identity_property_name</a></div><div class="ttdeci">GRPCAPI const char * grpc_auth_context_peer_identity_property_name(const grpc_auth_context *ctx)</div><div class="ttdoc">Gets the name of the property that indicates the peer identity. </div></div>
<div class="ttc" id="grpc__security_8h_html_a5a627008e49efec12fb97c25b5da4628"><div class="ttname"><a href="grpc__security_8h.html#a5a627008e49efec12fb97c25b5da4628">grpc_auth_context_peer_identity_property_name</a></div><div class="ttdeci">GRPCAPI const char * grpc_auth_context_peer_identity_property_name(const grpc_auth_context *ctx)</div><div class="ttdoc">Gets the name of the property that indicates the peer identity. </div></div>
<div class="ttc" id="grpc__security_8h_html_acc59d2e9577dc4429895b9cd89450106"><div class="ttname"><a href="grpc__security_8h.html#acc59d2e9577dc4429895b9cd89450106">grpc_credentials_plugin_metadata_cb</a></div><div class="ttdeci">void(* grpc_credentials_plugin_metadata_cb)(void *user_data, const grpc_metadata *creds_md, size_t num_creds_md, grpc_status_code status, const char *error_details)</div><div class="ttdoc">Callback function to be called by the metadata credentials plugin implementation when the metadata is...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:230</div></div>
<div class="ttc" id="grpc__security_8h_html_acc59d2e9577dc4429895b9cd89450106"><div class="ttname"><a href="grpc__security_8h.html#acc59d2e9577dc4429895b9cd89450106">grpc_credentials_plugin_metadata_cb</a></div><div class="ttdeci">void(* grpc_credentials_plugin_metadata_cb)(void *user_data, const grpc_metadata *creds_md, size_t num_creds_md, grpc_status_code status, const char *error_details)</div><div class="ttdoc">Callback function to be called by the metadata credentials plugin implementation when the metadata is...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:230</div></div>
+<div class="ttc" id="grpc__security_8h_html_a10aa18e9708aa3b13e9464d57ade0782"><div class="ttname"><a href="grpc__security_8h.html#a10aa18e9708aa3b13e9464d57ade0782">grpc_ssl_server_certificate_config_callback</a></div><div class="ttdeci">grpc_ssl_certificate_config_reload_status(* grpc_ssl_server_certificate_config_callback)(void *user_data, grpc_ssl_server_certificate_config **config)</div><div class="ttdoc">Callback to retrieve updated SSL server certificates, private keys, and trusted CAs (for client authe...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:353</div></div>
+<div class="ttc" id="grpc__security_8h_html_a019828123e4b76b8a13f7d8045396d28"><div class="ttname"><a href="grpc__security_8h.html#a019828123e4b76b8a13f7d8045396d28">grpc_ssl_server_credentials_create_options_using_config</a></div><div class="ttdeci">GRPCAPI grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config *certificate_config)</div><div class="ttdoc">Creates an options object using a certificate config. </div></div>
<div class="ttc" id="grpc__security_8h_html_a5bb56dbcba0b0c54e3c6da0635391959"><div class="ttname"><a href="grpc__security_8h.html#a5bb56dbcba0b0c54e3c6da0635391959">grpc_auth_context_peer_is_authenticated</a></div><div class="ttdeci">GRPCAPI int grpc_auth_context_peer_is_authenticated(const grpc_auth_context *ctx)</div><div class="ttdoc">Returns 1 if the peer is authenticated, 0 otherwise. </div></div>
<div class="ttc" id="grpc__security_8h_html_a5bb56dbcba0b0c54e3c6da0635391959"><div class="ttname"><a href="grpc__security_8h.html#a5bb56dbcba0b0c54e3c6da0635391959">grpc_auth_context_peer_is_authenticated</a></div><div class="ttdeci">GRPCAPI int grpc_auth_context_peer_is_authenticated(const grpc_auth_context *ctx)</div><div class="ttdoc">Returns 1 if the peer is authenticated, 0 otherwise. </div></div>
<div class="ttc" id="structgrpc__auth__metadata__context_html"><div class="ttname"><a href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a></div><div class="ttdoc">Context that can be used by metadata credentials plugin in order to create auth related metadata...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:236</div></div>
<div class="ttc" id="structgrpc__auth__metadata__context_html"><div class="ttname"><a href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a></div><div class="ttdoc">Context that can be used by metadata credentials plugin in order to create auth related metadata...</div><div class="ttdef"><b>Definition:</b> grpc_security.h:236</div></div>
<div class="ttc" id="grpc__security_8h_html_a005f46357a959bbfbb7b1241a933ef43"><div class="ttname"><a href="grpc__security_8h.html#a005f46357a959bbfbb7b1241a933ef43">grpc_ssl_roots_override_callback</a></div><div class="ttdeci">grpc_ssl_roots_override_result(* grpc_ssl_roots_override_callback)(char **pem_root_certs)</div><div class="ttdoc">Callback for getting the SSL roots override from the application. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:123</div></div>
<div class="ttc" id="grpc__security_8h_html_a005f46357a959bbfbb7b1241a933ef43"><div class="ttname"><a href="grpc__security_8h.html#a005f46357a959bbfbb7b1241a933ef43">grpc_ssl_roots_override_callback</a></div><div class="ttdeci">grpc_ssl_roots_override_result(* grpc_ssl_roots_override_callback)(char **pem_root_certs)</div><div class="ttdoc">Callback for getting the SSL roots override from the application. </div><div class="ttdef"><b>Definition:</b> grpc_security.h:123</div></div>
@@ -373,7 +426,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
-<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a1041edab0ab12d270937f066f1e1ea0d"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a1041edab0ab12d270937f066f1e1ea0d">GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY</a></div><div class="ttdoc">Server requests client certificate but enforces that the client presents a certificate. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:92</div></div>
+<div class="ttc" id="grpc__security__constants_8h_html_a4f19e93998bbda68d9c24f27673ff627"><div class="ttname"><a href="grpc__security__constants_8h.html#a4f19e93998bbda68d9c24f27673ff627">grpc_ssl_certificate_config_reload_status</a></div><div class="ttdeci">grpc_ssl_certificate_config_reload_status</div><div class="ttdoc">Callback results for dynamically loading a SSL certificate config. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:52</div></div>
+<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a1041edab0ab12d270937f066f1e1ea0d"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a1041edab0ab12d270937f066f1e1ea0d">GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_AND_VERIFY</a></div><div class="ttdoc">Server requests client certificate but enforces that the client presents a certificate. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:99</div></div>
-<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a6522b7d489da328ef7c9745039a93f42"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a6522b7d489da328ef7c9745039a93f42">GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY</a></div><div class="ttdoc">Server requests client certificate but enforces that the client presents a certificate. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:83</div></div>
+<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a6522b7d489da328ef7c9745039a93f42"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a6522b7d489da328ef7c9745039a93f42">GRPC_SSL_REQUEST_AND_REQUIRE_CLIENT_CERTIFICATE_BUT_DONT_VERIFY</a></div><div class="ttdoc">Server requests client certificate but enforces that the client presents a certificate. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:90</div></div>
-<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a7390ee04c71c633589eefdad872c2048"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a7390ee04c71c633589eefdad872c2048">GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY</a></div><div class="ttdoc">Server requests client certificate but does not enforce that the client presents a certificate...</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:74</div></div>
-<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09af7c66a36be648bf7e396a145654d79f1"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09af7c66a36be648bf7e396a145654d79f1">GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY</a></div><div class="ttdoc">Server requests client certificate but does not enforce that the client presents a certificate...</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:64</div></div>
-<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a8bced4a94b58d31fd0718d3203da376f"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a8bced4a94b58d31fd0718d3203da376f">GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE</a></div><div class="ttdoc">Server does not request client certificate. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:55</div></div>
+<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a7390ee04c71c633589eefdad872c2048"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a7390ee04c71c633589eefdad872c2048">GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_AND_VERIFY</a></div><div class="ttdoc">Server requests client certificate but does not enforce that the client presents a certificate...</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:81</div></div>
+<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09af7c66a36be648bf7e396a145654d79f1"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09af7c66a36be648bf7e396a145654d79f1">GRPC_SSL_REQUEST_CLIENT_CERTIFICATE_BUT_DONT_VERIFY</a></div><div class="ttdoc">Server requests client certificate but does not enforce that the client presents a certificate...</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:71</div></div>
+<div class="ttc" id="grpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09a8bced4a94b58d31fd0718d3203da376f"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09a8bced4a94b58d31fd0718d3203da376f">GRPC_SSL_DONT_REQUEST_CLIENT_CERTIFICATE</a></div><div class="ttdoc">Server does not request client certificate. </div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:62</div></div>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">If <em>is_set</em>, <em>compression_level</em> will be used for the call. <a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219.html#details">More...</a><br/></td></tr>
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">If <em>is_set</em>, <em>compression_level</em> will be used for the call. <a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219.html#details">More...</a><br/></td></tr>
-<tr class="memdesc:gacc0d0f1d3d582d39fcfb7a835b730a6c"><td class="mdescLeft"> </td><td class="mdescRight">Minimum time (in milliseconds) between successive ping frames being sent. <a href="group__grpc__arg__keys.html#gacc0d0f1d3d582d39fcfb7a835b730a6c">More...</a><br/></td></tr>
+<tr class="memdesc:ga69583c8efdbdcb7cdf9055ee80a07014"><td class="mdescLeft"> </td><td class="mdescRight">Minimum time between sending successive ping frames without receiving any data frame, Int valued, milliseconds. <a href="group__grpc__arg__keys.html#ga69583c8efdbdcb7cdf9055ee80a07014">More...</a><br/></td></tr>
+<tr class="memdesc:ga4494709dc5c7c899af4ed67ec7728549"><td class="mdescLeft"> </td><td class="mdescRight">Minimum allowed time between receiving successive ping frames without sending any data frame. <a href="group__grpc__arg__keys.html#ga4494709dc5c7c899af4ed67ec7728549">More...</a><br/></td></tr>
<tr class="memdesc:gaf50a9992745183e14e8c660d954c1d82"><td class="mdescLeft"> </td><td class="mdescRight">How many misbehaving pings the server can bear before sending goaway and closing the transport? (0 indicates that the server can bear an infinite number of misbehaving pings) <a href="group__grpc__arg__keys.html#gaf50a9992745183e14e8c660d954c1d82">More...</a><br/></td></tr>
<tr class="memdesc:gaf50a9992745183e14e8c660d954c1d82"><td class="mdescLeft"> </td><td class="mdescRight">How many misbehaving pings the server can bear before sending goaway and closing the transport? (0 indicates that the server can bear an infinite number of misbehaving pings) <a href="group__grpc__arg__keys.html#gaf50a9992745183e14e8c660d954c1d82">More...</a><br/></td></tr>
-<tr class="memdesc:gac3470e2718001b173a7b8398ab60fe09"><td class="mdescLeft"> </td><td class="mdescRight">Minimum allowed time between two pings without sending any data frame. <a href="group__grpc__arg__keys.html#gac3470e2718001b173a7b8398ab60fe09">More...</a><br/></td></tr>
<tr class="memdesc:ga8ee81850446e587a7410df5ab640c565"><td class="mdescLeft"> </td><td class="mdescRight">How much data are we willing to queue up per stream if GRPC_WRITE_BUFFER_HINT is set? This is an upper bound. <a href="group__grpc__arg__keys.html#ga8ee81850446e587a7410df5ab640c565">More...</a><br/></td></tr>
<tr class="memdesc:ga8ee81850446e587a7410df5ab640c565"><td class="mdescLeft"> </td><td class="mdescRight">How much data are we willing to queue up per stream if GRPC_WRITE_BUFFER_HINT is set? This is an upper bound. <a href="group__grpc__arg__keys.html#ga8ee81850446e587a7410df5ab640c565">More...</a><br/></td></tr>
<tr class="memdesc:gaedb26c5ca7d3d279b81d12d9bf6dabc6"><td class="mdescLeft"> </td><td class="mdescRight">The time between the first and second connection attempts, in ms. <a href="group__grpc__arg__keys.html#gaedb26c5ca7d3d279b81d12d9bf6dabc6">More...</a><br/></td></tr>
<tr class="memdesc:gaedb26c5ca7d3d279b81d12d9bf6dabc6"><td class="mdescLeft"> </td><td class="mdescRight">The time between the first and second connection attempts, in ms. <a href="group__grpc__arg__keys.html#gaedb26c5ca7d3d279b81d12d9bf6dabc6">More...</a><br/></td></tr>
+<tr class="memdesc:gabd95d2a6b1cd3b3ca8a1c9fb7eb4cdf1"><td class="mdescLeft"> </td><td class="mdescRight">The timeout used on servers for finishing handshaking on an incoming connection. <a href="group__grpc__arg__keys.html#gabd95d2a6b1cd3b3ca8a1c9fb7eb4cdf1">More...</a><br/></td></tr>
<tr class="memdesc:ga218bf55b665134a11baf07ada5980825"><td class="mdescLeft"> </td><td class="mdescRight">This <em>should</em> be used for testing only. <a href="group__grpc__arg__keys.html#ga218bf55b665134a11baf07ada5980825">More...</a><br/></td></tr>
<tr class="memdesc:ga218bf55b665134a11baf07ada5980825"><td class="mdescLeft"> </td><td class="mdescRight">This <em>should</em> be used for testing only. <a href="group__grpc__arg__keys.html#ga218bf55b665134a11baf07ada5980825">More...</a><br/></td></tr>
<tr class="memdesc:ae09000181671f031ed0e319ed557da4e"><td class="mdescLeft"> </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="memdesc:ae09000181671f031ed0e319ed557da4e"><td class="mdescLeft"> </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="memdesc:a5de65995b1101bba3652f9d2ae51cc23"><td class="mdescLeft"> </td><td class="mdescRight">Force this message to be written to the socket before completing it. <a href="#a5de65995b1101bba3652f9d2ae51cc23">More...</a><br/></td></tr>
<tr class="memdesc:a3317259e1098b2b6f49982d6997bbf6a"><td class="mdescLeft"> </td><td class="mdescRight">Mask of all valid flags. <a href="#a3317259e1098b2b6f49982d6997bbf6a">More...</a><br/></td></tr>
<tr class="memdesc:a3317259e1098b2b6f49982d6997bbf6a"><td class="mdescLeft"> </td><td class="mdescRight">Mask of all valid flags. <a href="#a3317259e1098b2b6f49982d6997bbf6a">More...</a><br/></td></tr>
-<div class="ttc" id="grpc__types_8h_html_afa71c451716eca6c8d38fb71d66c0bbb"><div class="ttname"><a href="grpc__types_8h.html#afa71c451716eca6c8d38fb71d66c0bbb">GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET</div><div class="ttdoc">Signal that GRPC_INITIAL_METADATA_WAIT_FOR_READY was explicitly set by the calling application...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:370</div></div>
-<div class="ttc" id="grpc__types_8h_html_a1175f30479912922d006387536d2c46c"><div class="ttname"><a href="grpc__types_8h.html#a1175f30479912922d006387536d2c46c">GRPC_INITIAL_METADATA_CORKED</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_CORKED</div><div class="ttdoc">Signal that the initial metadata should be corked. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:372</div></div>
-<div class="ttc" id="grpc__types_8h_html_a7978c09a9933e7b858c65c1b03eb5b2b"><div class="ttname"><a href="grpc__types_8h.html#a7978c09a9933e7b858c65c1b03eb5b2b">GRPC_INITIAL_METADATA_CACHEABLE_REQUEST</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_CACHEABLE_REQUEST</div><div class="ttdoc">Signal that the call is cacheable. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:367</div></div>
-<div class="ttc" id="grpc__types_8h_html_a9606180fd0950a1514522fbe535edf49"><div class="ttname"><a href="grpc__types_8h.html#a9606180fd0950a1514522fbe535edf49">GRPC_INITIAL_METADATA_WAIT_FOR_READY</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_WAIT_FOR_READY</div><div class="ttdoc">Signal that the call should not return UNAVAILABLE before it has started. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:365</div></div>
+<div class="ttc" id="grpc__types_8h_html_a5de65995b1101bba3652f9d2ae51cc23"><div class="ttname"><a href="grpc__types_8h.html#a5de65995b1101bba3652f9d2ae51cc23">GRPC_WRITE_THROUGH</a></div><div class="ttdeci">#define GRPC_WRITE_THROUGH</div><div class="ttdoc">Force this message to be written to the socket before completing it. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:367</div></div>
+<div class="ttc" id="grpc__types_8h_html_afa71c451716eca6c8d38fb71d66c0bbb"><div class="ttname"><a href="grpc__types_8h.html#afa71c451716eca6c8d38fb71d66c0bbb">GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET</div><div class="ttdoc">Signal that GRPC_INITIAL_METADATA_WAIT_FOR_READY was explicitly set by the calling application...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:381</div></div>
+<div class="ttc" id="grpc__types_8h_html_a1175f30479912922d006387536d2c46c"><div class="ttname"><a href="grpc__types_8h.html#a1175f30479912922d006387536d2c46c">GRPC_INITIAL_METADATA_CORKED</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_CORKED</div><div class="ttdoc">Signal that the initial metadata should be corked. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:383</div></div>
+<div class="ttc" id="grpc__types_8h_html_a7978c09a9933e7b858c65c1b03eb5b2b"><div class="ttname"><a href="grpc__types_8h.html#a7978c09a9933e7b858c65c1b03eb5b2b">GRPC_INITIAL_METADATA_CACHEABLE_REQUEST</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_CACHEABLE_REQUEST</div><div class="ttdoc">Signal that the call is cacheable. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:378</div></div>
+<div class="ttc" id="grpc__types_8h_html_a9606180fd0950a1514522fbe535edf49"><div class="ttname"><a href="grpc__types_8h.html#a9606180fd0950a1514522fbe535edf49">GRPC_INITIAL_METADATA_WAIT_FOR_READY</a></div><div class="ttdeci">#define GRPC_INITIAL_METADATA_WAIT_FOR_READY</div><div class="ttdoc">Signal that the call should not return UNAVAILABLE before it has started. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:376</div></div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> <span class="preprocessor"></span><span class="comment">/* Timeout in milliseconds to use for calls to the grpclb load balancer.</span></div>
-<div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <span class="comment"> If 0 or unset, the balancer calls will have no deadline. */</span></div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <span class="preprocessor"></span><span class="comment">/* Timeout in milliseconds to use for calls to the grpclb load balancer.</span></div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span> <span class="comment"> If 0 or unset, the balancer calls will have no deadline. */</span></div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span> <span class="preprocessor"></span><span class="comment">/* Timeout in milliseconds to wait for the serverlist from the grpclb load</span></div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="comment"> balancer before using fallback backend addresses from the resolver.</span></div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span> <span class="comment"> If 0, fallback will never be used. */</span></div>
-<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343a30fe3e6720c740094d5295546e9bb849"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343a30fe3e6720c740094d5295546e9bb849">GRPC_CQ_NON_POLLING</a></div><div class="ttdoc">The completion queue will not have an associated pollset. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:588</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8"><div class="ttname"><a href="grpc__types_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_types.h:314</div></div>
-<div class="ttc" id="structgrpc__channel__info_html_abdd188fe2ff5b9e98a5088b350c3f36d"><div class="ttname"><a href="structgrpc__channel__info.html#abdd188fe2ff5b9e98a5088b350c3f36d">grpc_channel_info::lb_policy_name</a></div><div class="ttdeci">char ** lb_policy_name</div><div class="ttdoc">If non-NULL, will be set to point to a string indicating the LB policy name. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:557</div></div>
+<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343a30fe3e6720c740094d5295546e9bb849"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343a30fe3e6720c740094d5295546e9bb849">GRPC_CQ_NON_POLLING</a></div><div class="ttdoc">The completion queue will not have an associated pollset. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:612</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba1a48e861db610ae8f0b0cba7749251d8"><div class="ttname"><a href="grpc__types_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_types.h:322</div></div>
+<div class="ttc" id="structgrpc__channel__info_html_abdd188fe2ff5b9e98a5088b350c3f36d"><div class="ttname"><a href="structgrpc__channel__info.html#abdd188fe2ff5b9e98a5088b350c3f36d">grpc_channel_info::lb_policy_name</a></div><div class="ttdeci">char ** lb_policy_name</div><div class="ttdoc">If non-NULL, will be set to point to a string indicating the LB policy name. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:581</div></div>
<div class="ttc" id="grpc__types_8h_html_a6556a58ca45ad5132b89c770cf875215"><div class="ttname"><a href="grpc__types_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__types_8h_html_a6556a58ca45ad5132b89c770cf875215"><div class="ttname"><a href="grpc__types_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__types_8h_html_a7598a0f60120f40389e6e264d23b88a6"><div class="ttname"><a href="grpc__types_8h.html#a7598a0f60120f40389e6e264d23b88a6">grpc_completion_queue_factory</a></div><div class="ttdeci">struct grpc_completion_queue_factory grpc_completion_queue_factory</div><div class="ttdoc">The completion queue factory structure is opaque to the callers of grpc. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:612</div></div>
-<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219_html"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219.html">grpc_op::grpc_op_data::grpc_op_send_initial_metadata::grpc_op_send_initial_metadata_maybe_compression_level</a></div><div class="ttdoc">If is_set, compression_level will be used for the call. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:504</div></div>
+<div class="ttc" id="grpc__types_8h_html_a7598a0f60120f40389e6e264d23b88a6"><div class="ttname"><a href="grpc__types_8h.html#a7598a0f60120f40389e6e264d23b88a6">grpc_completion_queue_factory</a></div><div class="ttdeci">struct grpc_completion_queue_factory grpc_completion_queue_factory</div><div class="ttdoc">The completion queue factory structure is opaque to the callers of grpc. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:636</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219_html"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219.html">grpc_op::grpc_op_data::grpc_op_send_initial_metadata::grpc_op_send_initial_metadata_maybe_compression_level</a></div><div class="ttdoc">If is_set, compression_level will be used for the call. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:515</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_types.h:128</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_types.h:128</div></div>
-<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486"><div class="ttname"><a href="grpc__types_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_types.h:454</div></div>
-<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64"><div class="ttname"><a href="grpc__types_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_types.h:459</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__message_html_ac5710965e63672497b156855e096a759"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__message.html#ac5710965e63672497b156855e096a759">grpc_op::grpc_op_data::grpc_op_send_message::send_message</a></div><div class="ttdeci">struct grpc_byte_buffer * send_message</div><div class="ttdoc">This op takes ownership of the slices in send_message. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:530</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa6c66420562347ff4dcf35e4b32c0d486"><div class="ttname"><a href="grpc__types_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_types.h:465</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa3a3659314e7495b1cabed0f3a6705f64"><div class="ttname"><a href="grpc__types_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_types.h:470</div></div>
<div class="ttc" id="grpc__types_8h_html_acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636"><div class="ttname"><a href="grpc__types_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">GRPC_BB_RAW</a></div><div class="ttdoc">Future types may include GRPC_BB_PROTOBUF, etc. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:37</div></div>
<div class="ttc" id="grpc__types_8h_html_acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636"><div class="ttname"><a href="grpc__types_8h.html#acdc94363b280bde9c82e3d9b5dc3b3e6a1918bbb8502c74288793b58f1786f636">GRPC_BB_RAW</a></div><div class="ttdoc">Future types may include GRPC_BB_PROTOBUF, etc. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:37</div></div>
-<div class="ttc" id="structgrpc__metadata_html_a97e0b57621fa9ae74f15e833bece37a6"><div class="ttname"><a href="structgrpc__metadata.html#a97e0b57621fa9ae74f15e833bece37a6">grpc_metadata::key</a></div><div class="ttdeci">grpc_slice key</div><div class="ttdoc">the key, value values are expected to line up with grpc_mdelem: if changing them, update metadata...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:386</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454"><div class="ttname"><a href="grpc__types_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_types.h:327</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_types.h:412</div></div>
+<div class="ttc" id="structgrpc__metadata_html_a97e0b57621fa9ae74f15e833bece37a6"><div class="ttname"><a href="structgrpc__metadata.html#a97e0b57621fa9ae74f15e833bece37a6">grpc_metadata::key</a></div><div class="ttdeci">grpc_slice key</div><div class="ttdoc">the key, value values are expected to line up with grpc_mdelem: if changing them, update metadata...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:397</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7e09791915b841c30e9d79c26a5a6454"><div class="ttname"><a href="grpc__types_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_types.h:335</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_types.h:423</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f"><div class="ttname"><a href="grpc__types_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_types.h:336</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client_html_a6d5471266248e60c09104ca5bf2e4b63"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client.html#a6d5471266248e60c09104ca5bf2e4b63">grpc_op::grpc_op_data::grpc_op_recv_status_on_client::error_string</a></div><div class="ttdeci">const char ** error_string</div><div class="ttdoc">If this is not nullptr, it will be populated with the full fidelity error string for debugging purpos...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:567</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785bade52e850722f80804d90881ac125706f"><div class="ttname"><a href="grpc__types_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_types.h:344</div></div>
-<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70"><div class="ttname"><a href="grpc__types_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_types.h:449</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aaa6447181c20e4c6d64a54fae8082ef70"><div class="ttname"><a href="grpc__types_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_types.h:460</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">If the grpc_completion_type is GRPC_OP_COMPLETE, this field indicates whether the operation was succe...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:420</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857"><div class="ttname"><a href="grpc__types_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_types.h:320</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">If the grpc_completion_type is GRPC_OP_COMPLETE, this field indicates whether the operation was succe...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:431</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba042165aa26653c844a846d188f722857"><div class="ttname"><a href="grpc__types_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_types.h:328</div></div>
<div class="ttc" id="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
<div class="ttc" id="grpc__types_8h_html_a2bbbaad8f7a806f6c834b68c5dd916d8"><div class="ttname"><a href="grpc__types_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_types.h:66</div></div>
-<div class="ttc" id="grpc__types_8h_html_a1d6272e15d32381a9ffa027cefd60bf8a3fccd6237614f711bfc1999438ed2676"><div class="ttname"><a href="grpc__types_8h.html#a1d6272e15d32381a9ffa027cefd60bf8a3fccd6237614f711bfc1999438ed2676">GRPC_CQ_NEXT</a></div><div class="ttdoc">Events are popped out by calling grpc_completion_queue_next() API ONLY. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:594</div></div>
+<div class="ttc" id="grpc__types_8h_html_a1d6272e15d32381a9ffa027cefd60bf8a3fccd6237614f711bfc1999438ed2676"><div class="ttname"><a href="grpc__types_8h.html#a1d6272e15d32381a9ffa027cefd60bf8a3fccd6237614f711bfc1999438ed2676">GRPC_CQ_NEXT</a></div><div class="ttdoc">Events are popped out by calling grpc_completion_queue_next() API ONLY. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:618</div></div>
-<div class="ttc" id="compression__types_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7"><div class="ttname"><a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a></div><div class="ttdeci">grpc_compression_level</div><div class="ttdoc">Compression levels allow a party with knowledge of its peer's accepted encodings to request compressi...</div><div class="ttdef"><b>Definition:</b> compression_types.h:68</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7dfc7fe11288dd7a30a8f07b890c9c5b"><div class="ttname"><a href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7dfc7fe11288dd7a30a8f07b890c9c5b">GRPC_CALL_ERROR_INVALID_MESSAGE</a></div><div class="ttdoc">invalid message was passed to this call </div><div class="ttdef"><b>Definition:</b> grpc_types.h:333</div></div>
-<div class="ttc" id="structgrpc__slice__buffer_html"><div class="ttname"><a href="structgrpc__slice__buffer.html">grpc_slice_buffer</a></div><div class="ttdoc">Represents an expandable array of slices, to be interpreted as a single item. </div><div class="ttdef"><b>Definition:</b> slice.h:94</div></div>
+<div class="ttc" id="compression__types_8h_html_a14a79ed6b5ebd7e1dda7c2684f499cc7"><div class="ttname"><a href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a></div><div class="ttdeci">grpc_compression_level</div><div class="ttdoc">Compression levels allow a party with knowledge of its peer's accepted encodings to request compressi...</div><div class="ttdef"><b>Definition:</b> compression_types.h:97</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7dfc7fe11288dd7a30a8f07b890c9c5b"><div class="ttname"><a href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba7dfc7fe11288dd7a30a8f07b890c9c5b">GRPC_CALL_ERROR_INVALID_MESSAGE</a></div><div class="ttdoc">invalid message was passed to this call </div><div class="ttdef"><b>Definition:</b> grpc_types.h:341</div></div>
+<div class="ttc" id="structgrpc__slice__buffer_html"><div class="ttname"><a href="structgrpc__slice__buffer.html">grpc_slice_buffer</a></div><div class="ttdoc">Represents an expandable array of slices, to be interpreted as a single item. </div><div class="ttdef"><b>Definition:</b> slice.h:99</div></div>
-<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client_html_ac9335d5e1ce9d7accc13364e1f772253"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client.html#ac9335d5e1ce9d7accc13364e1f772253">grpc_op::grpc_op_data::grpc_op_recv_status_on_client::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_types.h:541</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client_html_ac9335d5e1ce9d7accc13364e1f772253"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client.html#ac9335d5e1ce9d7accc13364e1f772253">grpc_op::grpc_op_data::grpc_op_recv_status_on_client::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_types.h:561</div></div>
-<div class="ttc" id="grpc__types_8h_html_a1d6272e15d32381a9ffa027cefd60bf8"><div class="ttname"><a href="grpc__types_8h.html#a1d6272e15d32381a9ffa027cefd60bf8">grpc_cq_completion_type</a></div><div class="ttdeci">grpc_cq_completion_type</div><div class="ttdoc">Specifies the type of APIs to use to pop events from the completion queue. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:592</div></div>
-<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343">grpc_cq_polling_type</a></div><div class="ttdeci">grpc_cq_polling_type</div><div class="ttdoc">Completion queues internally MAY maintain a set of file descriptors in a structure called 'pollset'...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:574</div></div>
-<div class="ttc" id="grpc__types_8h_html_a1d6272e15d32381a9ffa027cefd60bf8a7ddd2051625309ecc657b658c021476a"><div class="ttname"><a href="grpc__types_8h.html#a1d6272e15d32381a9ffa027cefd60bf8a7ddd2051625309ecc657b658c021476a">GRPC_CQ_PLUCK</a></div><div class="ttdoc">Events are popped out by calling grpc_completion_queue_pluck() API ONLY. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:597</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a"><div class="ttname"><a href="grpc__types_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_types.h:318</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296"><div class="ttname"><a href="grpc__types_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_types.h:322</div></div>
+<div class="ttc" id="grpc__types_8h_html_a1d6272e15d32381a9ffa027cefd60bf8"><div class="ttname"><a href="grpc__types_8h.html#a1d6272e15d32381a9ffa027cefd60bf8">grpc_cq_completion_type</a></div><div class="ttdeci">grpc_cq_completion_type</div><div class="ttdoc">Specifies the type of APIs to use to pop events from the completion queue. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:616</div></div>
+<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343">grpc_cq_polling_type</a></div><div class="ttdeci">grpc_cq_polling_type</div><div class="ttdoc">Completion queues internally MAY maintain a set of file descriptors in a structure called 'pollset'...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:598</div></div>
+<div class="ttc" id="grpc__types_8h_html_a1d6272e15d32381a9ffa027cefd60bf8a7ddd2051625309ecc657b658c021476a"><div class="ttname"><a href="grpc__types_8h.html#a1d6272e15d32381a9ffa027cefd60bf8a7ddd2051625309ecc657b658c021476a">GRPC_CQ_PLUCK</a></div><div class="ttdoc">Events are popped out by calling grpc_completion_queue_pluck() API ONLY. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:621</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba2f6f332e63eb94df8abedfddb96ae63a"><div class="ttname"><a href="grpc__types_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_types.h:326</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba6113860606450e3a3fa40ddf46749296"><div class="ttname"><a href="grpc__types_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_types.h:330</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_types.h:487</div></div>
-<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078"><div class="ttname"><a href="grpc__types_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_types.h:464</div></div>
-<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__message_html"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__message.html">grpc_op::grpc_op_data::grpc_op_recv_message</a></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_types.h:532</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_types.h:498</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aaabe080072d165d1e69459abd7c742078"><div class="ttname"><a href="grpc__types_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_types.h:475</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__message_html"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__message.html">grpc_op::grpc_op_data::grpc_op_recv_message</a></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_types.h:552</div></div>
-<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6"><div class="ttname"><a href="grpc__types_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_types.h:480</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa8fb75ed79601a4845a39a74d7505cef6"><div class="ttname"><a href="grpc__types_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_types.h:491</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63"><div class="ttname"><a href="grpc__types_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_types.h:325</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba21256301a6038a6a03fc8444ddd08c63"><div class="ttname"><a href="grpc__types_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_types.h:333</div></div>
<div class="ttc" id="grpc__types_8h_html_a09ce3d7fa6473ac1cb39692adf257a13"><div class="ttname"><a href="grpc__types_8h.html#a09ce3d7fa6473ac1cb39692adf257a13">grpc_alarm</a></div><div class="ttdeci">struct grpc_alarm grpc_alarm</div><div class="ttdoc">An alarm associated with a completion queue. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:60</div></div>
<div class="ttc" id="grpc__types_8h_html_a09ce3d7fa6473ac1cb39692adf257a13"><div class="ttname"><a href="grpc__types_8h.html#a09ce3d7fa6473ac1cb39692adf257a13">grpc_alarm</a></div><div class="ttdeci">struct grpc_alarm grpc_alarm</div><div class="ttdoc">An alarm associated with a completion queue. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:60</div></div>
-<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343afc366f1bf1fc412fafd97557bc0160c8"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343afc366f1bf1fc412fafd97557bc0160c8">GRPC_CQ_DEFAULT_POLLING</a></div><div class="ttdoc">The completion queue will have an associated pollset and there is no restriction on the type of file ...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:577</div></div>
-<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343aa291aea150282f3a2366437d8fc93b11"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343aa291aea150282f3a2366437d8fc93b11">GRPC_CQ_NON_LISTENING</a></div><div class="ttdoc">Similar to GRPC_CQ_DEFAULT_POLLING except that the completion queues will not contain any 'listening ...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:582</div></div>
-<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721"><div class="ttname"><a href="grpc__types_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_types.h:445</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861"><div class="ttname"><a href="grpc__types_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_types.h:329</div></div>
+<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343afc366f1bf1fc412fafd97557bc0160c8"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343afc366f1bf1fc412fafd97557bc0160c8">GRPC_CQ_DEFAULT_POLLING</a></div><div class="ttdoc">The completion queue will have an associated pollset and there is no restriction on the type of file ...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:601</div></div>
+<div class="ttc" id="grpc__types_8h_html_a6f3d3ec662c2a8ac669c98163d511343aa291aea150282f3a2366437d8fc93b11"><div class="ttname"><a href="grpc__types_8h.html#a6f3d3ec662c2a8ac669c98163d511343aa291aea150282f3a2366437d8fc93b11">GRPC_CQ_NON_LISTENING</a></div><div class="ttdoc">Similar to GRPC_CQ_DEFAULT_POLLING except that the completion queues will not contain any 'listening ...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:606</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aaf5bbedf13763c180b2f1ada62769d721"><div class="ttname"><a href="grpc__types_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_types.h:456</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785bae915786320e24eff4f1e05852d40f861"><div class="ttname"><a href="grpc__types_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_types.h:337</div></div>
-<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__close__on__server_html_a9245c801a7d3efc4ded0a04d680f9088"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__close__on__server.html#a9245c801a7d3efc4ded0a04d680f9088">grpc_op::grpc_op_data::grpc_op_recv_close_on_server::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_types.h:548</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__close__on__server_html_a9245c801a7d3efc4ded0a04d680f9088"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__close__on__server.html#a9245c801a7d3efc4ded0a04d680f9088">grpc_op::grpc_op_data::grpc_op_recv_close_on_server::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_types.h:572</div></div>
-<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__status__from__server_html_aa2c7d136d26d0ed523239f911681f431"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__status__from__server.html#aa2c7d136d26d0ed523239f911681f431">grpc_op::grpc_op_data::grpc_op_send_status_from_server::status_details</a></div><div class="ttdeci">grpc_slice * status_details</div><div class="ttdoc">optional: set to NULL if no details need sending, non-NULL if they do pointer will not be retained pa...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:519</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__status__from__server_html_aa2c7d136d26d0ed523239f911681f431"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__status__from__server.html#aa2c7d136d26d0ed523239f911681f431">grpc_op::grpc_op_data::grpc_op_send_status_from_server::status_details</a></div><div class="ttdeci">grpc_slice * status_details</div><div class="ttdoc">optional: set to NULL if no details need sending, non-NULL if they do pointer will not be retained pa...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:539</div></div>
-<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__initial__metadata_html"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__initial__metadata.html">grpc_op::grpc_op_data::grpc_op_recv_initial_metadata</a></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_types.h:526</div></div>
+<div class="ttc" id="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__initial__metadata_html"><div class="ttname"><a href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__initial__metadata.html">grpc_op::grpc_op_data::grpc_op_recv_initial_metadata</a></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_types.h:546</div></div>
<div class="ttc" id="grpc__types_8h_html_a07990645ca218f6965fd83edf3f421b7"><div class="ttname"><a href="grpc__types_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__types_8h_html_a07990645ca218f6965fd83edf3f421b7"><div class="ttname"><a href="grpc__types_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__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17"><div class="ttname"><a href="grpc__types_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_types.h:474</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aa4d43b168589407554a58e91fae80ba17"><div class="ttname"><a href="grpc__types_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_types.h:485</div></div>
-<div class="ttc" id="structgrpc__channel__info_html_a578275f6c9da1610e3bf2f99a89d14ba"><div class="ttname"><a href="structgrpc__channel__info.html#a578275f6c9da1610e3bf2f99a89d14ba">grpc_channel_info::service_config_json</a></div><div class="ttdeci">char ** service_config_json</div><div class="ttdoc">If non-NULL, will be set to point to a string containing the service config used by the channel in JS...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:560</div></div>
+<div class="ttc" id="structgrpc__channel__info_html_a578275f6c9da1610e3bf2f99a89d14ba"><div class="ttname"><a href="structgrpc__channel__info.html#a578275f6c9da1610e3bf2f99a89d14ba">grpc_channel_info::service_config_json</a></div><div class="ttdeci">char ** service_config_json</div><div class="ttdoc">If non-NULL, will be set to point to a string containing the service config used by the channel in JS...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:584</div></div>
<div class="ttc" id="grpc__types_8h_html_a895faab0e6035445750e43482651ba2f"><div class="ttname"><a href="grpc__types_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_types.h:57</div></div>
<div class="ttc" id="grpc__types_8h_html_a895faab0e6035445750e43482651ba2f"><div class="ttname"><a href="grpc__types_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_types.h:57</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba598dd6646d1a7c88d4bbef1490953ee3"><div class="ttname"><a href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba598dd6646d1a7c88d4bbef1490953ee3">GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH</a></div><div class="ttdoc">payload type requested is not the type registered </div><div class="ttdef"><b>Definition:</b> grpc_types.h:340</div></div>
-<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5"><div class="ttname"><a href="grpc__types_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_types.h:468</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba906d5d530b249b5b853595e424ec400b"><div class="ttname"><a href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba906d5d530b249b5b853595e424ec400b">GRPC_CALL_ERROR_BATCH_TOO_BIG</a></div><div class="ttdoc">this batch of operations leads to more operations than allowed </div><div class="ttdef"><b>Definition:</b> grpc_types.h:338</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba598dd6646d1a7c88d4bbef1490953ee3"><div class="ttname"><a href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba598dd6646d1a7c88d4bbef1490953ee3">GRPC_CALL_ERROR_PAYLOAD_TYPE_MISMATCH</a></div><div class="ttdoc">payload type requested is not the type registered </div><div class="ttdef"><b>Definition:</b> grpc_types.h:348</div></div>
+<div class="ttc" id="grpc__types_8h_html_a41dc9abf9678decbfcef1a037e35939aafe3da4c8865af4ef5258b3790d15afc5"><div class="ttname"><a href="grpc__types_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_types.h:479</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba906d5d530b249b5b853595e424ec400b"><div class="ttname"><a href="grpc__types_8h.html#a0d5a8bdd6d53d209cacea4b6fa5d785ba906d5d530b249b5b853595e424ec400b">GRPC_CALL_ERROR_BATCH_TOO_BIG</a></div><div class="ttdoc">this batch of operations leads to more operations than allowed </div><div class="ttdef"><b>Definition:</b> grpc_types.h:346</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6"><div class="ttname"><a href="grpc__types_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_types.h:316</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba7ba38ea119e00e8b4d10211f4ced9ef6"><div class="ttname"><a href="grpc__types_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_types.h:324</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_types.h:414</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_types.h:425</div></div>
-<div class="ttc" id="structgrpc__completion__queue__attributes_html_a77193c57fac60071d907ceda3be64f72"><div class="ttname"><a href="structgrpc__completion__queue__attributes.html#a77193c57fac60071d907ceda3be64f72">grpc_completion_queue_attributes::version</a></div><div class="ttdeci">int version</div><div class="ttdoc">The version number of this structure. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:604</div></div>
-<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd"><div class="ttname"><a href="grpc__types_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_types.h:331</div></div>
+<div class="ttc" id="structgrpc__completion__queue__attributes_html_a77193c57fac60071d907ceda3be64f72"><div class="ttname"><a href="structgrpc__completion__queue__attributes.html#a77193c57fac60071d907ceda3be64f72">grpc_completion_queue_attributes::version</a></div><div class="ttdeci">int version</div><div class="ttdoc">The version number of this structure. </div><div class="ttdef"><b>Definition:</b> grpc_types.h:628</div></div>
+<div class="ttc" id="grpc__types_8h_html_a0d5a8bdd6d53d209cacea4b6fa5d785ba13f469c7761a672240ddfe29f85729bd"><div class="ttname"><a href="grpc__types_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_types.h:339</div></div>
<div class="ttc" id="histogram_8h_html_a199efc11a0cef2daaf27d2869cd07cce"><div class="ttname"><a href="histogram_8h.html#a199efc11a0cef2daaf27d2869cd07cce">gpr_histogram_merge</a></div><div class="ttdeci">GPRAPI int gpr_histogram_merge(gpr_histogram *dst, const gpr_histogram *src)</div><div class="ttdoc">The following merges the second histogram into the first. </div></div>
<div class="ttc" id="histogram_8h_html_a199efc11a0cef2daaf27d2869cd07cce"><div class="ttname"><a href="histogram_8h.html#a199efc11a0cef2daaf27d2869cd07cce">gpr_histogram_merge</a></div><div class="ttdeci">GPRAPI int gpr_histogram_merge(gpr_histogram *dst, const gpr_histogram *src)</div><div class="ttdoc">The following merges the second histogram into the first. </div></div>
<div class="ttc" id="host__port_8h_html_a86c89d6e6e9a39b310706b703f6e7cdd"><div class="ttname"><a href="host__port_8h.html#a86c89d6e6e9a39b310706b703f6e7cdd">gpr_split_host_port</a></div><div class="ttdeci">GPRAPI int gpr_split_host_port(const char *name, char **host, char **port)</div><div class="ttdoc">Given a name in the form "host:port" or "[ho:st]:port", split into hostname and port number...</div></div>
<div class="ttc" id="host__port_8h_html_a86c89d6e6e9a39b310706b703f6e7cdd"><div class="ttname"><a href="host__port_8h.html#a86c89d6e6e9a39b310706b703f6e7cdd">gpr_split_host_port</a></div><div class="ttdeci">GPRAPI int gpr_split_host_port(const char *name, char **host, char **port)</div><div class="ttdoc">Given a name in the form "host:port" or "[ho:st]:port", split into hostname and port number...</div></div>
<div class="ttc" id="host__port_8h_html_a0aceae7a79506c44f063093a0a855049"><div class="ttname"><a href="host__port_8h.html#a0aceae7a79506c44f063093a0a855049">gpr_join_host_port</a></div><div class="ttdeci">GPRAPI int gpr_join_host_port(char **out, const char *host, int port)</div><div class="ttdoc">Given a host and port, creates a newly-allocated string of the form "host:port" or "[ho:st]:port"...</div></div>
<div class="ttc" id="host__port_8h_html_a0aceae7a79506c44f063093a0a855049"><div class="ttname"><a href="host__port_8h.html#a0aceae7a79506c44f063093a0a855049">gpr_join_host_port</a></div><div class="ttdeci">GPRAPI int gpr_join_host_port(char **out, const char *host, int port)</div><div class="ttdoc">Given a host and port, creates a newly-allocated string of the form "host:port" or "[ho:st]:port"...</div></div>
<p>Atomic operations act on an intergral_type gpr_atm that is guaranteed to be the same size as a pointer. typedef intptr_t gpr_atm;</p>
<p>Atomic operations act on an intergral_type gpr_atm that is guaranteed to be the same size as a pointer. typedef intptr_t gpr_atm;</p>
<p>A memory barrier, providing both acquire and release semantics, but not otherwise acting on memory. void <a class="el" href="impl_2codegen_2atm__windows_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier(void)</a>;</p>
<p>A memory barrier, providing both acquire and release semantics, but not otherwise acting on memory. void <a class="el" href="impl_2codegen_2atm__windows_8h.html#a8e58c94aff5c7161bc3cbfde878dd03d">gpr_atm_full_barrier(void)</a>;</p>
<p>Atomically set *p = value, with release semantics. void <a class="el" href="impl_2codegen_2atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store(gpr_atm *p, gpr_atm value)</a>;</p>
<p>Atomically set *p = value, with release semantics. void <a class="el" href="impl_2codegen_2atm__gcc__atomic_8h.html#a42e3982d45ae4cec439a12b8fcd618e9">gpr_atm_rel_store(gpr_atm *p, gpr_atm value)</a>;</p>
<p>Atomically add delta to *p, and return the old value of *p, with the barriers specified. gpr_atm <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">gpr_atm_no_barrier_fetch_add(gpr_atm *p, gpr_atm delta)</a>; gpr_atm <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta)</a>;</p>
<p>Atomically add delta to *p, and return the old value of *p, with the barriers specified. gpr_atm <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#ae337dc477a6a45ac3d91e41e8f3f2f8c">gpr_atm_no_barrier_fetch_add(gpr_atm *p, gpr_atm delta)</a>; gpr_atm <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#abada8771b338845e4c6ef93c8392582c">gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta)</a>;</p>
<p>Atomically, if *p==o, set *p=n and return non-zero otherwise return 0, with the barriers specified if the operation succeeds. int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>; int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>; int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>; int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#a9d29f224b49d4de8bb2b0d7feae64fcb">gpr_atm_full_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>;</p>
<p>Atomically, if *p==o, set *p=n and return non-zero otherwise return 0, with the barriers specified if the operation succeeds. int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#ad39536b08912ac4a0770655ed334d260">gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>; int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#a1a90e5777158aaa53624822f1f87dd90">gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>; int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#ae7c3b215cda868ee9ee778822000c3f2">gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>; int <a class="el" href="impl_2codegen_2atm__gcc__sync_8h.html#a9d29f224b49d4de8bb2b0d7feae64fcb">gpr_atm_full_cas(gpr_atm *p, gpr_atm o, gpr_atm n)</a>;</p>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span> <span class="preprocessor"></span><span class="preprocessor">#error could not determine platform for atm</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span> <span class="preprocessor"></span><span class="preprocessor">#error could not determine platform for atm</span></div>
-<div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <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="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor"></span><span class="comment">/* All loads are acquire loads and all stores are release stores. */</span></div>
+<tr class="memdesc:a5ab72d6615ee89c975c46ad4e50c1387"><td class="mdescLeft"> </td><td class="mdescRight">Returns a RAW byte buffer instance over the given slices (up to <em>nslices</em>). <a href="#a5ab72d6615ee89c975c46ad4e50c1387">More...</a><br/></td></tr>
+<tr class="memdesc:a49ca36baa74fa2f9ae0c615bf53cec7d"><td class="mdescLeft"> </td><td class="mdescRight">Returns a <em>compressed</em> RAW byte buffer instance over the given slices (up to <em>nslices</em>). <a href="#a49ca36baa74fa2f9ae0c615bf53cec7d">More...</a><br/></td></tr>
+<tr class="memdesc:a9532c0f54de763057e185a950368b0bb"><td class="mdescLeft"> </td><td class="mdescRight">Returns the size of the given byte buffer, in bytes. <a href="#a9532c0f54de763057e185a950368b0bb">More...</a><br/></td></tr>
+<tr class="memdesc:a8352c7f73cf930c8195e547bd1a5a242"><td class="mdescLeft"> </td><td class="mdescRight">Updates <em>slice</em> with the next piece of data from from <em>reader</em> and returns. <a href="#a8352c7f73cf930c8195e547bd1a5a242">More...</a><br/></td></tr>
+<tr class="memdesc:a4cbf1eb762ea3c6c08bcfc46201c7691"><td class="mdescLeft"> </td><td class="mdescRight">Merge all data from <em>reader</em> into single slice. <a href="#a4cbf1eb762ea3c6c08bcfc46201c7691">More...</a><br/></td></tr>
+<tr class="memdesc:ac7407c6fa60073adb166ca4f3cfbc8e7"><td class="mdescLeft"> </td><td class="mdescRight">Returns a RAW byte buffer instance from the output of <em>reader</em>. <a href="#ac7407c6fa60073adb166ca4f3cfbc8e7">More...</a><br/></td></tr>
+<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>
+<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>
+<a href="impl_2codegen_2byte__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> <span class="comment">/*</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * you may not use this file except in compliance with the License.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * You may obtain a copy of the License at</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * See the License for the specific language governing permissions and</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * limitations under the License.</span></div>
+<div class="ttc" id="impl_2codegen_2byte__buffer_8h_html_ac7407c6fa60073adb166ca4f3cfbc8e7"><div class="ttname"><a href="impl_2codegen_2byte__buffer_8h.html#ac7407c6fa60073adb166ca4f3cfbc8e7">grpc_raw_byte_buffer_from_reader</a></div><div class="ttdeci">GRPCAPI 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="impl_2codegen_2byte__buffer_8h_html_a8352c7f73cf930c8195e547bd1a5a242"><div class="ttname"><a href="impl_2codegen_2byte__buffer_8h.html#a8352c7f73cf930c8195e547bd1a5a242">grpc_byte_buffer_reader_next</a></div><div class="ttdeci">GRPCAPI int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, grpc_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__slice_html"><div class="ttname"><a href="structgrpc__slice.html">grpc_slice</a></div><div class="ttdoc">A grpc_slice s, if initialized, represents the byte range s.bytes[0..s.length-1]. ...</div><div class="ttdef"><b>Definition:</b> slice.h:81</div></div>
+<div class="ttc" id="impl_2codegen_2byte__buffer_8h_html_a9532c0f54de763057e185a950368b0bb"><div class="ttname"><a href="impl_2codegen_2byte__buffer_8h.html#a9532c0f54de763057e185a950368b0bb">grpc_byte_buffer_length</a></div><div class="ttdeci">GRPCAPI 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="impl_2codegen_2byte__buffer_8h_html_a4cbf1eb762ea3c6c08bcfc46201c7691"><div class="ttname"><a href="impl_2codegen_2byte__buffer_8h.html#a4cbf1eb762ea3c6c08bcfc46201c7691">grpc_byte_buffer_reader_readall</a></div><div class="ttdeci">GRPCAPI grpc_slice grpc_byte_buffer_reader_readall(grpc_byte_buffer_reader *reader)</div><div class="ttdoc">Merge all data from reader into single slice. </div></div>
+<div class="ttc" id="impl_2codegen_2byte__buffer_8h_html_a5ab72d6615ee89c975c46ad4e50c1387"><div class="ttname"><a href="impl_2codegen_2byte__buffer_8h.html#a5ab72d6615ee89c975c46ad4e50c1387">grpc_raw_byte_buffer_create</a></div><div class="ttdeci">GRPCAPI grpc_byte_buffer * grpc_raw_byte_buffer_create(grpc_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="impl_2codegen_2byte__buffer_8h_html_a49ca36baa74fa2f9ae0c615bf53cec7d"><div class="ttname"><a href="impl_2codegen_2byte__buffer_8h.html#a49ca36baa74fa2f9ae0c615bf53cec7d">grpc_raw_compressed_byte_buffer_create</a></div><div class="ttdeci">GRPCAPI grpc_byte_buffer * grpc_raw_compressed_byte_buffer_create(grpc_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>
+<tr class="memdesc:a45af85c12915966d690317baf8d66394"><td class="mdescLeft"> </td><td class="mdescRight">gRPC applications should call this before calling fork(). <a href="#a45af85c12915966d690317baf8d66394">More...</a><br/></td></tr>
+<p>gRPC applications should call this before calling fork(). </p>
+<p>There should be no active gRPC function calls between calling <a class="el" href="impl_2codegen_2fork_8h.html#a45af85c12915966d690317baf8d66394" title="gRPC applications should call this before calling fork(). ">grpc_prefork()</a> and <a class="el" href="impl_2codegen_2fork_8h.html#a1b058da83d00b21f330a3cef892c63d9">grpc_postfork_parent()</a>/grpc_postfork_child().</p>
+<p>Typical use: <a class="el" href="impl_2codegen_2fork_8h.html#a45af85c12915966d690317baf8d66394" title="gRPC applications should call this before calling fork(). ">grpc_prefork()</a>; int pid = fork(); if (pid) { <a class="el" href="impl_2codegen_2fork_8h.html#a1b058da83d00b21f330a3cef892c63d9">grpc_postfork_parent()</a>; // Parent process.. } else { <a class="el" href="impl_2codegen_2fork_8h.html#a68a5250f3e3642bdcc8b574fc6b3b1db">grpc_postfork_child()</a>; // Child process... } </p>
+
</div>
</div>
</div>
</div>
-<hr/>The documentation for this struct was generated from the following file:<ul>
+<a href="impl_2codegen_2fork_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> <span class="comment">/*</span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Licensed under the Apache License, Version 2.0 (the "License");</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * you may not use this file except in compliance with the License.</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * You may obtain a copy of the License at</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * See the License for the specific language governing permissions and</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * limitations under the License.</span></div>