Auto-update documentation for gRPC 1.64.0 (#36649)

Change was created by the release automation script. See go/grpc-release
This commit is contained in:
Yash Tibrewal 2024-05-17 14:08:07 -07:00 committed by GitHub
parent 0a27c9b5b1
commit b173ce7e45
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2331 changed files with 38163 additions and 36659 deletions

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -72,8 +72,8 @@ $(function() {
<div class="title">alloc.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;stddef.h&gt;</code><br />
<div class="textblock"><code>#include &lt;stddef.h&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="alloc_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -243,7 +243,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -91,9 +91,9 @@ $(function() {
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GRPC_SUPPORT_ALLOC_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define GRPC_SUPPORT_ALLOC_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
@ -122,7 +122,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -78,105 +78,106 @@ $(function() {
<tr id="row_0_0_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__core_1_1experimental_1_1_crl.html" target="_self">Crl</a></td><td class="desc"></td></tr>
<tr id="row_0_0_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__core_1_1experimental_1_1_crl_provider.html" target="_self">CrlProvider</a></td><td class="desc"></td></tr>
<tr id="row_0_0_6_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__core_1_1experimental_1_1_json.html" target="_self">Json</a></td><td class="desc"></td></tr>
<tr id="row_1_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine.html" target="_self">grpc_event_engine</a></td><td class="desc"></td></tr>
<tr id="row_1_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine_1_1experimental.html" target="_self">experimental</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_0_" class="arrow" onclick="toggleFolder('1_0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine_1_1experimental_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1internal_1_1_memory_allocator_impl.html" target="_self">MemoryAllocatorImpl</a></td><td class="desc">Underlying memory allocation interface </td></tr>
<tr id="row_1_0_0_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html" target="_self">SliceCastable</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_2_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_a_00_01_a_01_4.html" target="_self">SliceCastable&lt; A, A &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_3_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_mutable_slice_01_4.html" target="_self">SliceCastable&lt; grpc_slice, MutableSlice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_4_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_slice_01_4.html" target="_self">SliceCastable&lt; grpc_slice, Slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01grpc__slice_01_4.html" target="_self">SliceCastable&lt; MutableSlice, grpc_slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_6_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01_slice_01_4.html" target="_self">SliceCastable&lt; MutableSlice, Slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_7_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01grpc__slice_01_4.html" target="_self">SliceCastable&lt; Slice, grpc_slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_8_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01_mutable_slice_01_4.html" target="_self">SliceCastable&lt; Slice, MutableSlice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_1_" class="arrow" onclick="toggleFolder('1_0_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html" target="_self">slice_detail</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html" target="_self">BaseSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html" target="_self">CopyConstructors</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_endpoint_config.html" target="_self">EndpointConfig</a></td><td class="desc">Collection of parameters used to configure client and server endpoints </td></tr>
<tr id="row_1_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_3_" class="arrow" onclick="toggleFolder('1_0_3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" target="_self">EventEngine</a></td><td class="desc">The <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> Interface </td></tr>
<tr id="row_1_0_3_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html" target="_self">Closure</a></td><td class="desc">A custom closure type for <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> task execution </td></tr>
<tr id="row_1_0_3_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html" target="_self">ConnectionHandle</a></td><td class="desc">A handle to a cancellable connection attempt </td></tr>
<tr id="row_1_0_3_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_0_3_2_" class="arrow" onclick="toggleFolder('1_0_3_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html" target="_self">DNSResolver</a></td><td class="desc">Provides asynchronous resolution </td></tr>
<tr id="row_1_0_3_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html" target="_self">ResolverOptions</a></td><td class="desc">Optional configuration for DNSResolvers </td></tr>
<tr id="row_1_0_3_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html" target="_self">SRVRecord</a></td><td class="desc">DNS SRV record type </td></tr>
<tr id="row_1_0_3_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_0_3_3_" class="arrow" onclick="toggleFolder('1_0_3_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html" target="_self">Endpoint</a></td><td class="desc">One end of a connection between a gRPC client and server </td></tr>
<tr id="row_1_0_3_3_0_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html" target="_self">ReadArgs</a></td><td class="desc">A struct representing optional arguments that may be provided to an <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html" title="One end of a connection between a gRPC client and server.">Endpoint</a> Read API call </td></tr>
<tr id="row_1_0_3_3_1_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html" target="_self">WriteArgs</a></td><td class="desc">A struct representing optional arguments that may be provided to an <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html" title="One end of a connection between a gRPC client and server.">Endpoint</a> Write API call </td></tr>
<tr id="row_1_0_3_4_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html" target="_self">Listener</a></td><td class="desc">Listens for incoming connection requests from gRPC clients and initiates request processing once connections are established </td></tr>
<tr id="row_1_0_3_5_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html" target="_self">ResolvedAddress</a></td><td class="desc">Thin wrapper around a platform-specific sockaddr type </td></tr>
<tr id="row_1_0_3_6_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html" target="_self">TaskHandle</a></td><td class="desc">Represents a scheduled task </td></tr>
<tr id="row_1_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html" target="_self">Extensible</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_5_" class="arrow" onclick="toggleFolder('1_0_5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html" target="_self">MemoryAllocator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_1_1_container.html" target="_self">Container</a></td><td class="desc">A C++ allocator for containers of T </td></tr>
<tr id="row_1_0_5_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_1_1_reservation.html" target="_self">Reservation</a></td><td class="desc">An automatic releasing reservation of memory </td></tr>
<tr id="row_1_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_factory.html" target="_self">MemoryAllocatorFactory</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_request.html" target="_self">MemoryRequest</a></td><td class="desc">Reservation request - how much memory do we want to allocate? </td></tr>
<tr id="row_1_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html" target="_self">MutableSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html" target="_self">SliceBuffer</a></td><td class="desc">A Wrapper around <em><a class="el" href="structgrpc__slice__buffer.html" title="Represents an expandable array of slices, to be interpreted as a single item.">grpc_slice_buffer</a></em> pointer </td></tr>
<tr id="row_1_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_vector.html" target="_self">Vector</a></td><td class="desc"></td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__event.html" target="_self">gpr_event</a></td><td class="desc"></td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__refcount.html" target="_self">gpr_refcount</a></td><td class="desc"></td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__stats__counter.html" target="_self">gpr_stats_counter</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__timespec.html" target="_self">gpr_timespec</a></td><td class="desc">Analogous to struct timespec </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_7_" class="arrow" onclick="toggleFolder('7_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__arg.html" target="_self">grpc_arg</a></td><td class="desc">A single argument.. </td></tr>
<tr id="row_7_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_7_0_" class="arrow" onclick="toggleFolder('7_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__arg_1_1grpc__arg__value.html" target="_self">grpc_arg_value</a></td><td class="desc"></td></tr>
<tr id="row_7_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__arg_1_1grpc__arg__value_1_1grpc__arg__pointer.html" target="_self">grpc_arg_pointer</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__arg__pointer__vtable.html" target="_self">grpc_arg_pointer_vtable</a></td><td class="desc"></td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__auth__metadata__processor.html" target="_self">grpc_auth_metadata_processor</a></td><td class="desc">Pluggable server-side metadata processor object </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__auth__property.html" target="_self">grpc_auth_property</a></td><td class="desc">Value, if not NULL, is guaranteed to be NULL terminated </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__auth__property__iterator.html" target="_self">grpc_auth_property_iterator</a></td><td class="desc"></td></tr>
<tr id="row_13_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__byte__buffer.html" target="_self">grpc_byte_buffer</a></td><td class="desc"></td></tr>
<tr id="row_13_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_0_" class="arrow" onclick="toggleFolder('13_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__byte__buffer_1_1grpc__byte__buffer__data.html" target="_self">grpc_byte_buffer_data</a></td><td class="desc"></td></tr>
<tr id="row_13_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__byte__buffer_1_1grpc__byte__buffer__data_1_1grpc__compressed__buffer.html" target="_self">grpc_compressed_buffer</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__byte__buffer__reader.html" target="_self">grpc_byte_buffer_reader</a></td><td class="desc"></td></tr>
<tr id="row_14_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__byte__buffer__reader_1_1grpc__byte__buffer__reader__current.html" target="_self">grpc_byte_buffer_reader_current</a></td><td class="desc">Different current objects correspond to different types of byte buffers </td></tr>
<tr id="row_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__call__details.html" target="_self">grpc_call_details</a></td><td class="desc"></td></tr>
<tr id="row_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__channel__args.html" target="_self">grpc_channel_args</a></td><td class="desc">An array of arguments that can be passed around </td></tr>
<tr id="row_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__channel__info.html" target="_self">grpc_channel_info</a></td><td class="desc">Information requested from the channel </td></tr>
<tr id="row_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__completion__queue__attributes.html" target="_self">grpc_completion_queue_attributes</a></td><td class="desc"></td></tr>
<tr id="row_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__completion__queue__functor.html" target="_self">grpc_completion_queue_functor</a></td><td class="desc">Specifies an interface class to be used as a tag for callback-based completion queues </td></tr>
<tr id="row_20_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_20_" class="arrow" onclick="toggleFolder('20_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__compression__options.html" target="_self">grpc_compression_options</a></td><td class="desc"></td></tr>
<tr id="row_20_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__compression__options_1_1grpc__compression__options__default__algorithm.html" target="_self">grpc_compression_options_default_algorithm</a></td><td class="desc">The default message compression algorithm </td></tr>
<tr id="row_20_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__compression__options_1_1grpc__compression__options__default__level.html" target="_self">grpc_compression_options_default_level</a></td><td class="desc">The default compression level </td></tr>
<tr id="row_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event.html" target="_self">grpc_event</a></td><td class="desc">The result of an operation </td></tr>
<tr id="row_22_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__metadata.html" target="_self">grpc_metadata</a></td><td class="desc">A single metadata element </td></tr>
<tr id="row_23_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__metadata__array.html" target="_self">grpc_metadata_array</a></td><td class="desc"></td></tr>
<tr id="row_24_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_25_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_25_" class="arrow" onclick="toggleFolder('25_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><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_25_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_25_0_" class="arrow" onclick="toggleFolder('25_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__op_1_1grpc__op__data.html" target="_self">grpc_op_data</a></td><td class="desc"></td></tr>
<tr id="row_25_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__close__on__server.html" target="_self">grpc_op_recv_close_on_server</a></td><td class="desc"></td></tr>
<tr id="row_25_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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-&gt;array is owned by the caller) </td></tr>
<tr id="row_25_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_25_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client.html" target="_self">grpc_op_recv_status_on_client</a></td><td class="desc"></td></tr>
<tr id="row_25_0_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_25_0_4_" class="arrow" onclick="toggleFolder('25_0_4_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata.html" target="_self">grpc_op_send_initial_metadata</a></td><td class="desc"></td></tr>
<tr id="row_25_0_4_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219.html" target="_self">grpc_op_send_initial_metadata_maybe_compression_level</a></td><td class="desc">If <em>is_set</em>, <em>compression_level</em> will be used for the call </td></tr>
<tr id="row_25_0_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__message.html" target="_self">grpc_op_send_message</a></td><td class="desc"></td></tr>
<tr id="row_25_0_6_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__status__from__server.html" target="_self">grpc_op_send_status_from_server</a></td><td class="desc"></td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__server__xds__status__notifier.html" target="_self">grpc_server_xds_status_notifier</a></td><td class="desc"></td></tr>
<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__serving__status__update.html" target="_self">grpc_serving_status_update</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_28_" class="arrow" onclick="toggleFolder('28_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__slice.html" target="_self">grpc_slice</a></td><td class="desc">A <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> s, if initialized, represents the byte range s.bytes[0..s.length-1] </td></tr>
<tr id="row_28_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_28_0_" class="arrow" onclick="toggleFolder('28_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__slice_1_1grpc__slice__data.html" target="_self">grpc_slice_data</a></td><td class="desc"></td></tr>
<tr id="row_28_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__slice_1_1grpc__slice__data_1_1grpc__slice__inlined.html" target="_self">grpc_slice_inlined</a></td><td class="desc"></td></tr>
<tr id="row_28_0_1_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__slice_1_1grpc__slice__data_1_1grpc__slice__refcounted.html" target="_self">grpc_slice_refcounted</a></td><td class="desc"></td></tr>
<tr id="row_29_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_30_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__ssl__pem__key__cert__pair.html" target="_self">grpc_ssl_pem_key_cert_pair</a></td><td class="desc">Object that holds a private key / certificate chain pair in PEM format </td></tr>
<tr id="row_31_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__ssl__verify__peer__options.html" target="_self">grpc_ssl_verify_peer_options</a></td><td class="desc">Object that holds additional peer-verification options on a secure channel </td></tr>
<tr id="row_32_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__sts__credentials__options.html" target="_self">grpc_sts_credentials_options</a></td><td class="desc">Options for creating STS Oauth Token Exchange credentials following the IETF draft <a href="https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16">https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16</a> </td></tr>
<tr id="row_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__certificate__verifier__external.html" target="_self">grpc_tls_certificate_verifier_external</a></td><td class="desc">EXPERIMENTAL API - Subject to change </td></tr>
<tr id="row_34_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_34_" class="arrow" onclick="toggleFolder('34_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__custom__verification__check__request.html" target="_self">grpc_tls_custom_verification_check_request</a></td><td class="desc">EXPERIMENTAL API - Subject to change </td></tr>
<tr id="row_34_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_34_0_" class="arrow" onclick="toggleFolder('34_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html" target="_self">peer_info</a></td><td class="desc"></td></tr>
<tr id="row_34_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html" target="_self">san_names</a></td><td class="desc"></td></tr>
<tr id="row_35_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structverify__peer__options.html" target="_self">verify_peer_options</a></td><td class="desc">Deprecated in favor of <a class="el" href="structgrpc__ssl__verify__peer__options.html" title="Object that holds additional peer-verification options on a secure channel.">grpc_ssl_verify_peer_options</a> </td></tr>
<tr id="row_0_0_7_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html" target="_self">StatsPluginChannelScope</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine.html" target="_self">grpc_event_engine</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_1_0_" class="arrow" onclick="toggleFolder('1_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine_1_1experimental.html" target="_self">experimental</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_0_" class="arrow" onclick="toggleFolder('1_0_0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine_1_1experimental_1_1internal.html" target="_self">internal</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1internal_1_1_memory_allocator_impl.html" target="_self">MemoryAllocatorImpl</a></td><td class="desc">Underlying memory allocation interface </td></tr>
<tr id="row_1_0_0_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html" target="_self">SliceCastable</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_2_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_a_00_01_a_01_4.html" target="_self">SliceCastable&lt; A, A &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_3_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_mutable_slice_01_4.html" target="_self">SliceCastable&lt; grpc_slice, MutableSlice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_4_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_slice_01_4.html" target="_self">SliceCastable&lt; grpc_slice, Slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_5_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01grpc__slice_01_4.html" target="_self">SliceCastable&lt; MutableSlice, grpc_slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_6_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01_slice_01_4.html" target="_self">SliceCastable&lt; MutableSlice, Slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_7_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01grpc__slice_01_4.html" target="_self">SliceCastable&lt; Slice, grpc_slice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_0_8_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01_mutable_slice_01_4.html" target="_self">SliceCastable&lt; Slice, MutableSlice &gt;</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_1_" class="arrow" onclick="toggleFolder('1_0_1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html" target="_self">slice_detail</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html" target="_self">BaseSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_1_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html" target="_self">CopyConstructors</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_endpoint_config.html" target="_self">EndpointConfig</a></td><td class="desc">Collection of parameters used to configure client and server endpoints </td></tr>
<tr id="row_1_0_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_3_" class="arrow" onclick="toggleFolder('1_0_3_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" target="_self">EventEngine</a></td><td class="desc">The <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> Interface </td></tr>
<tr id="row_1_0_3_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html" target="_self">Closure</a></td><td class="desc">A custom closure type for <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> task execution </td></tr>
<tr id="row_1_0_3_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html" target="_self">ConnectionHandle</a></td><td class="desc">A handle to a cancellable connection attempt </td></tr>
<tr id="row_1_0_3_2_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_0_3_2_" class="arrow" onclick="toggleFolder('1_0_3_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html" target="_self">DNSResolver</a></td><td class="desc">Provides asynchronous resolution </td></tr>
<tr id="row_1_0_3_2_0_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html" target="_self">ResolverOptions</a></td><td class="desc">Optional configuration for DNSResolvers </td></tr>
<tr id="row_1_0_3_2_1_" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html" target="_self">SRVRecord</a></td><td class="desc">DNS SRV record type </td></tr>
<tr id="row_1_0_3_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_0_3_3_" class="arrow" onclick="toggleFolder('1_0_3_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html" target="_self">Endpoint</a></td><td class="desc">One end of a connection between a gRPC client and server </td></tr>
<tr id="row_1_0_3_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html" target="_self">ReadArgs</a></td><td class="desc">A struct representing optional arguments that may be provided to an <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html" title="One end of a connection between a gRPC client and server.">Endpoint</a> Read API call </td></tr>
<tr id="row_1_0_3_3_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html" target="_self">WriteArgs</a></td><td class="desc">A struct representing optional arguments that may be provided to an <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html" title="One end of a connection between a gRPC client and server.">Endpoint</a> Write API call </td></tr>
<tr id="row_1_0_3_4_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html" target="_self">Listener</a></td><td class="desc">Listens for incoming connection requests from gRPC clients and initiates request processing once connections are established </td></tr>
<tr id="row_1_0_3_5_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html" target="_self">ResolvedAddress</a></td><td class="desc">Thin wrapper around a platform-specific sockaddr type </td></tr>
<tr id="row_1_0_3_6_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html" target="_self">TaskHandle</a></td><td class="desc">Represents a scheduled task </td></tr>
<tr id="row_1_0_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html" target="_self">Extensible</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_1_0_5_" class="arrow" onclick="toggleFolder('1_0_5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html" target="_self">MemoryAllocator</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_0_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_1_1_container.html" target="_self">Container</a></td><td class="desc">A C++ allocator for containers of T </td></tr>
<tr id="row_1_0_5_1_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_1_1_reservation.html" target="_self">Reservation</a></td><td class="desc">An automatic releasing reservation of memory </td></tr>
<tr id="row_1_0_6_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_factory.html" target="_self">MemoryAllocatorFactory</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_request.html" target="_self">MemoryRequest</a></td><td class="desc">Reservation request - how much memory do we want to allocate? </td></tr>
<tr id="row_1_0_8_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html" target="_self">MutableSlice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_9_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_slice.html" target="_self">Slice</a></td><td class="desc"></td></tr>
<tr id="row_1_0_10_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html" target="_self">SliceBuffer</a></td><td class="desc">A Wrapper around <em><a class="el" href="structgrpc__slice__buffer.html" title="Represents an expandable array of slices, to be interpreted as a single item.">grpc_slice_buffer</a></em> pointer </td></tr>
<tr id="row_1_0_11_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_vector.html" target="_self">Vector</a></td><td class="desc"></td></tr>
<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__event.html" target="_self">gpr_event</a></td><td class="desc"></td></tr>
<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__refcount.html" target="_self">gpr_refcount</a></td><td class="desc"></td></tr>
<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__stats__counter.html" target="_self">gpr_stats_counter</a></td><td class="desc"></td></tr>
<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgpr__timespec.html" target="_self">gpr_timespec</a></td><td class="desc">Analogous to struct timespec </td></tr>
<tr id="row_7_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_7_" class="arrow" onclick="toggleFolder('7_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__arg.html" target="_self">grpc_arg</a></td><td class="desc">A single argument.. </td></tr>
<tr id="row_7_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_7_0_" class="arrow" onclick="toggleFolder('7_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__arg_1_1grpc__arg__value.html" target="_self">grpc_arg_value</a></td><td class="desc"></td></tr>
<tr id="row_7_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__arg_1_1grpc__arg__value_1_1grpc__arg__pointer.html" target="_self">grpc_arg_pointer</a></td><td class="desc"></td></tr>
<tr id="row_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__arg__pointer__vtable.html" target="_self">grpc_arg_pointer_vtable</a></td><td class="desc"></td></tr>
<tr id="row_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__auth__metadata__processor.html" target="_self">grpc_auth_metadata_processor</a></td><td class="desc">Pluggable server-side metadata processor object </td></tr>
<tr id="row_11_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__auth__property.html" target="_self">grpc_auth_property</a></td><td class="desc">Value, if not NULL, is guaranteed to be NULL terminated </td></tr>
<tr id="row_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__auth__property__iterator.html" target="_self">grpc_auth_property_iterator</a></td><td class="desc"></td></tr>
<tr id="row_13_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_13_" class="arrow" onclick="toggleFolder('13_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__byte__buffer.html" target="_self">grpc_byte_buffer</a></td><td class="desc"></td></tr>
<tr id="row_13_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_13_0_" class="arrow" onclick="toggleFolder('13_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__byte__buffer_1_1grpc__byte__buffer__data.html" target="_self">grpc_byte_buffer_data</a></td><td class="desc"></td></tr>
<tr id="row_13_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__byte__buffer_1_1grpc__byte__buffer__data_1_1grpc__compressed__buffer.html" target="_self">grpc_compressed_buffer</a></td><td class="desc"></td></tr>
<tr id="row_14_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_14_" class="arrow" onclick="toggleFolder('14_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__byte__buffer__reader.html" target="_self">grpc_byte_buffer_reader</a></td><td class="desc"></td></tr>
<tr id="row_14_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__byte__buffer__reader_1_1grpc__byte__buffer__reader__current.html" target="_self">grpc_byte_buffer_reader_current</a></td><td class="desc">Different current objects correspond to different types of byte buffers </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__call__details.html" target="_self">grpc_call_details</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__channel__args.html" target="_self">grpc_channel_args</a></td><td class="desc">An array of arguments that can be passed around </td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__channel__info.html" target="_self">grpc_channel_info</a></td><td class="desc">Information requested from the channel </td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__completion__queue__attributes.html" target="_self">grpc_completion_queue_attributes</a></td><td class="desc"></td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__completion__queue__functor.html" target="_self">grpc_completion_queue_functor</a></td><td class="desc">Specifies an interface class to be used as a tag for callback-based completion queues </td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_20_" class="arrow" onclick="toggleFolder('20_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__compression__options.html" target="_self">grpc_compression_options</a></td><td class="desc"></td></tr>
<tr id="row_20_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__compression__options_1_1grpc__compression__options__default__algorithm.html" target="_self">grpc_compression_options_default_algorithm</a></td><td class="desc">The default message compression algorithm </td></tr>
<tr id="row_20_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__compression__options_1_1grpc__compression__options__default__level.html" target="_self">grpc_compression_options_default_level</a></td><td class="desc">The default compression level </td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__event.html" target="_self">grpc_event</a></td><td class="desc">The result of an operation </td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__metadata.html" target="_self">grpc_metadata</a></td><td class="desc">A single metadata element </td></tr>
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__metadata__array.html" target="_self">grpc_metadata_array</a></td><td class="desc"></td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_25_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_25_" class="arrow" onclick="toggleFolder('25_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><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_25_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_25_0_" class="arrow" onclick="toggleFolder('25_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__op_1_1grpc__op__data.html" target="_self">grpc_op_data</a></td><td class="desc"></td></tr>
<tr id="row_25_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__close__on__server.html" target="_self">grpc_op_recv_close_on_server</a></td><td class="desc"></td></tr>
<tr id="row_25_0_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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-&gt;array is owned by the caller) </td></tr>
<tr id="row_25_0_2_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_25_0_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client.html" target="_self">grpc_op_recv_status_on_client</a></td><td class="desc"></td></tr>
<tr id="row_25_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_25_0_4_" class="arrow" onclick="toggleFolder('25_0_4_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata.html" target="_self">grpc_op_send_initial_metadata</a></td><td class="desc"></td></tr>
<tr id="row_25_0_4_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata_1_1grpc__op__send__initialaea3b3a42c7d59f33d8b29d9f8d06219.html" target="_self">grpc_op_send_initial_metadata_maybe_compression_level</a></td><td class="desc">If <em>is_set</em>, <em>compression_level</em> will be used for the call </td></tr>
<tr id="row_25_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__message.html" target="_self">grpc_op_send_message</a></td><td class="desc"></td></tr>
<tr id="row_25_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__status__from__server.html" target="_self">grpc_op_send_status_from_server</a></td><td class="desc"></td></tr>
<tr id="row_26_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__server__xds__status__notifier.html" target="_self">grpc_server_xds_status_notifier</a></td><td class="desc"></td></tr>
<tr id="row_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__serving__status__update.html" target="_self">grpc_serving_status_update</a></td><td class="desc"></td></tr>
<tr id="row_28_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_28_" class="arrow" onclick="toggleFolder('28_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__slice.html" target="_self">grpc_slice</a></td><td class="desc">A <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> s, if initialized, represents the byte range s.bytes[0..s.length-1] </td></tr>
<tr id="row_28_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_28_0_" class="arrow" onclick="toggleFolder('28_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="uniongrpc__slice_1_1grpc__slice__data.html" target="_self">grpc_slice_data</a></td><td class="desc"></td></tr>
<tr id="row_28_0_0_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__slice_1_1grpc__slice__data_1_1grpc__slice__inlined.html" target="_self">grpc_slice_inlined</a></td><td class="desc"></td></tr>
<tr id="row_28_0_1_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__slice_1_1grpc__slice__data_1_1grpc__slice__refcounted.html" target="_self">grpc_slice_refcounted</a></td><td class="desc"></td></tr>
<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><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_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__ssl__pem__key__cert__pair.html" target="_self">grpc_ssl_pem_key_cert_pair</a></td><td class="desc">Object that holds a private key / certificate chain pair in PEM format </td></tr>
<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__ssl__verify__peer__options.html" target="_self">grpc_ssl_verify_peer_options</a></td><td class="desc">Object that holds additional peer-verification options on a secure channel </td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__sts__credentials__options.html" target="_self">grpc_sts_credentials_options</a></td><td class="desc">Options for creating STS Oauth Token Exchange credentials following the IETF draft <a href="https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16">https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16</a> </td></tr>
<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__certificate__verifier__external.html" target="_self">grpc_tls_certificate_verifier_external</a></td><td class="desc">EXPERIMENTAL API - Subject to change </td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_34_" class="arrow" onclick="toggleFolder('34_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__custom__verification__check__request.html" target="_self">grpc_tls_custom_verification_check_request</a></td><td class="desc">EXPERIMENTAL API - Subject to change </td></tr>
<tr id="row_34_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_34_0_" class="arrow" onclick="toggleFolder('34_0_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html" target="_self">peer_info</a></td><td class="desc"></td></tr>
<tr id="row_34_0_0_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html" target="_self">san_names</a></td><td class="desc"></td></tr>
<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structverify__peer__options.html" target="_self">verify_peer_options</a></td><td class="desc">Deprecated in favor of <a class="el" href="structgrpc__ssl__verify__peer__options.html" title="Object that holds additional peer-verification options on a secure channel.">grpc_ssl_verify_peer_options</a> </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -73,9 +73,9 @@ $(function() {
<div class="title">byte_buffer.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="grpc__types_8h_source.html">grpc/impl/grpc_types.h</a>&gt;</code><br />
<div class="textblock"><code>#include &lt;<a class="el" href="grpc__types_8h_source.html">grpc/impl/grpc_types.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="slice__buffer_8h_source.html">grpc/slice_buffer.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="byte__buffer_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -427,7 +427,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -91,52 +91,51 @@ $(function() {
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GRPC_BYTE_BUFFER_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define GRPC_BYTE_BUFFER_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc__types_8h.html">grpc/impl/grpc_types.h</a>&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__buffer_8h.html">grpc/slice_buffer.h</a>&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#a5ab72d6615ee89c975c46ad4e50c1387">grpc_raw_byte_buffer_create</a>(<a class="code" href="structgrpc__slice.html">grpc_slice</a>* slices,</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">size_t</span> nslices);</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#a49ca36baa74fa2f9ae0c615bf53cec7d">grpc_raw_compressed_byte_buffer_create</a>(</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>* slices, <span class="keywordtype">size_t</span> nslices, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> compression);</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#a4ebb8f0714bee2c84fed0be62d0dc259">grpc_byte_buffer_copy</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* bb);</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">size_t</span> <a class="code" href="byte__buffer_8h.html#a9532c0f54de763057e185a950368b0bb">grpc_byte_buffer_length</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* bb);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="byte__buffer_8h.html#a47fe4b430c9cc3e7c45b59a4cff37b6e">grpc_byte_buffer_destroy</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* bb);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="byte__buffer_8h.html#a16143f22ea46cc7fa6b53e6cb30715f1"> 61</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> <a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>;</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="byte__buffer_8h.html#affd8fb29176a60c44fe704983fa87406">grpc_byte_buffer_reader_init</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader,</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* buffer);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="byte__buffer_8h.html#ae28a4ce16b0d8ddd506f1df3fcb3c619">grpc_byte_buffer_reader_destroy</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="byte__buffer_8h.html#a8352c7f73cf930c8195e547bd1a5a242">grpc_byte_buffer_reader_next</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader,</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>* slice);</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="byte__buffer_8h.html#a52e8989121500cd583bd25ca9f3ff359">grpc_byte_buffer_reader_peek</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader,</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>** slice);</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; </div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__slice.html">grpc_slice</a></div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<a class="code" href="byte__buffer_8h.html#a4cbf1eb762ea3c6c08bcfc46201c7691">grpc_byte_buffer_reader_readall</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader);</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#ac7407c6fa60073adb166ca4f3cfbc8e7">grpc_raw_byte_buffer_from_reader</a>(</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_BYTE_BUFFER_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc__types_8h.html">grpc/impl/grpc_types.h</a>&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__buffer_8h.html">grpc/slice_buffer.h</a>&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#a5ab72d6615ee89c975c46ad4e50c1387">grpc_raw_byte_buffer_create</a>(<a class="code" href="structgrpc__slice.html">grpc_slice</a>* slices,</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">size_t</span> nslices);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#a49ca36baa74fa2f9ae0c615bf53cec7d">grpc_raw_compressed_byte_buffer_create</a>(</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>* slices, <span class="keywordtype">size_t</span> nslices, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> compression);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#a4ebb8f0714bee2c84fed0be62d0dc259">grpc_byte_buffer_copy</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* bb);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">size_t</span> <a class="code" href="byte__buffer_8h.html#a9532c0f54de763057e185a950368b0bb">grpc_byte_buffer_length</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* bb);</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="byte__buffer_8h.html#a47fe4b430c9cc3e7c45b59a4cff37b6e">grpc_byte_buffer_destroy</a>(<a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* bb);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>;</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="byte__buffer_8h.html#a16143f22ea46cc7fa6b53e6cb30715f1"> 60</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a> <a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>;</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="byte__buffer_8h.html#affd8fb29176a60c44fe704983fa87406">grpc_byte_buffer_reader_init</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader,</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* buffer);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="byte__buffer_8h.html#ae28a4ce16b0d8ddd506f1df3fcb3c619">grpc_byte_buffer_reader_destroy</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="byte__buffer_8h.html#a8352c7f73cf930c8195e547bd1a5a242">grpc_byte_buffer_reader_next</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader,</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>* slice);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="byte__buffer_8h.html#a52e8989121500cd583bd25ca9f3ff359">grpc_byte_buffer_reader_peek</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader,</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>** slice);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__slice.html">grpc_slice</a></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<a class="code" href="byte__buffer_8h.html#a4cbf1eb762ea3c6c08bcfc46201c7691">grpc_byte_buffer_reader_readall</a>(<a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader);</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>* <a class="code" href="byte__buffer_8h.html#ac7407c6fa60073adb166ca4f3cfbc8e7">grpc_raw_byte_buffer_from_reader</a>(</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>* reader);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_BYTE_BUFFER_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="asupport_2port__platform_8h_html_a2865c3b28ea7db75be4c725adb1edc7d"><div class="ttname"><a href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a></div><div class="ttdeci">#define GRPCAPI</div><div class="ttdef"><b>Definition:</b> port_platform.h:722</div></div>
<div class="ttc" id="acompression__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 (not sorted by compression level)</div><div class="ttdef"><b>Definition:</b> compression_types.h:60</div></div>
@ -144,7 +143,7 @@ $(function() {
<div class="ttc" id="abyte__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="agrpc__types_8h_html"><div class="ttname"><a href="grpc__types_8h.html">grpc_types.h</a></div></div>
<div class="ttc" id="abyte__buffer_8h_html_ae28a4ce16b0d8ddd506f1df3fcb3c619"><div class="ttname"><a href="byte__buffer_8h.html#ae28a4ce16b0d8ddd506f1df3fcb3c619">grpc_byte_buffer_reader_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader)</div><div class="ttdoc">Cleanup and destroy reader.</div></div>
<div class="ttc" id="astructgrpc__byte__buffer_html"><div class="ttname"><a href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></div><div class="ttdef"><b>Definition:</b> grpc_types.h:43</div></div>
<div class="ttc" id="astructgrpc__byte__buffer_html"><div class="ttname"><a href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></div><div class="ttdef"><b>Definition:</b> grpc_types.h:42</div></div>
<div class="ttc" id="astructgrpc__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_type.h:63</div></div>
<div class="ttc" id="abyte__buffer_8h_html_a4ebb8f0714bee2c84fed0be62d0dc259"><div class="ttname"><a href="byte__buffer_8h.html#a4ebb8f0714bee2c84fed0be62d0dc259">grpc_byte_buffer_copy</a></div><div class="ttdeci">GRPCAPI grpc_byte_buffer * grpc_byte_buffer_copy(grpc_byte_buffer *bb)</div><div class="ttdoc">Copies input byte buffer bb.</div></div>
<div class="ttc" id="abyte__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>
@ -159,7 +158,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -87,7 +87,7 @@ Data Structures</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -116,14 +116,14 @@ $(function() {
<div class="ttc" id="astructgrpc__byte__buffer__reader_html_a07ca3cca38d293d97f8acf423ae281e3"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html#a07ca3cca38d293d97f8acf423ae281e3">grpc_byte_buffer_reader::buffer_in</a></div><div class="ttdeci">struct grpc_byte_buffer * buffer_in</div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:31</div></div>
<div class="ttc" id="astructgrpc__byte__buffer__reader_html_a30ea22e64f0d746881daa5955e7ab48e"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html#a30ea22e64f0d746881daa5955e7ab48e">grpc_byte_buffer_reader::buffer_out</a></div><div class="ttdeci">struct grpc_byte_buffer * buffer_out</div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:32</div></div>
<div class="ttc" id="auniongrpc__byte__buffer__reader_1_1grpc__byte__buffer__reader__current_html_a75e9e86942ca6b95cba101775f7c15ea"><div class="ttname"><a href="uniongrpc__byte__buffer__reader_1_1grpc__byte__buffer__reader__current.html#a75e9e86942ca6b95cba101775f7c15ea">grpc_byte_buffer_reader::grpc_byte_buffer_reader_current::index</a></div><div class="ttdeci">unsigned index</div><div class="ttdoc">Index into a slice buffer's array of slices.</div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:36</div></div>
<div class="ttc" id="astructgrpc__byte__buffer_html"><div class="ttname"><a href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></div><div class="ttdef"><b>Definition:</b> grpc_types.h:43</div></div>
<div class="ttc" id="astructgrpc__byte__buffer_html"><div class="ttname"><a href="structgrpc__byte__buffer.html">grpc_byte_buffer</a></div><div class="ttdef"><b>Definition:</b> grpc_types.h:42</div></div>
<div class="ttc" id="astructgrpc__byte__buffer__reader_html_a572a28bdf5757a641d9a80f74e3021ae"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html#a572a28bdf5757a641d9a80f74e3021ae">grpc_byte_buffer_reader::current</a></div><div class="ttdeci">union grpc_byte_buffer_reader::grpc_byte_buffer_reader_current current</div></div>
<div class="ttc" id="astructgrpc__byte__buffer__reader_html"><div class="ttname"><a href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a></div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:30</div></div>
<div class="ttc" id="auniongrpc__byte__buffer__reader_1_1grpc__byte__buffer__reader__current_html"><div class="ttname"><a href="uniongrpc__byte__buffer__reader_1_1grpc__byte__buffer__reader__current.html">grpc_byte_buffer_reader::grpc_byte_buffer_reader_current</a></div><div class="ttdoc">Different current objects correspond to different types of byte buffers.</div><div class="ttdef"><b>Definition:</b> byte_buffer_reader.h:34</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -72,9 +72,9 @@ $(function() {
<div class="title">call.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &quot;absl/functional/any_invocable.h&quot;</code><br />
<div class="textblock"><code>#include &quot;absl/functional/any_invocable.h&quot;</code><br />
<code>#include &lt;<a class="el" href="grpc_8h_source.html">grpc/grpc.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="call_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -115,7 +115,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -87,26 +87,25 @@ $(function() {
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef GRPC_IMPL_CALL_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define GRPC_IMPL_CALL_H</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;absl/functional/any_invocable.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;absl/functional/any_invocable.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Run a callback in the call&#39;s EventEngine.</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment">// Internal-only</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keywordtype">void</span> <a class="code" href="call_8h.html#a6df2684a045833af0d9a19d55f883095">grpc_call_run_in_event_engine</a>(<span class="keyword">const</span> <a class="code" href="grpc__types_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a>* call,</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; absl::AnyInvocable&lt;<span class="keywordtype">void</span>()&gt; cb);</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_IMPL_CALL_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// Run a callback in the call&#39;s EventEngine.</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Internal-only</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keywordtype">void</span> <a class="code" href="call_8h.html#a6df2684a045833af0d9a19d55f883095">grpc_call_run_in_event_engine</a>(<span class="keyword">const</span> <a class="code" href="grpc__types_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a>* call,</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; absl::AnyInvocable&lt;<span class="keywordtype">void</span>()&gt; cb);</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_IMPL_CALL_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="acall_8h_html_a6df2684a045833af0d9a19d55f883095"><div class="ttname"><a href="call_8h.html#a6df2684a045833af0d9a19d55f883095">grpc_call_run_in_event_engine</a></div><div class="ttdeci">void grpc_call_run_in_event_engine(const grpc_call *call, absl::AnyInvocable&lt; void()&gt; cb)</div></div>
<div class="ttc" id="agrpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
<div class="ttc" id="agrpc__types_8h_html_a122f8f4f0a585396d993d9b55848f222"><div class="ttname"><a href="grpc__types_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a></div><div class="ttdeci">struct grpc_call grpc_call</div><div class="ttdoc">A Call represents an RPC.</div><div class="ttdef"><b>Definition:</b> grpc_types.h:70</div></div>
<div class="ttc" id="agrpc__types_8h_html_a122f8f4f0a585396d993d9b55848f222"><div class="ttname"><a href="grpc__types_8h.html#a122f8f4f0a585396d993d9b55848f222">grpc_call</a></div><div class="ttdeci">struct grpc_call grpc_call</div><div class="ttdoc">A Call represents an RPC.</div><div class="ttdef"><b>Definition:</b> grpc_types.h:69</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -72,8 +72,8 @@ $(function() {
<div class="title">census.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="grpc_8h_source.html">grpc/grpc.h</a>&gt;</code><br />
<div class="textblock"><code>#include &lt;<a class="el" href="grpc_8h_source.html">grpc/grpc.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="census_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -104,7 +104,7 @@ Typedefs</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -91,28 +91,27 @@ $(function() {
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GRPC_CENSUS_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define GRPC_CENSUS_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="census_8h.html#a27fc8788690179599713226f1f054736"> 34</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_CENSUS_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="census_8h.html#a27fc8788690179599713226f1f054736"> 33</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a> <a class="code" href="census_8h.html#a27fc8788690179599713226f1f054736">census_context</a>;</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_CENSUS_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="acensus_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:34</div></div>
<div class="ttc" id="acensus_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:33</div></div>
<div class="ttc" id="agrpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -118,9 +118,6 @@ Macros</h2></td></tr>
<tr class="memitem:gaccb671d1056c84381ac5ebbd710b70f9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grpc__arg__keys.html#gaccb671d1056c84381ac5ebbd710b70f9">GRPC_ARG_ENABLE_PER_MESSAGE_DECOMPRESSION</a>&#160;&#160;&#160;&quot;grpc.per_message_decompression&quot;</td></tr>
<tr class="memdesc:gaccb671d1056c84381ac5ebbd710b70f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Experimental Arg. <a href="group__grpc__arg__keys.html#gaccb671d1056c84381ac5ebbd710b70f9">More...</a><br /></td></tr>
<tr class="separator:gaccb671d1056c84381ac5ebbd710b70f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga405daab19c0dceb2a64d0b1a77f8fe97"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grpc__arg__keys.html#ga405daab19c0dceb2a64d0b1a77f8fe97">GRPC_ARG_ENABLE_DEADLINE_CHECKS</a>&#160;&#160;&#160;&quot;grpc.enable_deadline_checking&quot;</td></tr>
<tr class="memdesc:ga405daab19c0dceb2a64d0b1a77f8fe97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enable/disable support for deadline checking. <a href="group__grpc__arg__keys.html#ga405daab19c0dceb2a64d0b1a77f8fe97">More...</a><br /></td></tr>
<tr class="separator:ga405daab19c0dceb2a64d0b1a77f8fe97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaecc45a63163796ca1bc5453938bdfb36"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grpc__arg__keys.html#gaecc45a63163796ca1bc5453938bdfb36">GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER</a>&#160;&#160;&#160;&quot;grpc.http2.initial_sequence_number&quot;</td></tr>
<tr class="memdesc:gaecc45a63163796ca1bc5453938bdfb36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initial stream ID for http2 transports. <a href="group__grpc__arg__keys.html#gaecc45a63163796ca1bc5453938bdfb36">More...</a><br /></td></tr>
<tr class="separator:gaecc45a63163796ca1bc5453938bdfb36"><td class="memSeparator" colspan="2">&#160;</td></tr>
@ -347,11 +344,14 @@ Macros</h2></td></tr>
<tr class="memitem:ga7e1a4b301b2e9682abff15ea1cc5b371"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grpc__arg__keys.html#ga7e1a4b301b2e9682abff15ea1cc5b371">GRPC_ARG_EVENT_ENGINE_USE_MEMORY_ALLOCATOR_FACTORY</a>&#160;&#160;&#160;&quot;grpc.event_engine_use_memory_allocator_factory&quot;</td></tr>
<tr class="memdesc:ga7e1a4b301b2e9682abff15ea1cc5b371"><td class="mdescLeft">&#160;</td><td class="mdescRight">It accepts a MemoryAllocatorFactory as input and If specified, it forces the default event engine to use memory allocators created using the provided factory. <a href="group__grpc__arg__keys.html#ga7e1a4b301b2e9682abff15ea1cc5b371">More...</a><br /></td></tr>
<tr class="separator:ga7e1a4b301b2e9682abff15ea1cc5b371"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabd42b553fb7664f8a0231bec0268089c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__grpc__arg__keys.html#gabd42b553fb7664f8a0231bec0268089c">GRPC_ARG_MAX_ALLOWED_INCOMING_CONNECTIONS</a>&#160;&#160;&#160;&quot;grpc.max_allowed_incoming_connections&quot;</td></tr>
<tr class="memdesc:gabd42b553fb7664f8a0231bec0268089c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Configure the max number of allowed incoming connections to the server. <a href="group__grpc__arg__keys.html#gabd42b553fb7664f8a0231bec0268089c">More...</a><br /></td></tr>
<tr class="separator:gabd42b553fb7664f8a0231bec0268089c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -121,219 +121,220 @@ $(function() {
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaccb671d1056c84381ac5ebbd710b70f9"> 68</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_PER_MESSAGE_DECOMPRESSION \</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor"> &quot;grpc.per_message_decompression&quot;</span></div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga405daab19c0dceb2a64d0b1a77f8fe97"> 72</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_DEADLINE_CHECKS &quot;grpc.enable_deadline_checking&quot;</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaecc45a63163796ca1bc5453938bdfb36"> 71</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor"> &quot;grpc.http2.initial_sequence_number&quot;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaecc45a63163796ca1bc5453938bdfb36"> 74</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_INITIAL_SEQUENCE_NUMBER \</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor"> &quot;grpc.http2.initial_sequence_number&quot;</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gac02673f790cd2e8616e03aa010be67d6"> 80</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES &quot;grpc.http2.lookahead_bytes&quot;</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gac02673f790cd2e8616e03aa010be67d6"> 77</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_STREAM_LOOKAHEAD_BYTES &quot;grpc.http2.lookahead_bytes&quot;</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga216089aecb45149441024ffe5542cbaf"> 79</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor"> &quot;grpc.http2.hpack_table_size.decoder&quot;</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga216089aecb45149441024ffe5542cbaf"> 82</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_DECODER \</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> &quot;grpc.http2.hpack_table_size.decoder&quot;</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaab50fc8faf9f04675a9fefa9d631e362"> 82</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \</span></div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="preprocessor"> &quot;grpc.http2.hpack_table_size.encoder&quot;</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaab50fc8faf9f04675a9fefa9d631e362"> 85</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_HPACK_TABLE_SIZE_ENCODER \</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor"> &quot;grpc.http2.hpack_table_size.encoder&quot;</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga2ef6e079e5d61b34ce236f50fd38fc83"> 90</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MAX_FRAME_SIZE &quot;grpc.http2.max_frame_size&quot;</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga0958b21ee82acd9c77de30a978c59fb2"> 92</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_BDP_PROBE &quot;grpc.http2.bdp_probe&quot;</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga69583c8efdbdcb7cdf9055ee80a07014"> 102</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS \</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="preprocessor"> &quot;grpc.http2.min_time_between_pings_ms&quot;</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga4494709dc5c7c899af4ed67ec7728549"> 107</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS \</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor"> &quot;grpc.http2.min_ping_interval_without_data_ms&quot;</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga3f8b16398c4051ebf86fb7fcf26e02b3"> 113</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVER_MAX_UNREQUESTED_TIME_IN_SERVER_SECONDS \</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="preprocessor"> &quot;grpc.server_max_unrequested_time_in_server&quot;</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga7797da9f3f5a1381484b2cabca1920fc"> 116</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_SCHEME &quot;grpc.http2_scheme&quot;</span></div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga401cc6c0e567cbbb8b689b091f92dc7e"> 120</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA \</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="preprocessor"> &quot;grpc.http2.max_pings_without_data&quot;</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf50a9992745183e14e8c660d954c1d82"> 125</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MAX_PING_STRIKES &quot;grpc.http2.max_ping_strikes&quot;</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga2ef6e079e5d61b34ce236f50fd38fc83"> 87</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MAX_FRAME_SIZE &quot;grpc.http2.max_frame_size&quot;</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga0958b21ee82acd9c77de30a978c59fb2"> 89</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_BDP_PROBE &quot;grpc.http2.bdp_probe&quot;</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga69583c8efdbdcb7cdf9055ee80a07014"> 99</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MIN_SENT_PING_INTERVAL_WITHOUT_DATA_MS \</span></div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="preprocessor"> &quot;grpc.http2.min_time_between_pings_ms&quot;</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga4494709dc5c7c899af4ed67ec7728549"> 104</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MIN_RECV_PING_INTERVAL_WITHOUT_DATA_MS \</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor"> &quot;grpc.http2.min_ping_interval_without_data_ms&quot;</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga3f8b16398c4051ebf86fb7fcf26e02b3"> 110</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVER_MAX_UNREQUESTED_TIME_IN_SERVER_SECONDS \</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor"> &quot;grpc.server_max_unrequested_time_in_server&quot;</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga7797da9f3f5a1381484b2cabca1920fc"> 113</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_SCHEME &quot;grpc.http2_scheme&quot;</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga401cc6c0e567cbbb8b689b091f92dc7e"> 117</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MAX_PINGS_WITHOUT_DATA \</span></div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="preprocessor"> &quot;grpc.http2.max_pings_without_data&quot;</span></div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf50a9992745183e14e8c660d954c1d82"> 122</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_MAX_PING_STRIKES &quot;grpc.http2.max_ping_strikes&quot;</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga8ee81850446e587a7410df5ab640c565"> 125</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_WRITE_BUFFER_SIZE &quot;grpc.http2.write_buffer_size&quot;</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga8ee81850446e587a7410df5ab640c565"> 128</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_WRITE_BUFFER_SIZE &quot;grpc.http2.write_buffer_size&quot;</span></div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gacccbdf888685b6d4beda61a3600f4a20"> 128</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_ENABLE_TRUE_BINARY &quot;grpc.http2.true_binary&quot;</span></div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gacccbdf888685b6d4beda61a3600f4a20"> 131</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP2_ENABLE_TRUE_BINARY &quot;grpc.http2.true_binary&quot;</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga4450fc268fe8e95e15af8f7d354c37ab"> 137</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPERIMENTAL_HTTP2_PREFERRED_CRYPTO_FRAME_SIZE \</span></div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.http2.enable_preferred_frame_size&quot;</span></div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga4450fc268fe8e95e15af8f7d354c37ab"> 134</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPERIMENTAL_HTTP2_PREFERRED_CRYPTO_FRAME_SIZE \</span></div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.http2.enable_preferred_frame_size&quot;</span></div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabeeccb441a671122c75384e062b1b91b"> 138</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_KEEPALIVE_TIME_MS &quot;grpc.keepalive_time_ms&quot;</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabeeccb441a671122c75384e062b1b91b"> 141</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_KEEPALIVE_TIME_MS &quot;grpc.keepalive_time_ms&quot;</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga78975b982fd17ff190fddf2f90050ee3"> 145</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_KEEPALIVE_TIMEOUT_MS &quot;grpc.keepalive_timeout_ms&quot;</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf900669f52f137677c4dbb9a7a902c92"> 148</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS \</span></div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="preprocessor"> &quot;grpc.keepalive_permit_without_calls&quot;</span></div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga78975b982fd17ff190fddf2f90050ee3"> 142</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_KEEPALIVE_TIMEOUT_MS &quot;grpc.keepalive_timeout_ms&quot;</span></div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf900669f52f137677c4dbb9a7a902c92"> 145</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS \</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="preprocessor"> &quot;grpc.keepalive_permit_without_calls&quot;</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gadd42f97666fbfc66b7dac253ac3b73ae"> 149</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DEFAULT_AUTHORITY &quot;grpc.default_authority&quot;</span></div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gadd42f97666fbfc66b7dac253ac3b73ae"> 152</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DEFAULT_AUTHORITY &quot;grpc.default_authority&quot;</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga0732df2d9003e9ee1c01e50e41b5a8e2"> 152</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_PRIMARY_USER_AGENT_STRING &quot;grpc.primary_user_agent&quot;</span></div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga0732df2d9003e9ee1c01e50e41b5a8e2"> 155</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_PRIMARY_USER_AGENT_STRING &quot;grpc.primary_user_agent&quot;</span></div>
<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf47b4048c11e4f8f4162f12c135c2da4"> 155</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SECONDARY_USER_AGENT_STRING &quot;grpc.secondary_user_agent&quot;</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf47b4048c11e4f8f4162f12c135c2da4"> 158</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SECONDARY_USER_AGENT_STRING &quot;grpc.secondary_user_agent&quot;</span></div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad7d9d143858d8f5e138cf704b0082973"> 160</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MIN_RECONNECT_BACKOFF_MS &quot;grpc.min_reconnect_backoff_ms&quot;</span></div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gac978e84658bcda47633c5b81a80d0052"> 162</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_RECONNECT_BACKOFF_MS &quot;grpc.max_reconnect_backoff_ms&quot;</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad7d9d143858d8f5e138cf704b0082973"> 157</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MIN_RECONNECT_BACKOFF_MS &quot;grpc.min_reconnect_backoff_ms&quot;</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gac978e84658bcda47633c5b81a80d0052"> 159</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_RECONNECT_BACKOFF_MS &quot;grpc.max_reconnect_backoff_ms&quot;</span></div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaedb26c5ca7d3d279b81d12d9bf6dabc6"> 161</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_INITIAL_RECONNECT_BACKOFF_MS \</span></div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"> &quot;grpc.initial_reconnect_backoff_ms&quot;</span></div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaedb26c5ca7d3d279b81d12d9bf6dabc6"> 164</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_INITIAL_RECONNECT_BACKOFF_MS \</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"> &quot;grpc.initial_reconnect_backoff_ms&quot;</span></div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga04ecb35be00c4d5f12f8f10e1a501713"> 164</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS \</span></div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor"> &quot;grpc.dns_min_time_between_resolutions_ms&quot;</span></div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga04ecb35be00c4d5f12f8f10e1a501713"> 167</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DNS_MIN_TIME_BETWEEN_RESOLUTIONS_MS \</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="preprocessor"> &quot;grpc.dns_min_time_between_resolutions_ms&quot;</span></div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabd95d2a6b1cd3b3ca8a1c9fb7eb4cdf1"> 168</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS &quot;grpc.server_handshake_timeout_ms&quot;</span></div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabd95d2a6b1cd3b3ca8a1c9fb7eb4cdf1"> 171</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVER_HANDSHAKE_TIMEOUT_MS &quot;grpc.server_handshake_timeout_ms&quot;</span></div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga218bf55b665134a11baf07ada5980825"> 179</a></span>&#160;<span class="preprocessor">#define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG &quot;grpc.ssl_target_name_override&quot;</span></div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga728b6e9699b2bc90b56a4fb06d269670"> 183</a></span>&#160;<span class="preprocessor">#define GRPC_SSL_SESSION_CACHE_ARG &quot;grpc.ssl_session_cache&quot;</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf6f0cd3313637e1c4dbeb60043423635"> 187</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TSI_MAX_FRAME_SIZE &quot;grpc.tsi.max_frame_size&quot;</span></div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga2a9e23d3fe81ae539ba655d2e49051c8"> 194</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_METADATA_SIZE &quot;grpc.max_metadata_size&quot;</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; </div>
<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga914505cb73b2d79aa8f54d78d3746a94"> 199</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE &quot;grpc.absolute_max_metadata_size&quot;</span></div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div>
<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga40e635cf00ea7a10c71ed71c03d97f23"> 201</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ALLOW_REUSEPORT &quot;grpc.so_reuseport&quot;</span></div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa8bb5c65808f9c340ba7e4dd4f9f0f39"> 205</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_RESOURCE_QUOTA &quot;grpc.resource_quota&quot;</span></div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gab11602475264d01e0ea50f0ce376cdcd"> 207</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPAND_WILDCARD_ADDRS &quot;grpc.expand_wildcard_addrs&quot;</span></div>
<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga218bf55b665134a11baf07ada5980825"> 176</a></span>&#160;<span class="preprocessor">#define GRPC_SSL_TARGET_NAME_OVERRIDE_ARG &quot;grpc.ssl_target_name_override&quot;</span></div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga728b6e9699b2bc90b56a4fb06d269670"> 180</a></span>&#160;<span class="preprocessor">#define GRPC_SSL_SESSION_CACHE_ARG &quot;grpc.ssl_session_cache&quot;</span></div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf6f0cd3313637e1c4dbeb60043423635"> 184</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TSI_MAX_FRAME_SIZE &quot;grpc.tsi.max_frame_size&quot;</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga2a9e23d3fe81ae539ba655d2e49051c8"> 191</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_METADATA_SIZE &quot;grpc.max_metadata_size&quot;</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga914505cb73b2d79aa8f54d78d3746a94"> 196</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ABSOLUTE_MAX_METADATA_SIZE &quot;grpc.absolute_max_metadata_size&quot;</span></div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga40e635cf00ea7a10c71ed71c03d97f23"> 198</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ALLOW_REUSEPORT &quot;grpc.so_reuseport&quot;</span></div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; </div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa8bb5c65808f9c340ba7e4dd4f9f0f39"> 202</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_RESOURCE_QUOTA &quot;grpc.resource_quota&quot;</span></div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; </div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gab11602475264d01e0ea50f0ce376cdcd"> 204</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPAND_WILDCARD_ADDRS &quot;grpc.expand_wildcard_addrs&quot;</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad60df744eb84ef55a371de9b8bd2373d"> 207</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVICE_CONFIG &quot;grpc.service_config&quot;</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad60df744eb84ef55a371de9b8bd2373d"> 210</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVICE_CONFIG &quot;grpc.service_config&quot;</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf3c9aad876ebaa5484a0cffd8d295244"> 209</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVICE_CONFIG_DISABLE_RESOLUTION \</span></div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor"> &quot;grpc.service_config_disable_resolution&quot;</span></div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf3c9aad876ebaa5484a0cffd8d295244"> 212</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVICE_CONFIG_DISABLE_RESOLUTION \</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="preprocessor"> &quot;grpc.service_config_disable_resolution&quot;</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga72c2b475e218ecfd36bb7d3551d0295b"> 215</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_LB_POLICY_NAME &quot;grpc.lb_policy_name&quot;</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga36f5980f634babe3ce3c9aa75e6395a3"> 219</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_RING_HASH_LB_RING_SIZE_CAP &quot;grpc.lb.ring_hash.ring_size_cap&quot;</span></div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabdcf8122824e386dcc23b947473e83e0"> 221</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SOCKET_MUTATOR &quot;grpc.socket_mutator&quot;</span></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga9e1054f78a26481931b10aa0b33f52b7"> 223</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SOCKET_FACTORY &quot;grpc.socket_factory&quot;</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad20a36039729599902ba6ce82882da2c"> 228</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE \</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="preprocessor"> &quot;grpc.max_channel_trace_event_memory_per_node&quot;</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga169f04dc1fa795c27b0daeda33c16999"> 233</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_CHANNELZ &quot;grpc.enable_channelz&quot;</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; </div>
<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga3da556ec531495ace9f93b97c8c4f24b"> 236</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_USE_CRONET_PACKET_COALESCING \</span></div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="preprocessor"> &quot;grpc.use_cronet_packet_coalescing&quot;</span></div>
<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga72c2b475e218ecfd36bb7d3551d0295b"> 212</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_LB_POLICY_NAME &quot;grpc.lb_policy_name&quot;</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga36f5980f634babe3ce3c9aa75e6395a3"> 216</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_RING_HASH_LB_RING_SIZE_CAP &quot;grpc.lb.ring_hash.ring_size_cap&quot;</span></div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabdcf8122824e386dcc23b947473e83e0"> 218</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SOCKET_MUTATOR &quot;grpc.socket_mutator&quot;</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; </div>
<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga9e1054f78a26481931b10aa0b33f52b7"> 220</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SOCKET_FACTORY &quot;grpc.socket_factory&quot;</span></div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad20a36039729599902ba6ce82882da2c"> 225</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_CHANNEL_TRACE_EVENT_MEMORY_PER_NODE \</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> &quot;grpc.max_channel_trace_event_memory_per_node&quot;</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; </div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga169f04dc1fa795c27b0daeda33c16999"> 230</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_CHANNELZ &quot;grpc.enable_channelz&quot;</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga3da556ec531495ace9f93b97c8c4f24b"> 233</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_USE_CRONET_PACKET_COALESCING \</span></div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="preprocessor"> &quot;grpc.use_cronet_packet_coalescing&quot;</span></div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga82582ed0fcd7d6b0090f9102d75c765a"> 237</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_READ_CHUNK_SIZE &quot;grpc.experimental.tcp_read_chunk_size&quot;</span></div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga82582ed0fcd7d6b0090f9102d75c765a"> 240</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_READ_CHUNK_SIZE &quot;grpc.experimental.tcp_read_chunk_size&quot;</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; </div>
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1f91c3aec64a436d29051c8d415b1053"> 244</a></span>&#160;<span class="preprocessor">#define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gae55b7bd57a5344e0083eac4d06c2d51b"> 245</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_MIN_READ_CHUNK_SIZE \</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_min_read_chunk_size&quot;</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gadeaad8ae5b50ee8d2fb44d289aeb223d"> 247</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_MAX_READ_CHUNK_SIZE \</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_max_read_chunk_size&quot;</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="comment">/* TCP TX Zerocopy enable state: zero is disabled, non-zero is enabled. By</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment"> default, it is disabled. */</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1eb58c302eaf27a5d982b30402b8f84a"> 251</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED \</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_tx_zerocopy_enabled&quot;</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="comment">/* TCP TX Zerocopy send threshold: only zerocopy if &gt;= this many bytes sent. By</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment"> default, this is set to 16KB. */</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1014726da03b9715efd3638ca5f9c33a"> 255</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_TX_ZEROCOPY_SEND_BYTES_THRESHOLD \</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_tx_zerocopy_send_bytes_threshold&quot;</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment">/* TCP TX Zerocopy max simultaneous sends: limit for maximum number of pending</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> calls to tcp_write() using zerocopy. A tcp_write() is considered pending</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"> until the kernel performs the zerocopy-done callback for all sendmsg() calls</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment"> issued by the tcp_write(). By default, this is set to 4. */</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf3be6c3cb4107587438a2053621a1620"> 261</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_TX_ZEROCOPY_MAX_SIMULT_SENDS \</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_tx_zerocopy_max_simultaneous_sends&quot;</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment">/* Overrides the TCP socket recieve buffer size, SO_RCVBUF. */</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga9cf3e55df9842ae62f36b133655e9b08"> 264</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_RECEIVE_BUFFER_SIZE &quot;grpc.tcp_receive_buffer_size&quot;</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment">/* Timeout in milliseconds to use for calls to the grpclb load balancer.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> If 0 or unset, the balancer calls will have no deadline. */</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1768735fceeb8108a2f1eb12ea0a894e"> 267</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_GRPCLB_CALL_TIMEOUT_MS &quot;grpc.grpclb_call_timeout_ms&quot;</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment">/* Specifies the xDS bootstrap config as a JSON string.</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> FOR TESTING PURPOSES ONLY -- DO NOT USE IN PRODUCTION.</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment"> This option allows controlling the bootstrap configuration on a</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> per-channel basis, which is useful in tests. However, this results</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> in having a separate xDS client instance per channel rather than</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"> using the global instance, which is not the intended way to use xDS.</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="comment"> Currently, this will (a) add unnecessary load on the xDS server and</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment"> (b) break use of CSDS, and there may be additional side effects in</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment"> the future. */</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gab8c0bd8e6b96d1cf787bb24823e7c761"> 277</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TEST_ONLY_DO_NOT_USE_IN_PROD_XDS_BOOTSTRAP_CONFIG \</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"> &quot;grpc.TEST_ONLY_DO_NOT_USE_IN_PROD.xds_bootstrap_config&quot;</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment">/* Timeout in milliseconds to wait for the serverlist from the grpclb load</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> balancer before using fallback backend addresses from the resolver.</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> If 0, enter fallback mode immediately. Default value is 10000. */</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaaaf4ebe91111ede7ee09a2bc790caa21"> 282</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_GRPCLB_FALLBACK_TIMEOUT_MS &quot;grpc.grpclb_fallback_timeout_ms&quot;</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment">/* Experimental Arg. Channel args to be used for the control-plane channel</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment"> * created to the grpclb load balancers. This is a pointer arg whose value is a</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment"> * grpc_channel_args object. If unset, most channel args from the parent channel</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> * will be propagated to the grpclb channel. */</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga87358852b0249cfab0e128c68810366f"> 287</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPERIMENTAL_GRPCLB_CHANNEL_ARGS \</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.grpclb_channel_args&quot;</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment">/* Timeout in milliseconds to wait for the child of a specific priority to</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> complete its initial connection attempt before the priority LB policy fails</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> over to the next priority. Default value is 10 seconds. */</span></div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga3ab27425a4afa2866ae2876ae0b735e3"> 292</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_PRIORITY_FAILOVER_TIMEOUT_MS \</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"> &quot;grpc.priority_failover_timeout_ms&quot;</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1f91c3aec64a436d29051c8d415b1053"> 241</a></span>&#160;<span class="preprocessor">#define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gae55b7bd57a5344e0083eac4d06c2d51b"> 242</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_MIN_READ_CHUNK_SIZE \</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_min_read_chunk_size&quot;</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gadeaad8ae5b50ee8d2fb44d289aeb223d"> 244</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_MAX_READ_CHUNK_SIZE \</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_max_read_chunk_size&quot;</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">/* TCP TX Zerocopy enable state: zero is disabled, non-zero is enabled. By</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment"> default, it is disabled. */</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1eb58c302eaf27a5d982b30402b8f84a"> 248</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_TX_ZEROCOPY_ENABLED \</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_tx_zerocopy_enabled&quot;</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="comment">/* TCP TX Zerocopy send threshold: only zerocopy if &gt;= this many bytes sent. By</span></div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="comment"> default, this is set to 16KB. */</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1014726da03b9715efd3638ca5f9c33a"> 252</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_TX_ZEROCOPY_SEND_BYTES_THRESHOLD \</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_tx_zerocopy_send_bytes_threshold&quot;</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="comment">/* TCP TX Zerocopy max simultaneous sends: limit for maximum number of pending</span></div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment"> calls to tcp_write() using zerocopy. A tcp_write() is considered pending</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> until the kernel performs the zerocopy-done callback for all sendmsg() calls</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> issued by the tcp_write(). By default, this is set to 4. */</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaf3be6c3cb4107587438a2053621a1620"> 258</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_TX_ZEROCOPY_MAX_SIMULT_SENDS \</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.tcp_tx_zerocopy_max_simultaneous_sends&quot;</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment">/* Overrides the TCP socket recieve buffer size, SO_RCVBUF. */</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga9cf3e55df9842ae62f36b133655e9b08"> 261</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TCP_RECEIVE_BUFFER_SIZE &quot;grpc.tcp_receive_buffer_size&quot;</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">/* Timeout in milliseconds to use for calls to the grpclb load balancer.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> If 0 or unset, the balancer calls will have no deadline. */</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga1768735fceeb8108a2f1eb12ea0a894e"> 264</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_GRPCLB_CALL_TIMEOUT_MS &quot;grpc.grpclb_call_timeout_ms&quot;</span></div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment">/* Specifies the xDS bootstrap config as a JSON string.</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> FOR TESTING PURPOSES ONLY -- DO NOT USE IN PRODUCTION.</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"> This option allows controlling the bootstrap configuration on a</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> per-channel basis, which is useful in tests. However, this results</span></div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> in having a separate xDS client instance per channel rather than</span></div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment"> using the global instance, which is not the intended way to use xDS.</span></div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> Currently, this will (a) add unnecessary load on the xDS server and</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="comment"> (b) break use of CSDS, and there may be additional side effects in</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="comment"> the future. */</span></div>
<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gab8c0bd8e6b96d1cf787bb24823e7c761"> 274</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_TEST_ONLY_DO_NOT_USE_IN_PROD_XDS_BOOTSTRAP_CONFIG \</span></div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"> &quot;grpc.TEST_ONLY_DO_NOT_USE_IN_PROD.xds_bootstrap_config&quot;</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment">/* Timeout in milliseconds to wait for the serverlist from the grpclb load</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="comment"> balancer before using fallback backend addresses from the resolver.</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment"> If 0, enter fallback mode immediately. Default value is 10000. */</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaaaf4ebe91111ede7ee09a2bc790caa21"> 279</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_GRPCLB_FALLBACK_TIMEOUT_MS &quot;grpc.grpclb_fallback_timeout_ms&quot;</span></div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment">/* Experimental Arg. Channel args to be used for the control-plane channel</span></div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> * created to the grpclb load balancers. This is a pointer arg whose value is a</span></div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"> * grpc_channel_args object. If unset, most channel args from the parent channel</span></div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment"> * will be propagated to the grpclb channel. */</span></div>
<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga87358852b0249cfab0e128c68810366f"> 284</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPERIMENTAL_GRPCLB_CHANNEL_ARGS \</span></div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.grpclb_channel_args&quot;</span></div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment">/* Timeout in milliseconds to wait for the child of a specific priority to</span></div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> complete its initial connection attempt before the priority LB policy fails</span></div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> over to the next priority. Default value is 10 seconds. */</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga3ab27425a4afa2866ae2876ae0b735e3"> 289</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_PRIORITY_FAILOVER_TIMEOUT_MS \</span></div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"> &quot;grpc.priority_failover_timeout_ms&quot;</span></div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; </div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga618ddbf19fdd38d8f90b8f3d7cb5d481"> 292</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_WORKAROUND_CRONET_COMPRESSION \</span></div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="preprocessor"> &quot;grpc.workaround.cronet_compression&quot;</span></div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; </div>
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga618ddbf19fdd38d8f90b8f3d7cb5d481"> 295</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_WORKAROUND_CRONET_COMPRESSION \</span></div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"> &quot;grpc.workaround.cronet_compression&quot;</span></div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; </div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga5bbdfddb3afba6b330221d9adbecc778"> 304</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_OPTIMIZATION_TARGET &quot;grpc.optimization_target&quot;</span></div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; </div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga212f667ecbcee3b100898ba7e88454df"> 314</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_RETRIES &quot;grpc.enable_retries&quot;</span></div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div>
<div class="line"><a name="l00323"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa96b205e65a2a441064390e6e52b3e5b"> 323</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPERIMENTAL_ENABLE_HEDGING &quot;grpc.experimental.enable_hedging&quot;</span></div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; </div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa40f8424599668676462a76ec54eb712"> 325</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_PER_RPC_RETRY_BUFFER_SIZE &quot;grpc.per_rpc_retry_buffer_size&quot;</span></div>
<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga5bbdfddb3afba6b330221d9adbecc778"> 301</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_OPTIMIZATION_TARGET &quot;grpc.optimization_target&quot;</span></div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div>
<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga212f667ecbcee3b100898ba7e88454df"> 311</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_RETRIES &quot;grpc.enable_retries&quot;</span></div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; </div>
<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa96b205e65a2a441064390e6e52b3e5b"> 320</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EXPERIMENTAL_ENABLE_HEDGING &quot;grpc.experimental.enable_hedging&quot;</span></div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div>
<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa40f8424599668676462a76ec54eb712"> 322</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_PER_RPC_RETRY_BUFFER_SIZE &quot;grpc.per_rpc_retry_buffer_size&quot;</span></div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div>
<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga21c78c70325acceccf0e93291c981fe5"> 325</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MOBILE_LOG_CONTEXT &quot;grpc.mobile_log_context&quot;</span></div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; </div>
<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga21c78c70325acceccf0e93291c981fe5"> 328</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MOBILE_LOG_CONTEXT &quot;grpc.mobile_log_context&quot;</span></div>
<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad5cfeb3dfc4f99cbc4e1436f7b72f873"> 327</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DISABLE_CLIENT_AUTHORITY_FILTER \</span></div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"> &quot;grpc.disable_client_authority_filter&quot;</span></div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad5cfeb3dfc4f99cbc4e1436f7b72f873"> 330</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DISABLE_CLIENT_AUTHORITY_FILTER \</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"> &quot;grpc.disable_client_authority_filter&quot;</span></div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; </div>
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa3f69f6e1e789e36d2d9c6083fec0257"> 333</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_HTTP_PROXY &quot;grpc.enable_http_proxy&quot;</span></div>
<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa3f69f6e1e789e36d2d9c6083fec0257"> 330</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ENABLE_HTTP_PROXY &quot;grpc.enable_http_proxy&quot;</span></div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; </div>
<div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga218fd6d2995e1c13213ed6be653cd500"> 333</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP_PROXY &quot;grpc.http_proxy&quot;</span></div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div>
<div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga218fd6d2995e1c13213ed6be653cd500"> 336</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HTTP_PROXY &quot;grpc.http_proxy&quot;</span></div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; </div>
<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa38dfe8cfccf67ff7ab6a708690c7d9b"> 341</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ADDRESS_HTTP_PROXY &quot;grpc.address_http_proxy&quot;</span></div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaeed6ab24fcfcbe1ecb067802421e4f28"> 345</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ADDRESS_HTTP_PROXY_ENABLED_ADDRESSES \</span></div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"> &quot;grpc.address_http_proxy_enabled_addresses&quot;</span></div>
<div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa38dfe8cfccf67ff7ab6a708690c7d9b"> 338</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ADDRESS_HTTP_PROXY &quot;grpc.address_http_proxy&quot;</span></div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; </div>
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaeed6ab24fcfcbe1ecb067802421e4f28"> 342</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_ADDRESS_HTTP_PROXY_ENABLED_ADDRESSES \</span></div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"> &quot;grpc.address_http_proxy_enabled_addresses&quot;</span></div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; </div>
<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga37014e47791a777718aac4250180d92e"> 346</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SURFACE_USER_AGENT &quot;grpc.surface_user_agent&quot;</span></div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; </div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga37014e47791a777718aac4250180d92e"> 349</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SURFACE_USER_AGENT &quot;grpc.surface_user_agent&quot;</span></div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga523b3b4f16b1016108cbeee9ef81fd50"> 349</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_INHIBIT_HEALTH_CHECKING &quot;grpc.inhibit_health_checking&quot;</span></div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; </div>
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga523b3b4f16b1016108cbeee9ef81fd50"> 352</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_INHIBIT_HEALTH_CHECKING &quot;grpc.inhibit_health_checking&quot;</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga247ed6771077938be12ab24790a95732"> 361</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DNS_ENABLE_SRV_QUERIES &quot;grpc.dns_enable_srv_queries&quot;</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; </div>
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad0e9ad7630f67bcd1d631435860a53d4"> 368</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DNS_ARES_QUERY_TIMEOUT_MS &quot;grpc.dns_ares_query_timeout&quot;</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga247ed6771077938be12ab24790a95732"> 358</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DNS_ENABLE_SRV_QUERIES &quot;grpc.dns_enable_srv_queries&quot;</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; </div>
<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gad0e9ad7630f67bcd1d631435860a53d4"> 365</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DNS_ARES_QUERY_TIMEOUT_MS &quot;grpc.dns_ares_query_timeout&quot;</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; </div>
<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa49ebd41af390c78a2c0ed94b74abfbc"> 368</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_USE_LOCAL_SUBCHANNEL_POOL &quot;grpc.use_local_subchannel_pool&quot;</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; </div>
<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gaa49ebd41af390c78a2c0ed94b74abfbc"> 371</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_USE_LOCAL_SUBCHANNEL_POOL &quot;grpc.use_local_subchannel_pool&quot;</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga126793d7d941d79b69b1446fc17989c9"> 373</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_CHANNEL_POOL_DOMAIN &quot;grpc.channel_pooling_domain&quot;</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; </div>
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga59dd5c3bc20b4041cf05d513a88ba2ec"> 375</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_CHANNEL_ID &quot;grpc.channel_id&quot;</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div>
<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga5008aa6d9780a65318382205bcbfb4aa"> 378</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_AUTHORIZATION_POLICY_PROVIDER \</span></div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"> &quot;grpc.authorization_policy_provider&quot;</span></div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; </div>
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gae677c8adf046eb6161ba562d2ccc50b3"> 384</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVER_CONFIG_CHANGE_DRAIN_GRACE_TIME_MS \</span></div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.server_config_change_drain_grace_time_ms&quot;</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga126793d7d941d79b69b1446fc17989c9"> 370</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_CHANNEL_POOL_DOMAIN &quot;grpc.channel_pooling_domain&quot;</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; </div>
<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga59dd5c3bc20b4041cf05d513a88ba2ec"> 372</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_CHANNEL_ID &quot;grpc.channel_id&quot;</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; </div>
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga5008aa6d9780a65318382205bcbfb4aa"> 375</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_AUTHORIZATION_POLICY_PROVIDER \</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"> &quot;grpc.authorization_policy_provider&quot;</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; </div>
<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gae677c8adf046eb6161ba562d2ccc50b3"> 381</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_SERVER_CONFIG_CHANGE_DRAIN_GRACE_TIME_MS \</span></div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> &quot;grpc.experimental.server_config_change_drain_grace_time_ms&quot;</span></div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabe2bd19481175dba1f79a3d382a8cd91"> 385</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DSCP &quot;grpc.dscp&quot;</span></div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; </div>
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabe2bd19481175dba1f79a3d382a8cd91"> 388</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_DSCP &quot;grpc.dscp&quot;</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; </div>
<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga7a2a214214ad1af38b0f67429838b215"> 391</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS \</span></div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"> &quot;grpc.happy_eyeballs_connection_attempt_delay_ms&quot;</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div>
<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga7e1a4b301b2e9682abff15ea1cc5b371"> 396</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EVENT_ENGINE_USE_MEMORY_ALLOCATOR_FACTORY \</span></div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;<span class="preprocessor"> &quot;grpc.event_engine_use_memory_allocator_factory&quot;</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; </div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_IMPL_CHANNEL_ARG_NAMES_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga7a2a214214ad1af38b0f67429838b215"> 388</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_HAPPY_EYEBALLS_CONNECTION_ATTEMPT_DELAY_MS \</span></div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;<span class="preprocessor"> &quot;grpc.happy_eyeballs_connection_attempt_delay_ms&quot;</span></div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; </div>
<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#ga7e1a4b301b2e9682abff15ea1cc5b371"> 393</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_EVENT_ENGINE_USE_MEMORY_ALLOCATOR_FACTORY \</span></div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor"> &quot;grpc.event_engine_use_memory_allocator_factory&quot;</span></div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div>
<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="group__grpc__arg__keys.html#gabd42b553fb7664f8a0231bec0268089c"> 397</a></span>&#160;<span class="preprocessor">#define GRPC_ARG_MAX_ALLOWED_INCOMING_CONNECTIONS \</span></div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;<span class="preprocessor"> &quot;grpc.max_allowed_incoming_connections&quot;</span></div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_IMPL_CHANNEL_ARG_NAMES_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -138,68 +138,69 @@ $(function() {
<td valign="top"><a class="el" href="uniongrpc__arg_1_1grpc__arg__value.html">grpc_arg::grpc_arg_value</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__message.html">grpc_op::grpc_op_data::grpc_op_recv_message</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html">MemoryAllocator</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html">StatsPluginChannelScope</a> (<a class="el" href="namespacegrpc__core_1_1experimental.html">grpc_core::experimental</a>)&#160;&#160;&#160;</td>
</tr>
<tr><td valign="top"><a class="el" href="classgrpc__core_1_1experimental_1_1_audit_logger_factory_1_1_config.html">AuditLoggerFactory::Config</a> (<a class="el" href="namespacegrpc__core_1_1experimental.html">grpc_core::experimental</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__recv__status__on__client.html">grpc_op::grpc_op_data::grpc_op_recv_status_on_client</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_factory.html">MemoryAllocatorFactory</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
</td>
</tr>
<tr><td valign="top"><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">EventEngine::ConnectionHandle</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__auth__metadata__processor.html">grpc_auth_metadata_processor</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__initial__metadata.html">grpc_op::grpc_op_data::grpc_op_send_initial_metadata</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1internal_1_1_memory_allocator_impl.html">MemoryAllocatorImpl</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental_1_1internal.html">grpc_event_engine::experimental::internal</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">EventEngine::TaskHandle</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
</tr>
<tr><td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_1_1_container.html">MemoryAllocator::Container</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__auth__property.html">grpc_auth_property</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__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>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_request.html">MemoryRequest</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">EventEngine::TaskHandle</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
</tr>
<tr><td valign="top"><a class="el" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">CopyConstructors</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html">grpc_event_engine::experimental::slice_detail</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__auth__property__iterator.html">grpc_auth_property_iterator</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__message.html">grpc_op::grpc_op_data::grpc_op_send_message</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td rowspan="2" valign="bottom"><a name="letter_v"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;v&#160;&#160;</div></td></tr></table>
</td>
</tr>
<tr><td valign="top"><a class="el" href="classgrpc__core_1_1experimental_1_1_crl.html">Crl</a> (<a class="el" href="namespacegrpc__core_1_1experimental.html">grpc_core::experimental</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__byte__buffer.html">grpc_byte_buffer</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__op_1_1grpc__op__data_1_1grpc__op__send__status__from__server.html">grpc_op::grpc_op_data::grpc_op_send_status_from_server</a>&#160;&#160;&#160;</td>
<td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_vector.html">Vector</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
</tr>
<tr><td valign="top"><a class="el" href="classgrpc__core_1_1experimental_1_1_crl_provider.html">CrlProvider</a> (<a class="el" href="namespacegrpc__core_1_1experimental.html">grpc_core::experimental</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="uniongrpc__byte__buffer_1_1grpc__byte__buffer__data.html">grpc_byte_buffer::grpc_byte_buffer_data</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__server__xds__status__notifier.html">grpc_server_xds_status_notifier</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structverify__peer__options.html">verify_peer_options</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_vector.html">Vector</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
</tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="structgrpc__byte__buffer__reader.html">grpc_byte_buffer_reader</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__serving__status__update.html">grpc_serving_status_update</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html">grpc_tls_custom_verification_check_request::peer_info</a>&#160;&#160;&#160;</td>
<td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;w&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="structverify__peer__options.html">verify_peer_options</a>&#160;&#160;&#160;</td>
</tr>
<tr><td valign="top"><a class="el" href="uniongrpc__byte__buffer__reader_1_1grpc__byte__buffer__reader__current.html">grpc_byte_buffer_reader::grpc_byte_buffer_reader_current</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__slice.html">grpc_slice</a>&#160;&#160;&#160;</td>
<td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
</td>
<td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;w&#160;&#160;</div></td></tr></table>
</td>
</tr>
<tr><td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html">EventEngine::DNSResolver</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__call__details.html">grpc_call_details</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">EventEngine::Endpoint::WriteArgs</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
</tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
</td>
<td valign="top"><a class="el" href="structgrpc__channel__args.html">grpc_channel_args</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="uniongrpc__slice_1_1grpc__slice__data.html">grpc_slice::grpc_slice_data</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html">EventEngine::Endpoint::ReadArgs</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
<td></td></tr>
<td valign="top"><a class="el" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">EventEngine::Endpoint::WriteArgs</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
</tr>
<tr><td valign="top"><a class="el" href="structgrpc__channel__info.html">grpc_channel_info</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="structgrpc__slice_1_1grpc__slice__data_1_1grpc__slice__inlined.html">grpc_slice::grpc_slice_data::grpc_slice_inlined</a>&#160;&#160;&#160;</td>
<td valign="top"><a class="el" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator_1_1_reservation.html">MemoryAllocator::Reservation</a> (<a class="el" href="namespacegrpc__event__engine_1_1experimental.html">grpc_event_engine::experimental</a>)&#160;&#160;&#160;</td>
@ -229,7 +230,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -277,7 +277,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -168,7 +168,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -202,7 +202,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -167,7 +167,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -81,6 +81,8 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a222487b70a7cd74427ab34cfb83e7601"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2998b1fc7c7b9a18a9804fc079b98253"><td class="memItemLeft" align="right" valign="top">virtual absl::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__core_1_1experimental_1_1_certificate_info.html#a2998b1fc7c7b9a18a9804fc079b98253">Issuer</a> () const =0</td></tr>
<tr class="separator:a2998b1fc7c7b9a18a9804fc079b98253"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f19db4bbb7f8728a56109e4296ea06c"><td class="memItemLeft" align="right" valign="top">virtual absl::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__core_1_1experimental_1_1_certificate_info.html#a1f19db4bbb7f8728a56109e4296ea06c">AuthorityKeyIdentifier</a> () const =0</td></tr>
<tr class="separator:a1f19db4bbb7f8728a56109e4296ea06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a222487b70a7cd74427ab34cfb83e7601"></a>
@ -109,6 +111,31 @@ Public Member Functions</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a1f19db4bbb7f8728a56109e4296ea06c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1f19db4bbb7f8728a56109e4296ea06c">&#9670;&nbsp;</a></span>AuthorityKeyIdentifier()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual absl::string_view grpc_core::experimental::CertificateInfo::AuthorityKeyIdentifier </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2998b1fc7c7b9a18a9804fc079b98253"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2998b1fc7c7b9a18a9804fc079b98253">&#9670;&nbsp;</a></span>Issuer()</h2>
@ -140,7 +167,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -172,7 +172,7 @@ Static Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -141,7 +141,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -948,7 +948,7 @@ Static Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -0,0 +1,193 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GRPC Core: grpc_core::experimental::StatsPluginChannelScope Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacegrpc__core.html">grpc_core</a></li><li class="navelem"><a class="el" href="namespacegrpc__core_1_1experimental.html">experimental</a></li><li class="navelem"><a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html">StatsPluginChannelScope</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> </div>
<div class="headertitle">
<div class="title">grpc_core::experimental::StatsPluginChannelScope Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="metrics_8h_source.html">metrics.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac1337ba0c1bd805deff2792f73233cde"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html#ac1337ba0c1bd805deff2792f73233cde">StatsPluginChannelScope</a> (absl::string_view <a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html#a7dc406f58e9ca45a095549f315eae670">target</a>, absl::string_view <a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html#a353d35ef2e6fd925f3e707af9c874c5b">default_authority</a>)</td></tr>
<tr class="separator:ac1337ba0c1bd805deff2792f73233cde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7dc406f58e9ca45a095549f315eae670"><td class="memItemLeft" align="right" valign="top">absl::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html#a7dc406f58e9ca45a095549f315eae670">target</a> () const</td></tr>
<tr class="memdesc:a7dc406f58e9ca45a095549f315eae670"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the target used for creating the channel in the canonical form. <a href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html#a7dc406f58e9ca45a095549f315eae670">More...</a><br /></td></tr>
<tr class="separator:a7dc406f58e9ca45a095549f315eae670"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a353d35ef2e6fd925f3e707af9c874c5b"><td class="memItemLeft" align="right" valign="top">absl::string_view&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html#a353d35ef2e6fd925f3e707af9c874c5b">default_authority</a> () const</td></tr>
<tr class="memdesc:a353d35ef2e6fd925f3e707af9c874c5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the default authority for the channel. <a href="classgrpc__core_1_1experimental_1_1_stats_plugin_channel_scope.html#a353d35ef2e6fd925f3e707af9c874c5b">More...</a><br /></td></tr>
<tr class="separator:a353d35ef2e6fd925f3e707af9c874c5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ac1337ba0c1bd805deff2792f73233cde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac1337ba0c1bd805deff2792f73233cde">&#9670;&nbsp;</a></span>StatsPluginChannelScope()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">grpc_core::experimental::StatsPluginChannelScope::StatsPluginChannelScope </td>
<td>(</td>
<td class="paramtype">absl::string_view&#160;</td>
<td class="paramname"><em>target</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">absl::string_view&#160;</td>
<td class="paramname"><em>default_authority</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a353d35ef2e6fd925f3e707af9c874c5b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a353d35ef2e6fd925f3e707af9c874c5b">&#9670;&nbsp;</a></span>default_authority()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">absl::string_view grpc_core::experimental::StatsPluginChannelScope::default_authority </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the default authority for the channel. </p>
</div>
</div>
<a id="a7dc406f58e9ca45a095549f315eae670"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7dc406f58e9ca45a095549f315eae670">&#9670;&nbsp;</a></span>target()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">absl::string_view grpc_core::experimental::StatsPluginChannelScope::target </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the target used for creating the channel in the canonical form. </p>
<p>(Canonicalized target definition - <a href="https://github.com/grpc/proposal/blob/master/A66-otel-stats.md">https://github.com/grpc/proposal/blob/master/A66-otel-stats.md</a>) </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>include/grpc/support/<a class="el" href="metrics_8h_source.html">metrics.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -203,7 +203,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -154,12 +154,12 @@ Public Member Functions</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>The <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> Interface. </p>
<h2><a class="anchor" id="autotoc_md317"></a>
<h2><a class="anchor" id="autotoc_md318"></a>
Overview</h2>
<p>The <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> encapsulates all platform-specific behaviors related to low level network I/O, timers, asynchronous execution, and DNS resolution.</p>
<p>This interface allows developers to provide their own event management and network stacks. Motivating uses cases for supporting custom EventEngines include the ability to hook into external event loops, and using different <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> instances for each channel to better insulate network I/O and callback processing from other channels.</p>
<p>A default cross-platform <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> instance is provided by gRPC.</p>
<h2><a class="anchor" id="autotoc_md318"></a>
<h2><a class="anchor" id="autotoc_md319"></a>
Lifespan and Ownership</h2>
<p>gRPC takes shared ownership of EventEngines via std::shared_ptrs to ensure that the engines remain available until they are no longer needed. Depending on the use case, engines may live until gRPC is shut down.</p>
<p>EXAMPLE USAGE (Not yet implemented)</p>
@ -167,11 +167,11 @@ Lifespan and Ownership</h2>
<p>ChannelArguments args; std::shared_ptr&lt;EventEngine&gt; engine = std::make_shared&lt;MyEngine&gt;(...); args.SetEventEngine(engine); MyAppClient client(grpc::CreateCustomChannel( "localhost:50051", grpc::InsecureChannelCredentials(), args));</p>
<p>A gRPC server can use a custom <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> by calling the ServerBuilder::SetEventEngine method:</p>
<p>ServerBuilder builder; std::shared_ptr&lt;EventEngine&gt; engine = std::make_shared&lt;MyEngine&gt;(...); builder.SetEventEngine(engine); std::unique_ptr&lt;Server&gt; server(builder.BuildAndStart()); server-&gt;Wait();</p>
<h2><a class="anchor" id="autotoc_md319"></a>
<h2><a class="anchor" id="autotoc_md320"></a>
Blocking EventEngine Callbacks</h2>
<p>Doing blocking work in <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> callbacks is generally not advisable. While gRPC's default <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> implementations have some capacity to scale their thread pools to avoid starvation, this is not an instantaneous process. Further, user-provided EventEngines may not be optimized to handle excessive blocking work at all.</p>
<p><em>Best Practice</em> : Occasional blocking work may be fine, but we do not recommend running a mostly blocking workload in <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> threads.</p>
<h2><a class="anchor" id="autotoc_md320"></a>
<h2><a class="anchor" id="autotoc_md321"></a>
Thread-safety guarantees</h2>
<p>All <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> methods are guaranteed to be thread-safe, no external synchronization is required to call any <a class="el" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html" title="The EventEngine Interface.">EventEngine</a> method. Please note that this does not apply to application callbacks, which may be run concurrently; application state synchronization must be managed by the application. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
@ -602,7 +602,8 @@ Thread-safety guarantees</h2>
<p>Synonymous with scheduling an alarm to run after duration <em>when</em>. </p>
<p>The <em>closure</em> will execute when time <em>when</em> arrives unless it has been cancelled via the <em>Cancel</em> method. If cancelled, the closure will not be run, nor will it be deleted. Ownership remains with the caller.</p>
<p>Implementations must not execute the closure in the calling thread before <em>RunAfter</em> returns. </p>
<p>Implementations must not execute the closure in the calling thread before <em>RunAfter</em> returns.</p>
<p>Implementations may return a <em>kInvalid</em> handle if the callback can be immediately executed, and is therefore not cancellable. </p>
</div>
</div>
@ -612,7 +613,7 @@ Thread-safety guarantees</h2>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -229,7 +229,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -324,7 +324,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -295,7 +295,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -205,7 +205,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -249,7 +249,7 @@ Static Public Attributes</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -122,7 +122,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -582,7 +582,7 @@ template&lt;typename T , typename... Args&gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -282,7 +282,7 @@ template&lt;typename T &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -286,7 +286,7 @@ Friends</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -145,7 +145,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -284,7 +284,7 @@ Static Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -519,7 +519,7 @@ Additional Inherited Members</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -623,7 +623,7 @@ Additional Inherited Members</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -778,7 +778,7 @@ Static Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -115,7 +115,7 @@ template&lt;typename T &gt; </div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -329,7 +329,7 @@ Public Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -766,7 +766,7 @@ Protected Member Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -77,7 +77,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -104,7 +104,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -77,7 +77,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -104,7 +104,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -77,7 +77,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -104,7 +104,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -77,7 +77,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -103,7 +103,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -72,10 +72,10 @@ $(function() {
<div class="title">compression.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;stdlib.h&gt;</code><br />
<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;<a class="el" href="compression__types_8h_source.html">grpc/impl/compression_types.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="slice_8h_source.html">grpc/slice.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="compression_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -352,7 +352,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -91,48 +91,47 @@ $(function() {
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GRPC_COMPRESSION_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define GRPC_COMPRESSION_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="compression__types_8h.html">grpc/impl/compression_types.h</a>&gt;</span> <span class="comment">// IWYU pragma: export</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice_8h.html">grpc/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#af41160f827a3ff132755fb25658435c4">grpc_compression_algorithm_is_message</a>(</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#a053257ed8bdeba196b380f326897e25d">grpc_compression_algorithm_is_stream</a>(</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#a181bd18d294ab2bf93b10b8add9f88e2">grpc_compression_algorithm_parse</a>(</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> name, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>* algorithm);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#a177f6d6330355d5ecaffb042ab1c2c8f">grpc_compression_algorithm_name</a>(</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm, <span class="keyword">const</span> <span class="keywordtype">char</span>** name);</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; </div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="code" href="compression_8h.html#adc2d1d89d880f67aacc4ce84cd72f8f3">grpc_compression_algorithm_for_level</a>(</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> level, uint32_t accepted_encodings);</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="compression_8h.html#a2eccdbe5a4d811a7c965d6d67e5cc7d8">grpc_compression_options_init</a>(<a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="compression_8h.html#a79e61d1ac1d226b3b54b73837f28f0ff">grpc_compression_options_enable_algorithm</a>(</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="compression_8h.html#a1b58d314775a3651ee2f5f2d3ab4f6d9">grpc_compression_options_disable_algorithm</a>(</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#aba0dfe631311c3f49d1045694bc9b0df">grpc_compression_options_is_algorithm_enabled</a>(</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_COMPRESSION_H */</span><span class="preprocessor"></span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="compression__types_8h.html">grpc/impl/compression_types.h</a>&gt;</span> <span class="comment">// IWYU pragma: export</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice_8h.html">grpc/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#af41160f827a3ff132755fb25658435c4">grpc_compression_algorithm_is_message</a>(</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#a053257ed8bdeba196b380f326897e25d">grpc_compression_algorithm_is_stream</a>(</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#a181bd18d294ab2bf93b10b8add9f88e2">grpc_compression_algorithm_parse</a>(</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> name, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a>* algorithm);</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#a177f6d6330355d5ecaffb042ab1c2c8f">grpc_compression_algorithm_name</a>(</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm, <span class="keyword">const</span> <span class="keywordtype">char</span>** name);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> <a class="code" href="compression_8h.html#adc2d1d89d880f67aacc4ce84cd72f8f3">grpc_compression_algorithm_for_level</a>(</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="compression__types_8h.html#a14a79ed6b5ebd7e1dda7c2684f499cc7">grpc_compression_level</a> level, uint32_t accepted_encodings);</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="compression_8h.html#a2eccdbe5a4d811a7c965d6d67e5cc7d8">grpc_compression_options_init</a>(<a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts);</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="compression_8h.html#a79e61d1ac1d226b3b54b73837f28f0ff">grpc_compression_options_enable_algorithm</a>(</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="compression_8h.html#a1b58d314775a3651ee2f5f2d3ab4f6d9">grpc_compression_options_disable_algorithm</a>(</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">int</span> <a class="code" href="compression_8h.html#aba0dfe631311c3f49d1045694bc9b0df">grpc_compression_options_is_algorithm_enabled</a>(</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__compression__options.html">grpc_compression_options</a>* opts, <a class="code" href="compression__types_8h.html#ab9de0f68bfb1ef8ed09bd00643db14c9">grpc_compression_algorithm</a> algorithm);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_COMPRESSION_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="acompression_8h_html_a053257ed8bdeba196b380f326897e25d"><div class="ttname"><a href="compression_8h.html#a053257ed8bdeba196b380f326897e25d">grpc_compression_algorithm_is_stream</a></div><div class="ttdeci">GRPCAPI int grpc_compression_algorithm_is_stream(grpc_compression_algorithm algorithm)</div><div class="ttdoc">Return if an algorithm is stream compression algorithm.</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html_a2865c3b28ea7db75be4c725adb1edc7d"><div class="ttname"><a href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a></div><div class="ttdeci">#define GRPCAPI</div><div class="ttdef"><b>Definition:</b> port_platform.h:722</div></div>
@ -153,7 +152,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -213,7 +213,7 @@ Enumerations</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -172,7 +172,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -121,7 +121,7 @@ Enumerations</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -120,7 +120,7 @@ $(function() {
<div class="ttc" id="aconnectivity__state_8h_html_a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea"><div class="ttname"><a href="connectivity__state_8h.html#a065b65f5cdd062a67d82e2b6bcf68cf2aab01ef3f78d9236dfa3c751dc66aa7ea">GRPC_CHANNEL_READY</a></div><div class="ttdeci">@ GRPC_CHANNEL_READY</div><div class="ttdoc">channel is ready for work</div><div class="ttdef"><b>Definition:</b> connectivity_state.h:36</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -131,7 +131,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -113,7 +113,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

2811
core/credentials_8h.html Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,702 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>GRPC Core: include/grpc/credentials.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_9d7a14d6d9adcbe4c35dbdb88d867e2e.html">grpc</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">credentials.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="credentials_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright 2024 gRPC authors.</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<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>&#160;<span class="comment"> * You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<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>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<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>&#160;<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>&#160;<span class="comment"> * limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef GRPC_CREDENTIALS_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define GRPC_CREDENTIALS_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;stdbool.h&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc_8h.html">grpc/grpc.h</a>&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="grpc__security__constants_8h.html">grpc/grpc_security_constants.h</a>&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072"> 38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>;</div>
<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553"> 39</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a> <a class="code" href="credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>*</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<a class="code" href="credentials_8h.html#ae8c4bf6c9657d6e19ea1481c1ea9a5d5">grpc_service_account_jwt_access_credentials_create</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* json_key,</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="structgpr__timespec.html">gpr_timespec</a> token_lifetime,</div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#afd7a8c73d8426bba563130f33252bfcb">grpc_external_account_credentials_create</a>(</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* json_string, <span class="keyword">const</span> <span class="keywordtype">char</span>* scopes_string);</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#aa2108431aea25ab0e9bef17becff7357">grpc_google_refresh_token_credentials_create</a>(</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* json_refresh_token, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#aa64d5173a15c51fdb2d80c3c187157ca">grpc_access_token_credentials_create</a>(</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* access_token, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#a060719c0b294858858dbf41b7ec2abb5">grpc_google_iam_credentials_create</a>(</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* authorization_token, <span class="keyword">const</span> <span class="keywordtype">char</span>* authority_selector,</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html"> 84</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#ac40c27040b88f70a8a51e5a854eee68d"> 85</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#ac40c27040b88f70a8a51e5a854eee68d">token_exchange_service_uri</a>; <span class="comment">/* Required. */</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#acccf3e0c9f7f8865718fbb8e51f2d5ab"> 86</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#acccf3e0c9f7f8865718fbb8e51f2d5ab">resource</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a91d3976529603354ce8bdf92394ef074"> 87</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a91d3976529603354ce8bdf92394ef074">audience</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a1da17c75496e5debe7b89d3f43fc511b"> 88</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a1da17c75496e5debe7b89d3f43fc511b">scope</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a139402921fe862ba5c177d28c3d1ea90"> 89</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a139402921fe862ba5c177d28c3d1ea90">requested_token_type</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a26907053e134770f20c2e3506a7b3979"> 90</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a26907053e134770f20c2e3506a7b3979">subject_token_path</a>; <span class="comment">/* Required. */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a467b1184da37adc95e8180b66a3a628f"> 91</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a467b1184da37adc95e8180b66a3a628f">subject_token_type</a>; <span class="comment">/* Required. */</span></div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a6085040c96239e50ee0650bd92b2a972"> 92</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a6085040c96239e50ee0650bd92b2a972">actor_token_path</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structgrpc__sts__credentials__options.html#a238c61ccc9d4b8091d34a6e525290a4c"> 93</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__sts__credentials__options.html#a238c61ccc9d4b8091d34a6e525290a4c">actor_token_type</a>; <span class="comment">/* Optional. */</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;} <a class="code" href="structgrpc__sts__credentials__options.html">grpc_sts_credentials_options</a>;</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#aa207ea7a0454b657fa79567784ff5cbf">grpc_sts_credentials_create</a>(</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__sts__credentials__options.html">grpc_sts_credentials_options</a>* options, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html"> 105</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#a67ff8c2ebf38b5511da3d3194d72e01d"> 107</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__auth__metadata__context.html#a67ff8c2ebf38b5511da3d3194d72e01d">service_url</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#ad031faf41efeaae29c4f71d67a0d2cb3"> 112</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__auth__metadata__context.html#ad031faf41efeaae29c4f71d67a0d2cb3">method_name</a>;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#a7cb596d3af7463816fdde64f3e18dbde"> 115</a></span>&#160; <span class="keyword">const</span> <a class="code" href="credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* <a class="code" href="structgrpc__auth__metadata__context.html#a7cb596d3af7463816fdde64f3e18dbde">channel_auth_context</a>;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__context.html#a0ca2d1c0da619c1e50cef8437f1ef517"> 118</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__auth__metadata__context.html#a0ca2d1c0da619c1e50cef8437f1ef517">reserved</a>;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;} <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a7bc183a37ed9e5bda69952d1516c6a1e">grpc_auth_metadata_context_copy</a>(<a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>* from,</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>* to);</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#acfe9bcde4b5e10a77901c1900a2ad86f">grpc_auth_metadata_context_reset</a>(</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a>* context);</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="credentials_8h.html#a08c13ff956af9e64b514c4af434faba2"> 140</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="credentials_8h.html#a08c13ff956af9e64b514c4af434faba2">grpc_credentials_plugin_metadata_cb</a>)(</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">void</span>* user_data, <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* creds_md, <span class="keywordtype">size_t</span> num_creds_md,</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status, <span class="keyword">const</span> <span class="keywordtype">char</span>* error_details);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="credentials_8h.html#a33e259900dbbac0ea018352adf1a4af7"> 146</a></span>&#160;<span class="preprocessor">#define GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX 4</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html"> 153</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#af8506ea31e5709124899e4e406b4a9f1"> 172</a></span>&#160; int (*get_metadata)(</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">void</span>* state, <a class="code" href="structgrpc__auth__metadata__context.html">grpc_auth_metadata_context</a> context,</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="credentials_8h.html#a08c13ff956af9e64b514c4af434faba2">grpc_credentials_plugin_metadata_cb</a> cb, <span class="keywordtype">void</span>* user_data,</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="structgrpc__metadata.html">grpc_metadata</a> creds_md[<a class="code" href="credentials_8h.html#a33e259900dbbac0ea018352adf1a4af7">GRPC_METADATA_CREDENTIALS_PLUGIN_SYNC_MAX</a>],</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordtype">size_t</span>* num_creds_md, <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* status,</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>** error_details);</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a58e0aae253e35575146dc6b3252e8f55"> 181</a></span>&#160; <span class="keywordtype">char</span>* (*debug_string)(<span class="keywordtype">void</span>* state);</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a445b45204d00f76d957a6065cc117cc6"> 184</a></span>&#160; void (*destroy)(<span class="keywordtype">void</span>* state);</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a3b571f8cbf3cffd887dec1ed5a662571"> 187</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__metadata__credentials__plugin.html#a3b571f8cbf3cffd887dec1ed5a662571">state</a>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="structgrpc__metadata__credentials__plugin.html#a6c02843e7eff42cb3b397800bd64f2dc"> 190</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__metadata__credentials__plugin.html#a6c02843e7eff42cb3b397800bd64f2dc">type</a>;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;} <a class="code" href="structgrpc__metadata__credentials__plugin.html">grpc_metadata_credentials_plugin</a>;</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#a510d270c67754176117dcc384cb3d44f">grpc_metadata_credentials_create_from_plugin</a>(</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="structgrpc__metadata__credentials__plugin.html">grpc_metadata_credentials_plugin</a> plugin,</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a3c3165c49cd7a359ddb8656aae7e9dd6">grpc_security_level</a> min_security_level, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#aeb21611154f3defe05e4eac4cc25af5a">grpc_call_credentials_release</a>(<a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* creds);</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#a42f9cca6c01fb5d8c03c4c1e1b0fbf82">grpc_google_default_credentials_create</a>(</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* call_credentials);</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f"> 230</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html"> 234</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72"> 237</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html#a2d4e3bdbc59d906bc9ca8b873120fd72">private_key</a>;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656"> 241</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html#a483c3601705853f48dfbc8ee66d5e656">cert_chain</a>;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;} <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; </div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>*</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<a class="code" href="credentials_8h.html#a0fbb46fa71b635516037e6b265f937f5">grpc_ssl_server_certificate_config_create</a>(</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs,</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pairs,</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">size_t</span> num_key_cert_pairs);</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a077c39db13d0211eac9c6a952882bc31">grpc_ssl_server_certificate_config_destroy</a>(</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>* config);</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; </div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keyword">typedef</span> <a class="code" href="grpc__security__constants_8h.html#a4f19e93998bbda68d9c24f27673ff627">grpc_ssl_certificate_config_reload_status</a> (</div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="credentials_8h.html#a8c5f064d7d008bc46fa61e87d68898f3"> 271</a></span>&#160; *<a class="code" href="credentials_8h.html#a8c5f064d7d008bc46fa61e87d68898f3">grpc_ssl_server_certificate_config_callback</a>)(</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">void</span>* user_data, <a class="code" href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>** config);</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="structverify__peer__options.html"> 278</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="structverify__peer__options.html#afdb80b6131d0d3775010e96efcf062a3"> 285</a></span>&#160; int (*verify_peer_callback)(<span class="keyword">const</span> <span class="keywordtype">char</span>* target_name, <span class="keyword">const</span> <span class="keywordtype">char</span>* peer_pem,</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="structverify__peer__options.html#a11ac6021676266d96b66538545d277cc"> 289</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structverify__peer__options.html#a11ac6021676266d96b66538545d277cc">verify_peer_callback_userdata</a>;</div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="structverify__peer__options.html#a7dd670d8234469ba71e25a76f07caa68"> 293</a></span>&#160; void (*verify_peer_destruct)(<span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;} <a class="code" href="structverify__peer__options.html">verify_peer_options</a>;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html"> 298</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html#a8923d0f5340c92f28e2937ed78859489"> 305</a></span>&#160; int (*verify_peer_callback)(<span class="keyword">const</span> <span class="keywordtype">char</span>* target_name, <span class="keyword">const</span> <span class="keywordtype">char</span>* peer_pem,</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00309"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html#a6700c305b4af601ba4a38c05f8a9c898"> 309</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__ssl__verify__peer__options.html#a6700c305b4af601ba4a38c05f8a9c898">verify_peer_callback_userdata</a>;</div>
<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="structgrpc__ssl__verify__peer__options.html#a3c2e0c9f822bf4f55a105006ab6d9de4"> 313</a></span>&#160; void (*verify_peer_destruct)(<span class="keywordtype">void</span>* userdata);</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;} <a class="code" href="structgrpc__ssl__verify__peer__options.html">grpc_ssl_verify_peer_options</a>;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#a7440216a2192f7c5ecadf5704e7c7bda">grpc_ssl_credentials_create</a>(</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pair,</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">const</span> <a class="code" href="structverify__peer__options.html">verify_peer_options</a>* verify_options, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; </div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="comment">/* Creates an SSL credentials object.</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="comment"> The security level of the resulting connection is GRPC_PRIVACY_AND_INTEGRITY.</span></div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment"> - pem_root_certs is the NULL-terminated string containing the PEM encoding</span></div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment"> of the server root certificates. If this parameter is NULL, the</span></div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment"> implementation will first try to dereference the file pointed by the</span></div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="comment"> GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable, and if that fails,</span></div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="comment"> try to get the roots set by grpc_override_ssl_default_roots. Eventually,</span></div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;<span class="comment"> if all these fail, it will try to get the roots from a well-known place on</span></div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="comment"> disk (in the grpc install directory).</span></div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="comment"> gRPC has implemented root cache if the underlying OpenSSL library supports</span></div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="comment"> it. The gRPC root certificates cache is only applicable on the default</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="comment"> root certificates, which is used when this parameter is nullptr. If user</span></div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="comment"> provides their own pem_root_certs, when creating an SSL credential object,</span></div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="comment"> gRPC would not be able to cache it, and each subchannel will generate a</span></div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="comment"> copy of the root store. So it is recommended to avoid providing large room</span></div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="comment"> pem with pem_root_certs parameter to avoid excessive memory consumption,</span></div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="comment"> particularly on mobile platforms such as iOS.</span></div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="comment"> - pem_key_cert_pair is a pointer on the object containing client&#39;s private</span></div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;<span class="comment"> key and certificate chain. This parameter can be NULL if the client does</span></div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="comment"> not have such a key/cert pair.</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="comment"> - verify_options is an optional verify_peer_options object which holds</span></div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="comment"> additional options controlling how peer certificates are verified. For</span></div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;<span class="comment"> example, you can supply a callback which receives the peer&#39;s certificate</span></div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="comment"> with which you can do additional verification. Can be NULL, in which</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="comment"> case verification will retain default behavior. Any settings in</span></div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="comment"> verify_options are copied during this call, so the verify_options</span></div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="comment"> object can be released afterwards. */</span></div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#a57e477a6fdd9a6a66cc37614701d9088">grpc_ssl_credentials_create_ex</a>(</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pair,</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__ssl__verify__peer__options.html">grpc_ssl_verify_peer_options</a>* verify_options, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; </div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="credentials_8h.html#adde6c7d191f88997fd82fd8b54f9420e">grpc_ssl_server_credentials_create</a>(</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pairs,</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordtype">size_t</span> num_key_cert_pairs, <span class="keywordtype">int</span> force_client_auth, <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; </div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="credentials_8h.html#a5f8a4204d09f2b10a3986d25b6583a08">grpc_ssl_server_credentials_create_ex</a>(</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* pem_root_certs, <a class="code" href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a>* pem_key_cert_pairs,</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">size_t</span> num_key_cert_pairs,</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> client_certificate_request,</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8"> 410</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a></div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>;</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>*</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;<a class="code" href="credentials_8h.html#a019828123e4b76b8a13f7d8045396d28">grpc_ssl_server_credentials_create_options_using_config</a>(</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> client_certificate_request,</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a>* certificate_config);</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>*</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<a class="code" href="credentials_8h.html#a0bef5efe91a84e2c74b031759a9a7313">grpc_ssl_server_credentials_create_options_using_config_fetcher</a>(</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> client_certificate_request,</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="credentials_8h.html#a8c5f064d7d008bc46fa61e87d68898f3">grpc_ssl_server_certificate_config_callback</a> cb, <span class="keywordtype">void</span>* user_data);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; </div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#aa22779b6b4ffefc0efdaf8de4c8314a8">grpc_ssl_server_credentials_options_destroy</a>(</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <a class="code" href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>* options);</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; </div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>*</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;<a class="code" href="credentials_8h.html#aec838ac89bd393040f0c88dad25a72ca">grpc_ssl_server_credentials_create_with_options</a>(</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <a class="code" href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a>* options);</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; </div>
<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="credentials_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4"> 455</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="credentials_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4">grpc_process_auth_metadata_done_cb</a>)(</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordtype">void</span>* user_data, <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* consumed_md, <span class="keywordtype">size_t</span> num_consumed_md,</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* response_md, <span class="keywordtype">size_t</span> num_response_md,</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status, <span class="keyword">const</span> <span class="keywordtype">char</span>* error_details);</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; </div>
<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html"> 461</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html#aac9b9b7b0057c688c19fd7c5a2f2d808"> 466</a></span>&#160; void (*process)(<span class="keywordtype">void</span>* state, <a class="code" href="credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a>* context,</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__metadata.html">grpc_metadata</a>* md, <span class="keywordtype">size_t</span> num_md,</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <a class="code" href="credentials_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4">grpc_process_auth_metadata_done_cb</a> cb, <span class="keywordtype">void</span>* user_data);</div>
<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html#a33be2059783190555aee0edb42bca475"> 469</a></span>&#160; void (*destroy)(<span class="keywordtype">void</span>* state);</div>
<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="structgrpc__auth__metadata__processor.html#af85de1293dfd5e846339d5ef4b7b41dc"> 470</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__auth__metadata__processor.html#af85de1293dfd5e846339d5ef4b7b41dc">state</a>;</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;} <a class="code" href="structgrpc__auth__metadata__processor.html">grpc_auth_metadata_processor</a>;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; </div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a37da13e43ccc9b19e9f1a6051feaedc3">grpc_server_credentials_set_auth_metadata_processor</a>(</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* creds, <a class="code" href="structgrpc__auth__metadata__processor.html">grpc_auth_metadata_processor</a> processor);</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; </div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#a5fb84795d5b0306006fdb8d316262a82">grpc_composite_call_credentials_create</a>(</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* creds1, <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* creds2,</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; </div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* <a class="code" href="credentials_8h.html#af66841ff2c26a95ff9cd18ea2cdf38cb">grpc_google_compute_engine_credentials_create</a>(</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#a8e4b35968eac741831a708224e207348">grpc_composite_channel_credentials_create</a>(</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* channel_creds, <a class="code" href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a>* call_creds,</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordtype">void</span>* reserved);</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div>
<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f"> 505</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a> <a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; </div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>*</div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<a class="code" href="credentials_8h.html#adfe1c1af2f1ad4c241748f77b7f83585">grpc_alts_credentials_client_options_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; </div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>*</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<a class="code" href="credentials_8h.html#a2d689961c79ceaf254e7ba211ebe9b34">grpc_alts_credentials_server_options_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; </div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a9915a0aad4c5b287af506f1ebe3ad505">grpc_alts_credentials_client_options_add_target_service_account</a>(</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* service_account);</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a3a78f4ff1575a2c9e4a3d547b9aa2bb0">grpc_alts_credentials_options_destroy</a>(</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options);</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#ade3f89f1532e030b8f2afcf0df17b2fe">grpc_alts_credentials_create</a>(</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">const</span> <a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options);</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; </div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="credentials_8h.html#a5dde4a563a9f7b8b1fc595ecd8d357fa">grpc_alts_server_credentials_create</a>(</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keyword">const</span> <a class="code" href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a>* options);</div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; </div>
<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be"> 572</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a> <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>;</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; </div>
<div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028"> 583</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a> <a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>;</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; </div>
<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279"> 591</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a> <a class="code" href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>;</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; </div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* <a class="code" href="credentials_8h.html#a2cc13f6f55eeada1179a10e4f57aa8ec">grpc_tls_identity_pairs_create</a>();</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; </div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a68c742a2421c6078ae87fb421a1a1f47">grpc_tls_identity_pairs_add_pair</a>(<a class="code" href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* pairs,</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* private_key,</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* cert_chain);</div>
<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; </div>
<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#ac0ad89ed7803b8b71ee7f0b8d7b86a51">grpc_tls_identity_pairs_destroy</a>(<a class="code" href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* pairs);</div>
<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; </div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>*</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<a class="code" href="credentials_8h.html#af2bc85e32b46689f20d6b8fe78954146">grpc_tls_certificate_provider_static_data_create</a>(</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* root_certificate, <a class="code" href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a>* pem_key_cert_pairs);</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; </div>
<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>*</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<a class="code" href="credentials_8h.html#ab1e7fd62504654f44e2aa1be61a0e338">grpc_tls_certificate_provider_file_watcher_create</a>(</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* private_key_path, <span class="keyword">const</span> <span class="keywordtype">char</span>* identity_certificate_path,</div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* root_cert_path, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> refresh_interval_sec);</div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; </div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#aa224b04c356727ee0ea74e255e942b07">grpc_tls_certificate_provider_release</a>(</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>* provider);</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; </div>
<div class="line"><a name="l00680"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request.html"> 680</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a> {</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="comment">/* The target name of the server when the client initiates the connection. */</span></div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="comment">/* This field will be nullptr if on the server side. */</span></div>
<div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request.html#a6cef66348ced76d2eea1b3c1bf1d7fbe"> 683</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request.html#a6cef66348ced76d2eea1b3c1bf1d7fbe">target_name</a>;</div>
<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="comment">/* The information contained in the certificate chain sent from the peer. */</span></div>
<div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html"> 685</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html">peer_info</a> {</div>
<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="comment">/* The Common Name field on the peer leaf certificate. */</span></div>
<div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#ad1bfb09dd088bb196ac5f8abc358c8e0"> 687</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#ad1bfb09dd088bb196ac5f8abc358c8e0">common_name</a>;</div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="comment">/* The list of Subject Alternative Names on the peer leaf certificate. */</span></div>
<div class="line"><a name="l00689"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html"> 689</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html">san_names</a> {</div>
<div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a11297f5671b82f9dc3096bc0fa5d9bfb"> 690</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a11297f5671b82f9dc3096bc0fa5d9bfb">uri_names</a>;</div>
<div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a0747ae40496f2027313790cb6d9954fe"> 691</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a0747ae40496f2027313790cb6d9954fe">uri_names_size</a>;</div>
<div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8644b73e936abdbae4bc1ad6ab630cf9"> 692</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8644b73e936abdbae4bc1ad6ab630cf9">dns_names</a>;</div>
<div class="line"><a name="l00693"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#abb2c27c41795f8e84502c50fbdeae3cb"> 693</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#abb2c27c41795f8e84502c50fbdeae3cb">dns_names_size</a>;</div>
<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#af00cc98ef4ae7dcbc8e40834dd8ca930"> 694</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#af00cc98ef4ae7dcbc8e40834dd8ca930">email_names</a>;</div>
<div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a7b0ec0120e9ca5856329009e8be5ce07"> 695</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a7b0ec0120e9ca5856329009e8be5ce07">email_names_size</a>;</div>
<div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8174afb41e1dca8688e0208e5beb1364"> 696</a></span>&#160; <span class="keywordtype">char</span>** <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8174afb41e1dca8688e0208e5beb1364">ip_names</a>;</div>
<div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#ad900dfa0e946edbef22f71e482ec665c"> 697</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#ad900dfa0e946edbef22f71e482ec665c">ip_names_size</a>;</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; } <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a61cc5140744c3d8c37a503db430f8">san_names</a>;</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="comment">/* The raw peer leaf certificate. */</span></div>
<div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a2a625f121217eff4459c12d5263e5"> 700</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a2a625f121217eff4459c12d5263e5">peer_cert</a>;</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="comment">/* The raw peer certificate chain. Note that it is not always guaranteed to</span></div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;<span class="comment"> * get the peer full chain. For more, please refer to</span></div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;<span class="comment"> * GRPC_X509_PEM_CERT_CHAIN_PROPERTY_NAME defined in file</span></div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;<span class="comment"> * grpc_security_constants.h.</span></div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;<span class="comment"> * TODO(ZhenLian): Consider fixing this in the future. */</span></div>
<div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a59238e56ae0aefc6bf0c1e0c4698e970"> 706</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a59238e56ae0aefc6bf0c1e0c4698e970">peer_cert_full_chain</a>;</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="comment">/* The verified root cert subject.</span></div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;<span class="comment"> * This value will only be filled if the cryptographic peer certificate</span></div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;<span class="comment"> * verification was successful */</span></div>
<div class="line"><a name="l00710"></a><span class="lineno"><a class="line" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a08df5fee5502f0830fce31741f67de31"> 710</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a08df5fee5502f0830fce31741f67de31">verified_root_cert_subject</a>;</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; } <a class="code" href="structgrpc__tls__custom__verification__check__request.html#a90f27d860c67f1f61a39e964b06bfe13">peer_info</a>;</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;} <a class="code" href="credentials_8h.html#aaac530cd68851c41b8817ec9749f5df1">grpc_tls_custom_verification_check_request</a>;</div>
<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; </div>
<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="credentials_8h.html#acb2cccf44dad8776d1a0abbd36781ee7"> 723</a></span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="credentials_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a>)(</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request, <span class="keywordtype">void</span>* callback_arg,</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a> status, <span class="keyword">const</span> <span class="keywordtype">char</span>* error_details);</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; </div>
<div class="line"><a name="l00732"></a><span class="lineno"><a class="line" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138"> 732</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a> <a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>;</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; </div>
<div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html"> 740</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structgrpc__tls__certificate__verifier__external.html">grpc_tls_certificate_verifier_external</a> {</div>
<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b"> 741</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>;</div>
<div class="line"><a name="l00775"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#a6eb957132a37782a572b5c2f0a3ee532"> 775</a></span>&#160; int (*<a class="code" href="structgrpc__tls__certificate__verifier__external.html#a6eb957132a37782a572b5c2f0a3ee532">verify</a>)(<span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>,</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request,</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <a class="code" href="credentials_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a> callback,</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordtype">void</span>* callback_arg, <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* sync_status,</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordtype">char</span>** sync_error_details);</div>
<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#ad107cc92fee39f42179f4ff647469db1"> 795</a></span>&#160; void (*<a class="code" href="structgrpc__tls__certificate__verifier__external.html#ad107cc92fee39f42179f4ff647469db1">cancel</a>)(<span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>,</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request);</div>
<div class="line"><a name="l00814"></a><span class="lineno"><a class="line" href="structgrpc__tls__certificate__verifier__external.html#ad8faa48358d0336a49d7a79c42204df5"> 814</a></span>&#160; void (*<a class="code" href="structgrpc__tls__certificate__verifier__external.html#ad8faa48358d0336a49d7a79c42204df5">destruct</a>)(<span class="keywordtype">void</span>* <a class="code" href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">user_data</a>);</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;} <a class="code" href="credentials_8h.html#a02ce84a849538d46352f38553d1df8f1">grpc_tls_certificate_verifier_external</a>;</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; </div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;<a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* <a class="code" href="credentials_8h.html#a129d8fd8e77cde679368f6ae03f990d4">grpc_tls_certificate_verifier_external_create</a>(</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <a class="code" href="structgrpc__tls__certificate__verifier__external.html">grpc_tls_certificate_verifier_external</a>* external_verifier);</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; </div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* <a class="code" href="credentials_8h.html#a91c9dca2867decd1478590e7f5c380a4">grpc_tls_certificate_verifier_no_op_create</a>();</div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; </div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;<a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* <a class="code" href="credentials_8h.html#a576605b5b21536662c29d135ee19e07b">grpc_tls_certificate_verifier_host_name_create</a>();</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; </div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a08134898a71be96ee8dec28202cb35c8">grpc_tls_certificate_verifier_release</a>(</div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier);</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; </div>
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;<span class="keywordtype">int</span> <a class="code" href="credentials_8h.html#a58468125c41dff87e75921e9e24a3453">grpc_tls_certificate_verifier_verify</a>(</div>
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier,</div>
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request,</div>
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="credentials_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a> callback, <span class="keywordtype">void</span>* callback_arg,</div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <a class="code" href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a>* sync_status, <span class="keywordtype">char</span>** sync_error_details);</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; </div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a8650518e6108ff6ed8624e0c00f8a55c">grpc_tls_certificate_verifier_cancel</a>(</div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier,</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a>* request);</div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; </div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* <a class="code" href="credentials_8h.html#acf9de635e67ef9b6b41a3b72ebdbdcfc">grpc_tls_credentials_options_create</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; </div>
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;<a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#a823a0fe621fd8b638e560d84fac6fcee">grpc_tls_credentials_create</a>(</div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; </div>
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;<a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="credentials_8h.html#a1ef8332e1edf68afd4cf5a8dda804de7">grpc_tls_server_credentials_create</a>(</div>
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; </div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a92cef9c02025e01df918b0dec9938256">grpc_tls_credentials_options_set_min_tls_version</a>(</div>
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <a class="code" href="grpc__security__constants_8h.html#ab7f46c1753e3601b1de9aa31958748dd">grpc_tls_version</a> min_tls_version);</div>
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; </div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#aed7591f18880292f53ac0c4ac8b50cba">grpc_tls_credentials_options_set_max_tls_version</a>(</div>
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <a class="code" href="grpc__security__constants_8h.html#ab7f46c1753e3601b1de9aa31958748dd">grpc_tls_version</a> max_tls_version);</div>
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; </div>
<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* <a class="code" href="credentials_8h.html#a769736ae0921fefb70a8df3f97f5e1f0">grpc_tls_credentials_options_copy</a>(</div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; </div>
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a401259078f0d14f7ffa1eb16d1155f90">grpc_tls_credentials_options_destroy</a>(</div>
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; </div>
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a> <a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>;</div>
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; </div>
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#ad90140b3fe36a84b96a6a47ad7da77a7">grpc_tls_credentials_options_set_certificate_provider</a>(</div>
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options,</div>
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <a class="code" href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a>* provider);</div>
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; </div>
<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a8ff29ccc59d1f44abb524641f4c93abb">grpc_tls_credentials_options_watch_root_certs</a>(</div>
<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; </div>
<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a1e5ce0bf79a2a373b68a8d1d7e80dae2">grpc_tls_credentials_options_set_root_cert_name</a>(</div>
<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* root_cert_name);</div>
<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; </div>
<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a3e087d3840d5d2d425a6253e8f2d3f82">grpc_tls_credentials_options_watch_identity_key_cert_pairs</a>(</div>
<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options);</div>
<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; </div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a740c02c53ed078ad1ceb499124c79342">grpc_tls_credentials_options_set_identity_cert_name</a>(</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* identity_cert_name);</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; </div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a0d667304bfe61aaa0c83ef5fc739b67b">grpc_tls_credentials_options_set_cert_request_type</a>(</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options,</div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a> type);</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; </div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#af185cf6d18cc63d0d2ba7df8348b4a23">grpc_tls_credentials_options_set_crl_directory</a>(</div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* crl_directory);</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; </div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a2a1bd0a20897756471d19c9adff72338">grpc_tls_credentials_options_set_verify_server_cert</a>(</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keywordtype">int</span> verify_server_cert);</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; </div>
<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a865429446f46e48fd4729720b022e5bc">grpc_tls_credentials_options_set_send_client_ca_list</a>(</div>
<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keywordtype">bool</span> send_client_ca_list);</div>
<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; </div>
<div class="line"><a name="l01060"></a><span class="lineno"><a class="line" href="credentials_8h.html#a7008e76d9e21a435a03267390c6f8a37"> 1060</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a> <a class="code" href="credentials_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>;</div>
<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; </div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="credentials_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>* <a class="code" href="credentials_8h.html#ae175e13bfcab1b77f4cc7f193d898aff">grpc_ssl_session_cache_create_lru</a>(</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordtype">size_t</span> capacity);</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; </div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a3f83f8a3390b8b1659b719b7f47005a1">grpc_ssl_session_cache_destroy</a>(<a class="code" href="credentials_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>* cache);</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; </div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgrpc__arg.html">grpc_arg</a></div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<a class="code" href="credentials_8h.html#a4fd0dd05b90f7dcebaaacf8a0088c46f">grpc_ssl_session_cache_create_channel_arg</a>(<a class="code" href="credentials_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a>* cache);</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; </div>
<div class="line"><a name="l01080"></a><span class="lineno"><a class="line" href="credentials_8h.html#a81799db566912702502c280b163b12bc"> 1080</a></span>&#160;<span class="keyword">typedef</span> <a class="code" href="grpc__security__constants_8h.html#a90c47ae1d8c33145342170fe615fa68c">grpc_ssl_roots_override_result</a> (*<a class="code" href="credentials_8h.html#a81799db566912702502c280b163b12bc">grpc_ssl_roots_override_callback</a>)(</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordtype">char</span>** pem_root_certs);</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; </div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a44c23e47832d9cc27bb56822d66bf436">grpc_set_ssl_roots_override_callback</a>(</div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <a class="code" href="credentials_8h.html#a81799db566912702502c280b163b12bc">grpc_ssl_roots_override_callback</a> cb);</div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; </div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="structgpr__timespec.html">gpr_timespec</a> <a class="code" href="credentials_8h.html#a4274ad26c037943386451f437c768961">grpc_max_auth_token_lifetime</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; </div>
<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#a1102618931ed9019fcd46ea420d0d61e">grpc_insecure_credentials_create</a>();</div>
<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; </div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="credentials_8h.html#a13c18c9718b925cea457878eb93c4eea">grpc_insecure_server_credentials_create</a>();</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; </div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#abc5db1c10eab731ca32f825c877fd5ce">grpc_xds_credentials_create</a>(</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* fallback_credentials);</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; </div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="credentials_8h.html#a8c174b05503f727c5c020f0a6464da19">grpc_xds_server_credentials_create</a>(</div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* fallback_credentials);</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; </div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a>* <a class="code" href="credentials_8h.html#a6c5c11ac702b466c9dd0773cff01e72f">grpc_local_credentials_create</a>(</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a31d00ce5c064e1fff4261a6d6298dc11">grpc_local_connect_type</a> type);</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; </div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <a class="code" href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a>* <a class="code" href="credentials_8h.html#a39e8a41f7f9a8d7587343964b18fc464">grpc_local_server_credentials_create</a>(</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <a class="code" href="grpc__security__constants_8h.html#a31d00ce5c064e1fff4261a6d6298dc11">grpc_local_connect_type</a> type);</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; </div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a> <a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>;</div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; </div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#ab769e5404a5eb2320c8303cfaa009a0b">grpc_tls_credentials_options_set_certificate_verifier</a>(</div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options,</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <a class="code" href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a>* verifier);</div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; </div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a65dc90782c79b436ec8b824f3ebf7de8">grpc_tls_credentials_options_set_check_call_host</a>(</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keywordtype">int</span> check_call_host);</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; </div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;<a class="code" href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a> <span class="keywordtype">void</span> <a class="code" href="credentials_8h.html#a50f8a772b8c673a67b7c640e51b840da">grpc_tls_credentials_options_set_tls_session_key_log_file_path</a>(</div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <a class="code" href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a>* options, <span class="keyword">const</span> <span class="keywordtype">char</span>* path);</div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; </div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;}</div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; </div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* GRPC_CREDENTIALS_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="astructgrpc__arg_html"><div class="ttname"><a href="structgrpc__arg.html">grpc_arg</a></div><div class="ttdoc">A single argument...</div><div class="ttdef"><b>Definition:</b> grpc_types.h:102</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a93a2a625f121217eff4459c12d5263e5"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a2a625f121217eff4459c12d5263e5">grpc_tls_custom_verification_check_request::peer_info::peer_cert</a></div><div class="ttdeci">const char * peer_cert</div><div class="ttdef"><b>Definition:</b> credentials.h:700</div></div>
<div class="ttc" id="acredentials_8h_html_a5f8a4204d09f2b10a3986d25b6583a08"><div class="ttname"><a href="credentials_8h.html#a5f8a4204d09f2b10a3986d25b6583a08">grpc_ssl_server_credentials_create_ex</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_ssl_server_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs, grpc_ssl_client_certificate_request_type client_certificate_request, void *reserved)</div><div class="ttdoc">Deprecated in favor of grpc_ssl_server_credentials_create_with_options.</div></div>
<div class="ttc" id="acredentials_8h_html_a57e477a6fdd9a6a66cc37614701d9088"><div class="ttname"><a href="credentials_8h.html#a57e477a6fdd9a6a66cc37614701d9088">grpc_ssl_credentials_create_ex</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_ssl_credentials_create_ex(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const grpc_ssl_verify_peer_options *verify_options, void *reserved)</div></div>
<div class="ttc" id="acredentials_8h_html_a0bef5efe91a84e2c74b031759a9a7313"><div class="ttname"><a href="credentials_8h.html#a0bef5efe91a84e2c74b031759a9a7313">grpc_ssl_server_credentials_create_options_using_config_fetcher</a></div><div class="ttdeci">GRPCAPI grpc_ssl_server_credentials_options * grpc_ssl_server_credentials_create_options_using_config_fetcher(grpc_ssl_client_certificate_request_type client_certificate_request, grpc_ssl_server_certificate_config_callback cb, void *user_data)</div><div class="ttdoc">Creates an options object using a certificate config fetcher.</div></div>
<div class="ttc" id="acredentials_8h_html_a50f8a772b8c673a67b7c640e51b840da"><div class="ttname"><a href="credentials_8h.html#a50f8a772b8c673a67b7c640e51b840da">grpc_tls_credentials_options_set_tls_session_key_log_file_path</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_tls_session_key_log_file_path(grpc_tls_credentials_options *options, const char *path)</div><div class="ttdoc">— TLS session key logging.</div></div>
<div class="ttc" id="acredentials_8h_html_a3f83f8a3390b8b1659b719b7f47005a1"><div class="ttname"><a href="credentials_8h.html#a3f83f8a3390b8b1659b719b7f47005a1">grpc_ssl_session_cache_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_ssl_session_cache_destroy(grpc_ssl_session_cache *cache)</div><div class="ttdoc">Destroy SSL session cache.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a59238e56ae0aefc6bf0c1e0c4698e970"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a59238e56ae0aefc6bf0c1e0c4698e970">grpc_tls_custom_verification_check_request::peer_info::peer_cert_full_chain</a></div><div class="ttdeci">const char * peer_cert_full_chain</div><div class="ttdef"><b>Definition:</b> credentials.h:706</div></div>
<div class="ttc" id="astructverify__peer__options_html_a11ac6021676266d96b66538545d277cc"><div class="ttname"><a href="structverify__peer__options.html#a11ac6021676266d96b66538545d277cc">verify_peer_options::verify_peer_callback_userdata</a></div><div class="ttdeci">void * verify_peer_callback_userdata</div><div class="ttdoc">Arbitrary userdata that will be passed as the last argument to verify_peer_callback.</div><div class="ttdef"><b>Definition:</b> credentials.h:289</div></div>
<div class="ttc" id="acredentials_8h_html_aa207ea7a0454b657fa79567784ff5cbf"><div class="ttname"><a href="credentials_8h.html#aa207ea7a0454b657fa79567784ff5cbf">grpc_sts_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_sts_credentials_create(const grpc_sts_credentials_options *options, void *reserved)</div><div class="ttdoc">Creates an STS credentials following the STS Token Exchanged specified in the IETF draft https://tool...</div></div>
<div class="ttc" id="acredentials_8h_html_acb2cccf44dad8776d1a0abbd36781ee7"><div class="ttname"><a href="credentials_8h.html#acb2cccf44dad8776d1a0abbd36781ee7">grpc_tls_on_custom_verification_check_done_cb</a></div><div class="ttdeci">void(* grpc_tls_on_custom_verification_check_done_cb)(grpc_tls_custom_verification_check_request *request, void *callback_arg, grpc_status_code status, const char *error_details)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> credentials.h:723</div></div>
<div class="ttc" id="acredentials_8h_html_a129d8fd8e77cde679368f6ae03f990d4"><div class="ttname"><a href="credentials_8h.html#a129d8fd8e77cde679368f6ae03f990d4">grpc_tls_certificate_verifier_external_create</a></div><div class="ttdeci">grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_external_create(grpc_tls_certificate_verifier_external *external_verifier)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__ssl__verify__peer__options_html"><div class="ttname"><a href="structgrpc__ssl__verify__peer__options.html">grpc_ssl_verify_peer_options</a></div><div class="ttdoc">Object that holds additional peer-verification options on a secure channel.</div><div class="ttdef"><b>Definition:</b> credentials.h:298</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a26907053e134770f20c2e3506a7b3979"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a26907053e134770f20c2e3506a7b3979">grpc_sts_credentials_options::subject_token_path</a></div><div class="ttdeci">const char * subject_token_path</div><div class="ttdef"><b>Definition:</b> credentials.h:90</div></div>
<div class="ttc" id="acredentials_8h_html_adde6c7d191f88997fd82fd8b54f9420e"><div class="ttname"><a href="credentials_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">— server credentials —</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_ad107cc92fee39f42179f4ff647469db1"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#ad107cc92fee39f42179f4ff647469db1">grpc_tls_certificate_verifier_external::cancel</a></div><div class="ttdeci">void(* cancel)(void *user_data, grpc_tls_custom_verification_check_request *request)</div><div class="ttdoc">A function pointer that cleans up the caller-specified resources when the verifier is still running b...</div><div class="ttdef"><b>Definition:</b> credentials.h:795</div></div>
<div class="ttc" id="astructgrpc__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> credentials.h:237</div></div>
<div class="ttc" id="acredentials_8h_html_a8fe8a5a9b93ff8671a7843add47d57be"><div class="ttname"><a href="credentials_8h.html#a8fe8a5a9b93ff8671a7843add47d57be">grpc_tls_credentials_options</a></div><div class="ttdeci">struct grpc_tls_credentials_options grpc_tls_credentials_options</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> credentials.h:572</div></div>
<div class="ttc" id="acredentials_8h_html_adfe1c1af2f1ad4c241748f77b7f83585"><div class="ttname"><a href="credentials_8h.html#adfe1c1af2f1ad4c241748f77b7f83585">grpc_alts_credentials_client_options_create</a></div><div class="ttdeci">GRPCAPI grpc_alts_credentials_options * grpc_alts_credentials_client_options_create(void)</div><div class="ttdoc">This method creates a grpc ALTS credentials client options instance.</div></div>
<div class="ttc" id="astructgrpc__ssl__verify__peer__options_html_a6700c305b4af601ba4a38c05f8a9c898"><div class="ttname"><a href="structgrpc__ssl__verify__peer__options.html#a6700c305b4af601ba4a38c05f8a9c898">grpc_ssl_verify_peer_options::verify_peer_callback_userdata</a></div><div class="ttdeci">void * verify_peer_callback_userdata</div><div class="ttdoc">Arbitrary userdata that will be passed as the last argument to verify_peer_callback.</div><div class="ttdef"><b>Definition:</b> credentials.h:309</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html_a2865c3b28ea7db75be4c725adb1edc7d"><div class="ttname"><a href="support_2port__platform_8h.html#a2865c3b28ea7db75be4c725adb1edc7d">GRPCAPI</a></div><div class="ttdeci">#define GRPCAPI</div><div class="ttdef"><b>Definition:</b> port_platform.h:722</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_acccf3e0c9f7f8865718fbb8e51f2d5ab"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#acccf3e0c9f7f8865718fbb8e51f2d5ab">grpc_sts_credentials_options::resource</a></div><div class="ttdeci">const char * resource</div><div class="ttdef"><b>Definition:</b> credentials.h:86</div></div>
<div class="ttc" id="acredentials_8h_html_aec838ac89bd393040f0c88dad25a72ca"><div class="ttname"><a href="credentials_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="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_af00cc98ef4ae7dcbc8e40834dd8ca930"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#af00cc98ef4ae7dcbc8e40834dd8ca930">grpc_tls_custom_verification_check_request::peer_info::san_names::email_names</a></div><div class="ttdeci">char ** email_names</div><div class="ttdef"><b>Definition:</b> credentials.h:694</div></div>
<div class="ttc" id="acredentials_8h_html_acb8bbd3a6006aee7f7b254d4a91d914f"><div class="ttname"><a href="credentials_8h.html#acb8bbd3a6006aee7f7b254d4a91d914f">grpc_ssl_server_certificate_config</a></div><div class="ttdeci">struct grpc_ssl_server_certificate_config grpc_ssl_server_certificate_config</div><div class="ttdoc">Server certificate config object holds the server's public certificates and associated private keys,...</div><div class="ttdef"><b>Definition:</b> credentials.h:230</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html"><div class="ttname"><a href="structgrpc__sts__credentials__options.html">grpc_sts_credentials_options</a></div><div class="ttdoc">Options for creating STS Oauth Token Exchange credentials following the IETF draft https://tools....</div><div class="ttdef"><b>Definition:</b> credentials.h:84</div></div>
<div class="ttc" id="astructgrpc__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> credentials.h:187</div></div>
<div class="ttc" id="acredentials_8h_html_a92cef9c02025e01df918b0dec9938256"><div class="ttname"><a href="credentials_8h.html#a92cef9c02025e01df918b0dec9938256">grpc_tls_credentials_options_set_min_tls_version</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_min_tls_version(grpc_tls_credentials_options *options, grpc_tls_version min_tls_version)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="agrpc__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:73</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a91d3976529603354ce8bdf92394ef074"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a91d3976529603354ce8bdf92394ef074">grpc_sts_credentials_options::audience</a></div><div class="ttdeci">const char * audience</div><div class="ttdef"><b>Definition:</b> credentials.h:87</div></div>
<div class="ttc" id="acredentials_8h_html_aa224b04c356727ee0ea74e255e942b07"><div class="ttname"><a href="credentials_8h.html#aa224b04c356727ee0ea74e255e942b07">grpc_tls_certificate_provider_release</a></div><div class="ttdeci">GRPCAPI void grpc_tls_certificate_provider_release(grpc_tls_certificate_provider *provider)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a769736ae0921fefb70a8df3f97f5e1f0"><div class="ttname"><a href="credentials_8h.html#a769736ae0921fefb70a8df3f97f5e1f0">grpc_tls_credentials_options_copy</a></div><div class="ttdeci">GRPCAPI grpc_tls_credentials_options * grpc_tls_credentials_options_copy(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html_a67ff8c2ebf38b5511da3d3194d72e01d"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#a67ff8c2ebf38b5511da3d3194d72e01d">grpc_auth_metadata_context::service_url</a></div><div class="ttdeci">const char * service_url</div><div class="ttdoc">The fully qualifed service url.</div><div class="ttdef"><b>Definition:</b> credentials.h:107</div></div>
<div class="ttc" id="acredentials_8h_html_a2d689961c79ceaf254e7ba211ebe9b34"><div class="ttname"><a href="credentials_8h.html#a2d689961c79ceaf254e7ba211ebe9b34">grpc_alts_credentials_server_options_create</a></div><div class="ttdeci">GRPCAPI grpc_alts_credentials_options * grpc_alts_credentials_server_options_create(void)</div><div class="ttdoc">This method creates a grpc ALTS credentials server options instance.</div></div>
<div class="ttc" id="acredentials_8h_html_a0fbb46fa71b635516037e6b265f937f5"><div class="ttname"><a href="credentials_8h.html#a0fbb46fa71b635516037e6b265f937f5">grpc_ssl_server_certificate_config_create</a></div><div class="ttdeci">GRPCAPI grpc_ssl_server_certificate_config * grpc_ssl_server_certificate_config_create(const char *pem_root_certs, const grpc_ssl_pem_key_cert_pair *pem_key_cert_pairs, size_t num_key_cert_pairs)</div><div class="ttdoc">Creates a grpc_ssl_server_certificate_config object.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_ad1bfb09dd088bb196ac5f8abc358c8e0"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#ad1bfb09dd088bb196ac5f8abc358c8e0">grpc_tls_custom_verification_check_request::peer_info::common_name</a></div><div class="ttdeci">const char * common_name</div><div class="ttdef"><b>Definition:</b> credentials.h:687</div></div>
<div class="ttc" id="acredentials_8h_html_a65dc90782c79b436ec8b824f3ebf7de8"><div class="ttname"><a href="credentials_8h.html#a65dc90782c79b436ec8b824f3ebf7de8">grpc_tls_credentials_options_set_check_call_host</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_check_call_host(grpc_tls_credentials_options *options, int check_call_host)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a9915a0aad4c5b287af506f1ebe3ad505"><div class="ttname"><a href="credentials_8h.html#a9915a0aad4c5b287af506f1ebe3ad505">grpc_alts_credentials_client_options_add_target_service_account</a></div><div class="ttdeci">GRPCAPI void grpc_alts_credentials_client_options_add_target_service_account(grpc_alts_credentials_options *options, const char *service_account)</div><div class="ttdoc">This method adds a target service account to grpc client's ALTS credentials options instance.</div></div>
<div class="ttc" id="acredentials_8h_html_a3a78f4ff1575a2c9e4a3d547b9aa2bb0"><div class="ttname"><a href="credentials_8h.html#a3a78f4ff1575a2c9e4a3d547b9aa2bb0">grpc_alts_credentials_options_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_alts_credentials_options_destroy(grpc_alts_credentials_options *options)</div><div class="ttdoc">This method destroys a grpc_alts_credentials_options instance by de-allocating all of its occupied me...</div></div>
<div class="ttc" id="acredentials_8h_html_a2cc13f6f55eeada1179a10e4f57aa8ec"><div class="ttname"><a href="credentials_8h.html#a2cc13f6f55eeada1179a10e4f57aa8ec">grpc_tls_identity_pairs_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_identity_pairs * grpc_tls_identity_pairs_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a019828123e4b76b8a13f7d8045396d28"><div class="ttname"><a href="credentials_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="acredentials_8h_html_acfe9bcde4b5e10a77901c1900a2ad86f"><div class="ttname"><a href="credentials_8h.html#acfe9bcde4b5e10a77901c1900a2ad86f">grpc_auth_metadata_context_reset</a></div><div class="ttdeci">GRPCAPI void grpc_auth_metadata_context_reset(grpc_auth_metadata_context *context)</div><div class="ttdoc">Releases internal resources held by context.</div></div>
<div class="ttc" id="acredentials_8h_html_a42f9cca6c01fb5d8c03c4c1e1b0fbf82"><div class="ttname"><a href="credentials_8h.html#a42f9cca6c01fb5d8c03c4c1e1b0fbf82">grpc_google_default_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_google_default_credentials_create(grpc_call_credentials *call_credentials)</div><div class="ttdoc">Creates default credentials to connect to a google gRPC service.</div></div>
<div class="ttc" id="acredentials_8h_html_a823a0fe621fd8b638e560d84fac6fcee"><div class="ttname"><a href="credentials_8h.html#a823a0fe621fd8b638e560d84fac6fcee">grpc_tls_credentials_create</a></div><div class="ttdeci">grpc_channel_credentials * grpc_tls_credentials_create(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a5221eaf9ffa015b04d60d0005cf9b279"><div class="ttname"><a href="credentials_8h.html#a5221eaf9ffa015b04d60d0005cf9b279">grpc_tls_identity_pairs</a></div><div class="ttdeci">struct grpc_tls_identity_pairs grpc_tls_identity_pairs</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> credentials.h:591</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a8644b73e936abdbae4bc1ad6ab630cf9"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8644b73e936abdbae4bc1ad6ab630cf9">grpc_tls_custom_verification_check_request::peer_info::san_names::dns_names</a></div><div class="ttdeci">char ** dns_names</div><div class="ttdef"><b>Definition:</b> credentials.h:692</div></div>
<div class="ttc" id="acredentials_8h_html_a510d270c67754176117dcc384cb3d44f"><div class="ttname"><a href="credentials_8h.html#a510d270c67754176117dcc384cb3d44f">grpc_metadata_credentials_create_from_plugin</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_metadata_credentials_create_from_plugin(grpc_metadata_credentials_plugin plugin, grpc_security_level min_security_level, void *reserved)</div><div class="ttdoc">Creates a credentials object from a plugin with a specified minimum security level.</div></div>
<div class="ttc" id="astructgrpc__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> credentials.h:241</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a93a61cc5140744c3d8c37a503db430f8"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a93a61cc5140744c3d8c37a503db430f8">grpc_tls_custom_verification_check_request::peer_info::san_names</a></div><div class="ttdeci">struct grpc_tls_custom_verification_check_request::peer_info::san_names san_names</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html_a0ca2d1c0da619c1e50cef8437f1ef517"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#a0ca2d1c0da619c1e50cef8437f1ef517">grpc_auth_metadata_context::reserved</a></div><div class="ttdeci">void * reserved</div><div class="ttdoc">Reserved for future use.</div><div class="ttdef"><b>Definition:</b> credentials.h:118</div></div>
<div class="ttc" id="acredentials_8h_html_a0d667304bfe61aaa0c83ef5fc739b67b"><div class="ttname"><a href="credentials_8h.html#a0d667304bfe61aaa0c83ef5fc739b67b">grpc_tls_credentials_options_set_cert_request_type</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_cert_request_type(grpc_tls_credentials_options *options, grpc_ssl_client_certificate_request_type type)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html">grpc_tls_custom_verification_check_request::peer_info</a></div><div class="ttdef"><b>Definition:</b> credentials.h:685</div></div>
<div class="ttc" id="acredentials_8h_html_a077c39db13d0211eac9c6a952882bc31"><div class="ttname"><a href="credentials_8h.html#a077c39db13d0211eac9c6a952882bc31">grpc_ssl_server_certificate_config_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_ssl_server_certificate_config_destroy(grpc_ssl_server_certificate_config *config)</div><div class="ttdoc">Destroys a grpc_ssl_server_certificate_config object.</div></div>
<div class="ttc" id="acredentials_8h_html_a8c174b05503f727c5c020f0a6464da19"><div class="ttname"><a href="credentials_8h.html#a8c174b05503f727c5c020f0a6464da19">grpc_xds_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_xds_server_credentials_create(grpc_server_credentials *fallback_credentials)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_aa2108431aea25ab0e9bef17becff7357"><div class="ttname"><a href="credentials_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="acredentials_8h_html_a58468125c41dff87e75921e9e24a3453"><div class="ttname"><a href="credentials_8h.html#a58468125c41dff87e75921e9e24a3453">grpc_tls_certificate_verifier_verify</a></div><div class="ttdeci">int grpc_tls_certificate_verifier_verify(grpc_tls_certificate_verifier *verifier, grpc_tls_custom_verification_check_request *request, grpc_tls_on_custom_verification_check_done_cb callback, void *callback_arg, grpc_status_code *sync_status, char **sync_error_details)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_aa22779b6b4ffefc0efdaf8de4c8314a8"><div class="ttname"><a href="credentials_8h.html#aa22779b6b4ffefc0efdaf8de4c8314a8">grpc_ssl_server_credentials_options_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_ssl_server_credentials_options_destroy(grpc_ssl_server_credentials_options *options)</div><div class="ttdoc">Destroys a grpc_ssl_server_credentials_options object.</div></div>
<div class="ttc" id="acredentials_8h_html_abc5db1c10eab731ca32f825c877fd5ce"><div class="ttname"><a href="credentials_8h.html#abc5db1c10eab731ca32f825c877fd5ce">grpc_xds_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_xds_credentials_create(grpc_channel_credentials *fallback_credentials)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__metadata_html"><div class="ttname"><a href="structgrpc__metadata.html">grpc_metadata</a></div><div class="ttdoc">A single metadata element.</div><div class="ttdef"><b>Definition:</b> grpc_types.h:210</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a11297f5671b82f9dc3096bc0fa5d9bfb"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a11297f5671b82f9dc3096bc0fa5d9bfb">grpc_tls_custom_verification_check_request::peer_info::san_names::uri_names</a></div><div class="ttdeci">char ** uri_names</div><div class="ttdef"><b>Definition:</b> credentials.h:690</div></div>
<div class="ttc" id="astructgrpc__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> credentials.h:112</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html">grpc_tls_certificate_verifier_external</a></div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> credentials.h:740</div></div>
<div class="ttc" id="acredentials_8h_html_a33e259900dbbac0ea018352adf1a4af7"><div class="ttname"><a href="credentials_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> credentials.h:146</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_ad900dfa0e946edbef22f71e482ec665c"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#ad900dfa0e946edbef22f71e482ec665c">grpc_tls_custom_verification_check_request::peer_info::san_names::ip_names_size</a></div><div class="ttdeci">size_t ip_names_size</div><div class="ttdef"><b>Definition:</b> credentials.h:697</div></div>
<div class="ttc" id="acredentials_8h_html_a1102618931ed9019fcd46ea420d0d61e"><div class="ttname"><a href="credentials_8h.html#a1102618931ed9019fcd46ea420d0d61e">grpc_insecure_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_insecure_credentials_create()</div><div class="ttdoc">— insecure credentials —</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_html_a6cef66348ced76d2eea1b3c1bf1d7fbe"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request.html#a6cef66348ced76d2eea1b3c1bf1d7fbe">grpc_tls_custom_verification_check_request::target_name</a></div><div class="ttdeci">const char * target_name</div><div class="ttdef"><b>Definition:</b> credentials.h:683</div></div>
<div class="ttc" id="acredentials_8h_html_a5fb84795d5b0306006fdb8d316262a82"><div class="ttname"><a href="credentials_8h.html#a5fb84795d5b0306006fdb8d316262a82">grpc_composite_call_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_composite_call_credentials_create(grpc_call_credentials *creds1, grpc_call_credentials *creds2, void *reserved)</div><div class="ttdoc">— composite credentials —</div></div>
<div class="ttc" id="agrpc_8h_html_ab4ed40ea84a2f70ffd81a84bd8ee634b"><div class="ttname"><a href="grpc_8h.html#ab4ed40ea84a2f70ffd81a84bd8ee634b">grpc_channel_credentials</a></div><div class="ttdeci">struct grpc_channel_credentials grpc_channel_credentials</div><div class="ttdoc">— grpc_channel_credentials object.</div><div class="ttdef"><b>Definition:</b> grpc.h:287</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a6085040c96239e50ee0650bd92b2a972"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a6085040c96239e50ee0650bd92b2a972">grpc_sts_credentials_options::actor_token_path</a></div><div class="ttdeci">const char * actor_token_path</div><div class="ttdef"><b>Definition:</b> credentials.h:92</div></div>
<div class="ttc" id="acredentials_8h_html_ab1e7fd62504654f44e2aa1be61a0e338"><div class="ttname"><a href="credentials_8h.html#ab1e7fd62504654f44e2aa1be61a0e338">grpc_tls_certificate_provider_file_watcher_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_certificate_provider * grpc_tls_certificate_provider_file_watcher_create(const char *private_key_path, const char *identity_certificate_path, const char *root_cert_path, unsigned int refresh_interval_sec)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_aa13f0724cb7ff99995d7f0881c01d553"><div class="ttname"><a href="credentials_8h.html#aa13f0724cb7ff99995d7f0881c01d553">grpc_auth_context</a></div><div class="ttdeci">struct grpc_auth_context grpc_auth_context</div><div class="ttdef"><b>Definition:</b> credentials.h:39</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a1da17c75496e5debe7b89d3f43fc511b"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a1da17c75496e5debe7b89d3f43fc511b">grpc_sts_credentials_options::scope</a></div><div class="ttdeci">const char * scope</div><div class="ttdef"><b>Definition:</b> credentials.h:88</div></div>
<div class="ttc" id="acredentials_8h_html_a1e5ce0bf79a2a373b68a8d1d7e80dae2"><div class="ttname"><a href="credentials_8h.html#a1e5ce0bf79a2a373b68a8d1d7e80dae2">grpc_tls_credentials_options_set_root_cert_name</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_root_cert_name(grpc_tls_credentials_options *options, const char *root_cert_name)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a02ce84a849538d46352f38553d1df8f1"><div class="ttname"><a href="credentials_8h.html#a02ce84a849538d46352f38553d1df8f1">grpc_tls_certificate_verifier_external</a></div><div class="ttdeci">struct grpc_tls_certificate_verifier_external grpc_tls_certificate_verifier_external</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astatus_8h_html_a35ab2a68917eb836de84cb23253108eb"><div class="ttname"><a href="status_8h.html#a35ab2a68917eb836de84cb23253108eb">grpc_status_code</a></div><div class="ttdeci">grpc_status_code</div><div class="ttdef"><b>Definition:</b> status.h:28</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_ad8faa48358d0336a49d7a79c42204df5"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#ad8faa48358d0336a49d7a79c42204df5">grpc_tls_certificate_verifier_external::destruct</a></div><div class="ttdeci">void(* destruct)(void *user_data)</div><div class="ttdoc">A function pointer that does some additional destruction work when the verifier is destroyed.</div><div class="ttdef"><b>Definition:</b> credentials.h:814</div></div>
<div class="ttc" id="agrpc_8h_html"><div class="ttname"><a href="grpc_8h.html">grpc.h</a></div></div>
<div class="ttc" id="agrpc__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:66</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_a4426af18abaac5dde24da04e796d251b"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#a4426af18abaac5dde24da04e796d251b">grpc_tls_certificate_verifier_external::user_data</a></div><div class="ttdeci">void * user_data</div><div class="ttdef"><b>Definition:</b> credentials.h:741</div></div>
<div class="ttc" id="acredentials_8h_html_acf9de635e67ef9b6b41a3b72ebdbdcfc"><div class="ttname"><a href="credentials_8h.html#acf9de635e67ef9b6b41a3b72ebdbdcfc">grpc_tls_credentials_options_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_credentials_options * grpc_tls_credentials_options_create(void)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__tls__certificate__verifier__external_html_a6eb957132a37782a572b5c2f0a3ee532"><div class="ttname"><a href="structgrpc__tls__certificate__verifier__external.html#a6eb957132a37782a572b5c2f0a3ee532">grpc_tls_certificate_verifier_external::verify</a></div><div class="ttdeci">int(* verify)(void *user_data, grpc_tls_custom_verification_check_request *request, grpc_tls_on_custom_verification_check_done_cb callback, void *callback_arg, grpc_status_code *sync_status, char **sync_error_details)</div><div class="ttdoc">A function pointer containing the verification logic that will be performed after the TLS handshake i...</div><div class="ttdef"><b>Definition:</b> credentials.h:775</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a0747ae40496f2027313790cb6d9954fe"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a0747ae40496f2027313790cb6d9954fe">grpc_tls_custom_verification_check_request::peer_info::san_names::uri_names_size</a></div><div class="ttdeci">size_t uri_names_size</div><div class="ttdef"><b>Definition:</b> credentials.h:691</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html_a29ffe63a8bb3b4945ecab42d82758f09"><div class="ttname"><a href="grpc__security__constants_8h.html#a29ffe63a8bb3b4945ecab42d82758f09">grpc_ssl_client_certificate_request_type</a></div><div class="ttdeci">grpc_ssl_client_certificate_request_type</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:79</div></div>
<div class="ttc" id="acredentials_8h_html_a44c23e47832d9cc27bb56822d66bf436"><div class="ttname"><a href="credentials_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="agrpc__security__constants_8h_html_ab7f46c1753e3601b1de9aa31958748dd"><div class="ttname"><a href="grpc__security__constants_8h.html#ab7f46c1753e3601b1de9aa31958748dd">grpc_tls_version</a></div><div class="ttdeci">grpc_tls_version</div><div class="ttdoc">The TLS versions that are supported by the SSL stack.</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:146</div></div>
<div class="ttc" id="astructgrpc__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> credentials.h:153</div></div>
<div class="ttc" id="acredentials_8h_html_a4fd0dd05b90f7dcebaaacf8a0088c46f"><div class="ttname"><a href="credentials_8h.html#a4fd0dd05b90f7dcebaaacf8a0088c46f">grpc_ssl_session_cache_create_channel_arg</a></div><div class="ttdeci">GRPCAPI grpc_arg grpc_ssl_session_cache_create_channel_arg(grpc_ssl_session_cache *cache)</div><div class="ttdoc">Create a channel arg with the given cache object.</div></div>
<div class="ttc" id="acredentials_8h_html_aed7591f18880292f53ac0c4ac8b50cba"><div class="ttname"><a href="credentials_8h.html#aed7591f18880292f53ac0c4ac8b50cba">grpc_tls_credentials_options_set_max_tls_version</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_max_tls_version(grpc_tls_credentials_options *options, grpc_tls_version max_tls_version)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_ade3f89f1532e030b8f2afcf0df17b2fe"><div class="ttname"><a href="credentials_8h.html#ade3f89f1532e030b8f2afcf0df17b2fe">grpc_alts_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_alts_credentials_create(const grpc_alts_credentials_options *options)</div><div class="ttdoc">This method creates an ALTS channel credential object.</div></div>
<div class="ttc" id="acredentials_8h_html_ab769e5404a5eb2320c8303cfaa009a0b"><div class="ttname"><a href="credentials_8h.html#ab769e5404a5eb2320c8303cfaa009a0b">grpc_tls_credentials_options_set_certificate_verifier</a></div><div class="ttdeci">void grpc_tls_credentials_options_set_certificate_verifier(grpc_tls_credentials_options *options, grpc_tls_certificate_verifier *verifier)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_ac40c27040b88f70a8a51e5a854eee68d"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#ac40c27040b88f70a8a51e5a854eee68d">grpc_sts_credentials_options::token_exchange_service_uri</a></div><div class="ttdeci">const char * token_exchange_service_uri</div><div class="ttdef"><b>Definition:</b> credentials.h:85</div></div>
<div class="ttc" id="acredentials_8h_html_a8e4b35968eac741831a708224e207348"><div class="ttname"><a href="credentials_8h.html#a8e4b35968eac741831a708224e207348">grpc_composite_channel_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_composite_channel_credentials_create(grpc_channel_credentials *channel_creds, grpc_call_credentials *call_creds, void *reserved)</div><div class="ttdoc">Creates a composite channel credentials object.</div></div>
<div class="ttc" id="acredentials_8h_html_a5dde4a563a9f7b8b1fc595ecd8d357fa"><div class="ttname"><a href="credentials_8h.html#a5dde4a563a9f7b8b1fc595ecd8d357fa">grpc_alts_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_alts_server_credentials_create(const grpc_alts_credentials_options *options)</div><div class="ttdoc">This method creates an ALTS server credential object.</div></div>
<div class="ttc" id="acredentials_8h_html_a7008e76d9e21a435a03267390c6f8a37"><div class="ttname"><a href="credentials_8h.html#a7008e76d9e21a435a03267390c6f8a37">grpc_ssl_session_cache</a></div><div class="ttdeci">struct grpc_ssl_session_cache grpc_ssl_session_cache</div><div class="ttdoc">— SSL Session Cache.</div><div class="ttdef"><b>Definition:</b> credentials.h:1060</div></div>
<div class="ttc" id="astructverify__peer__options_html"><div class="ttname"><a href="structverify__peer__options.html">verify_peer_options</a></div><div class="ttdoc">Deprecated in favor of grpc_ssl_verify_peer_options.</div><div class="ttdef"><b>Definition:</b> credentials.h:278</div></div>
<div class="ttc" id="acredentials_8h_html_a08c13ff956af9e64b514c4af434faba2"><div class="ttname"><a href="credentials_8h.html#a08c13ff956af9e64b514c4af434faba2">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> credentials.h:140</div></div>
<div class="ttc" id="acredentials_8h_html_af2bc85e32b46689f20d6b8fe78954146"><div class="ttname"><a href="credentials_8h.html#af2bc85e32b46689f20d6b8fe78954146">grpc_tls_certificate_provider_static_data_create</a></div><div class="ttdeci">GRPCAPI grpc_tls_certificate_provider * grpc_tls_certificate_provider_static_data_create(const char *root_certificate, grpc_tls_identity_pairs *pem_key_cert_pairs)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a8174afb41e1dca8688e0208e5beb1364"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a8174afb41e1dca8688e0208e5beb1364">grpc_tls_custom_verification_check_request::peer_info::san_names::ip_names</a></div><div class="ttdeci">char ** ip_names</div><div class="ttdef"><b>Definition:</b> credentials.h:696</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html">grpc_tls_custom_verification_check_request::peer_info::san_names</a></div><div class="ttdef"><b>Definition:</b> credentials.h:689</div></div>
<div class="ttc" id="acredentials_8h_html_a13c18c9718b925cea457878eb93c4eea"><div class="ttname"><a href="credentials_8h.html#a13c18c9718b925cea457878eb93c4eea">grpc_insecure_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_insecure_server_credentials_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a740c02c53ed078ad1ceb499124c79342"><div class="ttname"><a href="credentials_8h.html#a740c02c53ed078ad1ceb499124c79342">grpc_tls_credentials_options_set_identity_cert_name</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_identity_cert_name(grpc_tls_credentials_options *options, const char *identity_cert_name)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a08134898a71be96ee8dec28202cb35c8"><div class="ttname"><a href="credentials_8h.html#a08134898a71be96ee8dec28202cb35c8">grpc_tls_certificate_verifier_release</a></div><div class="ttdeci">void grpc_tls_certificate_verifier_release(grpc_tls_certificate_verifier *verifier)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_aa64d5173a15c51fdb2d80c3c187157ca"><div class="ttname"><a href="credentials_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 acquired by an out of band m...</div></div>
<div class="ttc" id="acredentials_8h_html_a7bc183a37ed9e5bda69952d1516c6a1e"><div class="ttname"><a href="credentials_8h.html#a7bc183a37ed9e5bda69952d1516c6a1e">grpc_auth_metadata_context_copy</a></div><div class="ttdeci">GRPCAPI void grpc_auth_metadata_context_copy(grpc_auth_metadata_context *from, grpc_auth_metadata_context *to)</div><div class="ttdoc">Performs a deep copy from from to to.</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html_a3c3165c49cd7a359ddb8656aae7e9dd6"><div class="ttname"><a href="grpc__security__constants_8h.html#a3c3165c49cd7a359ddb8656aae7e9dd6">grpc_security_level</a></div><div class="ttdeci">grpc_security_level</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:131</div></div>
<div class="ttc" id="acredentials_8h_html_a8c5f064d7d008bc46fa61e87d68898f3"><div class="ttname"><a href="credentials_8h.html#a8c5f064d7d008bc46fa61e87d68898f3">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> credentials.h:271</div></div>
<div class="ttc" id="acredentials_8h_html_ae8c4bf6c9657d6e19ea1481c1ea9a5d5"><div class="ttname"><a href="credentials_8h.html#ae8c4bf6c9657d6e19ea1481c1ea9a5d5">grpc_service_account_jwt_access_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_service_account_jwt_access_credentials_create(const char *json_key, gpr_timespec token_lifetime, void *reserved)</div><div class="ttdoc">Creates a JWT credentials object.</div></div>
<div class="ttc" id="acredentials_8h_html_af185cf6d18cc63d0d2ba7df8348b4a23"><div class="ttname"><a href="credentials_8h.html#af185cf6d18cc63d0d2ba7df8348b4a23">grpc_tls_credentials_options_set_crl_directory</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_crl_directory(grpc_tls_credentials_options *options, const char *crl_directory)</div><div class="ttdoc">Deprecated in favor of grpc_tls_credentials_options_set_crl_provider.</div></div>
<div class="ttc" id="astructgrpc__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> credentials.h:190</div></div>
<div class="ttc" id="acredentials_8h_html_a7440216a2192f7c5ecadf5704e7c7bda"><div class="ttname"><a href="credentials_8h.html#a7440216a2192f7c5ecadf5704e7c7bda">grpc_ssl_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_ssl_credentials_create(const char *pem_root_certs, grpc_ssl_pem_key_cert_pair *pem_key_cert_pair, const verify_peer_options *verify_options, void *reserved)</div><div class="ttdoc">Deprecated in favor of grpc_ssl_server_credentials_create_ex.</div></div>
<div class="ttc" id="acredentials_8h_html_a6c5c11ac702b466c9dd0773cff01e72f"><div class="ttname"><a href="credentials_8h.html#a6c5c11ac702b466c9dd0773cff01e72f">grpc_local_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_channel_credentials * grpc_local_credentials_create(grpc_local_connect_type type)</div><div class="ttdoc">— Local channel/server credentials —</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__context_html_a7cb596d3af7463816fdde64f3e18dbde"><div class="ttname"><a href="structgrpc__auth__metadata__context.html#a7cb596d3af7463816fdde64f3e18dbde">grpc_auth_metadata_context::channel_auth_context</a></div><div class="ttdeci">const grpc_auth_context * channel_auth_context</div><div class="ttdoc">The auth_context of the channel which gives the server's identity.</div><div class="ttdef"><b>Definition:</b> credentials.h:115</div></div>
<div class="ttc" id="acredentials_8h_html_ad90140b3fe36a84b96a6a47ad7da77a7"><div class="ttname"><a href="credentials_8h.html#ad90140b3fe36a84b96a6a47ad7da77a7">grpc_tls_credentials_options_set_certificate_provider</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_certificate_provider(grpc_tls_credentials_options *options, grpc_tls_certificate_provider *provider)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a139402921fe862ba5c177d28c3d1ea90"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a139402921fe862ba5c177d28c3d1ea90">grpc_sts_credentials_options::requested_token_type</a></div><div class="ttdeci">const char * requested_token_type</div><div class="ttdef"><b>Definition:</b> credentials.h:89</div></div>
<div class="ttc" id="acredentials_8h_html_ae175e13bfcab1b77f4cc7f193d898aff"><div class="ttname"><a href="credentials_8h.html#ae175e13bfcab1b77f4cc7f193d898aff">grpc_ssl_session_cache_create_lru</a></div><div class="ttdeci">GRPCAPI grpc_ssl_session_cache * grpc_ssl_session_cache_create_lru(size_t capacity)</div><div class="ttdoc">Create LRU cache for client-side SSL sessions with the given capacity.</div></div>
<div class="ttc" id="acredentials_8h_html_a34b93b8c1e0dbdaae9dc11bbce706cb4"><div class="ttname"><a href="credentials_8h.html#a34b93b8c1e0dbdaae9dc11bbce706cb4">grpc_process_auth_metadata_done_cb</a></div><div class="ttdeci">void(* grpc_process_auth_metadata_done_cb)(void *user_data, const grpc_metadata *consumed_md, size_t num_consumed_md, const grpc_metadata *response_md, size_t num_response_md, grpc_status_code status, const char *error_details)</div><div class="ttdoc">— Auth Metadata Processing —</div><div class="ttdef"><b>Definition:</b> credentials.h:455</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_abb2c27c41795f8e84502c50fbdeae3cb"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#abb2c27c41795f8e84502c50fbdeae3cb">grpc_tls_custom_verification_check_request::peer_info::san_names::dns_names_size</a></div><div class="ttdeci">size_t dns_names_size</div><div class="ttdef"><b>Definition:</b> credentials.h:693</div></div>
<div class="ttc" id="acredentials_8h_html_a81799db566912702502c280b163b12bc"><div class="ttname"><a href="credentials_8h.html#a81799db566912702502c280b163b12bc">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> credentials.h:1080</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__processor_html"><div class="ttname"><a href="structgrpc__auth__metadata__processor.html">grpc_auth_metadata_processor</a></div><div class="ttdoc">Pluggable server-side metadata processor object.</div><div class="ttdef"><b>Definition:</b> credentials.h:461</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html"><div class="ttname"><a href="grpc__security__constants_8h.html">grpc_security_constants.h</a></div></div>
<div class="ttc" id="acredentials_8h_html_a576605b5b21536662c29d135ee19e07b"><div class="ttname"><a href="credentials_8h.html#a576605b5b21536662c29d135ee19e07b">grpc_tls_certificate_verifier_host_name_create</a></div><div class="ttdeci">grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_host_name_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a1ef8332e1edf68afd4cf5a8dda804de7"><div class="ttname"><a href="credentials_8h.html#a1ef8332e1edf68afd4cf5a8dda804de7">grpc_tls_server_credentials_create</a></div><div class="ttdeci">grpc_server_credentials * grpc_tls_server_credentials_create(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a3e087d3840d5d2d425a6253e8f2d3f82"><div class="ttname"><a href="credentials_8h.html#a3e087d3840d5d2d425a6253e8f2d3f82">grpc_tls_credentials_options_watch_identity_key_cert_pairs</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_watch_identity_key_cert_pairs(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a2a1bd0a20897756471d19c9adff72338"><div class="ttname"><a href="credentials_8h.html#a2a1bd0a20897756471d19c9adff72338">grpc_tls_credentials_options_set_verify_server_cert</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_verify_server_cert(grpc_tls_credentials_options *options, int verify_server_cert)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a4274ad26c037943386451f437c768961"><div class="ttname"><a href="credentials_8h.html#a4274ad26c037943386451f437c768961">grpc_max_auth_token_lifetime</a></div><div class="ttdeci">GRPCAPI gpr_timespec grpc_max_auth_token_lifetime(void)</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_html"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request.html">grpc_tls_custom_verification_check_request</a></div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> credentials.h:680</div></div>
<div class="ttc" id="acredentials_8h_html_a2350ef1b38c4f69d0ff8510dcbe40072"><div class="ttname"><a href="credentials_8h.html#a2350ef1b38c4f69d0ff8510dcbe40072">grpc_call_credentials</a></div><div class="ttdeci">struct grpc_call_credentials grpc_call_credentials</div><div class="ttdoc">— grpc_call_credentials object —</div><div class="ttdef"><b>Definition:</b> credentials.h:38</div></div>
<div class="ttc" id="acredentials_8h_html_afd7a8c73d8426bba563130f33252bfcb"><div class="ttname"><a href="credentials_8h.html#afd7a8c73d8426bba563130f33252bfcb">grpc_external_account_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_external_account_credentials_create(const char *json_string, const char *scopes_string)</div><div class="ttdoc">Builds External Account credentials.</div></div>
<div class="ttc" id="acredentials_8h_html_a196ff73c6ff0dc0d7846635e02016b0f"><div class="ttname"><a href="credentials_8h.html#a196ff73c6ff0dc0d7846635e02016b0f">grpc_alts_credentials_options</a></div><div class="ttdeci">struct grpc_alts_credentials_options grpc_alts_credentials_options</div><div class="ttdoc">— ALTS channel/server credentials —</div><div class="ttdef"><b>Definition:</b> credentials.h:505</div></div>
<div class="ttc" id="acredentials_8h_html_ac0ad89ed7803b8b71ee7f0b8d7b86a51"><div class="ttname"><a href="credentials_8h.html#ac0ad89ed7803b8b71ee7f0b8d7b86a51">grpc_tls_identity_pairs_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_tls_identity_pairs_destroy(grpc_tls_identity_pairs *pairs)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a238c61ccc9d4b8091d34a6e525290a4c"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a238c61ccc9d4b8091d34a6e525290a4c">grpc_sts_credentials_options::actor_token_type</a></div><div class="ttdeci">const char * actor_token_type</div><div class="ttdef"><b>Definition:</b> credentials.h:93</div></div>
<div class="ttc" id="acredentials_8h_html_a865429446f46e48fd4729720b022e5bc"><div class="ttname"><a href="credentials_8h.html#a865429446f46e48fd4729720b022e5bc">grpc_tls_credentials_options_set_send_client_ca_list</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_set_send_client_ca_list(grpc_tls_credentials_options *options, bool send_client_ca_list)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a37da13e43ccc9b19e9f1a6051feaedc3"><div class="ttname"><a href="credentials_8h.html#a37da13e43ccc9b19e9f1a6051feaedc3">grpc_server_credentials_set_auth_metadata_processor</a></div><div class="ttdeci">GRPCAPI void grpc_server_credentials_set_auth_metadata_processor(grpc_server_credentials *creds, grpc_auth_metadata_processor processor)</div></div>
<div class="ttc" id="astructgpr__timespec_html"><div class="ttname"><a href="structgpr__timespec.html">gpr_timespec</a></div><div class="ttdoc">Analogous to struct timespec.</div><div class="ttdef"><b>Definition:</b> time.h:48</div></div>
<div class="ttc" id="agrpc_8h_html_aa724192e56fdc03827846f16752deccc"><div class="ttname"><a href="grpc_8h.html#aa724192e56fdc03827846f16752deccc">grpc_server_credentials</a></div><div class="ttdeci">struct grpc_server_credentials grpc_server_credentials</div><div class="ttdoc">— grpc_server_credentials object.</div><div class="ttdef"><b>Definition:</b> grpc.h:299</div></div>
<div class="ttc" id="acredentials_8h_html_afc10060e41d23b0e31f5c5a312d49138"><div class="ttname"><a href="credentials_8h.html#afc10060e41d23b0e31f5c5a312d49138">grpc_tls_certificate_verifier</a></div><div class="ttdeci">struct grpc_tls_certificate_verifier grpc_tls_certificate_verifier</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div><div class="ttdef"><b>Definition:</b> credentials.h:732</div></div>
<div class="ttc" id="acredentials_8h_html_aeb21611154f3defe05e4eac4cc25af5a"><div class="ttname"><a href="credentials_8h.html#aeb21611154f3defe05e4eac4cc25af5a">grpc_call_credentials_release</a></div><div class="ttdeci">GRPCAPI void grpc_call_credentials_release(grpc_call_credentials *creds)</div><div class="ttdoc">— channel credentials —</div></div>
<div class="ttc" id="astructgrpc__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> credentials.h:105</div></div>
<div class="ttc" id="acredentials_8h_html_aaac530cd68851c41b8817ec9749f5df1"><div class="ttname"><a href="credentials_8h.html#aaac530cd68851c41b8817ec9749f5df1">grpc_tls_custom_verification_check_request</a></div><div class="ttdeci">struct grpc_tls_custom_verification_check_request grpc_tls_custom_verification_check_request</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__sts__credentials__options_html_a467b1184da37adc95e8180b66a3a628f"><div class="ttname"><a href="structgrpc__sts__credentials__options.html#a467b1184da37adc95e8180b66a3a628f">grpc_sts_credentials_options::subject_token_type</a></div><div class="ttdeci">const char * subject_token_type</div><div class="ttdef"><b>Definition:</b> credentials.h:91</div></div>
<div class="ttc" id="acredentials_8h_html_a8ff29ccc59d1f44abb524641f4c93abb"><div class="ttname"><a href="credentials_8h.html#a8ff29ccc59d1f44abb524641f4c93abb">grpc_tls_credentials_options_watch_root_certs</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_watch_root_certs(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_html_a90f27d860c67f1f61a39e964b06bfe13"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request.html#a90f27d860c67f1f61a39e964b06bfe13">grpc_tls_custom_verification_check_request::peer_info</a></div><div class="ttdeci">struct grpc_tls_custom_verification_check_request::peer_info peer_info</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_html_a08df5fee5502f0830fce31741f67de31"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info.html#a08df5fee5502f0830fce31741f67de31">grpc_tls_custom_verification_check_request::peer_info::verified_root_cert_subject</a></div><div class="ttdeci">const char * verified_root_cert_subject</div><div class="ttdef"><b>Definition:</b> credentials.h:710</div></div>
<div class="ttc" id="acredentials_8h_html_a401259078f0d14f7ffa1eb16d1155f90"><div class="ttname"><a href="credentials_8h.html#a401259078f0d14f7ffa1eb16d1155f90">grpc_tls_credentials_options_destroy</a></div><div class="ttdeci">GRPCAPI void grpc_tls_credentials_options_destroy(grpc_tls_credentials_options *options)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_ab7eb1d297905525b6c1f0508de55c028"><div class="ttname"><a href="credentials_8h.html#ab7eb1d297905525b6c1f0508de55c028">grpc_tls_certificate_provider</a></div><div class="ttdeci">struct grpc_tls_certificate_provider grpc_tls_certificate_provider</div><div class="ttdoc">— TLS channel/server credentials — It is used for experimental purpose for now and subject to change.</div><div class="ttdef"><b>Definition:</b> credentials.h:583</div></div>
<div class="ttc" id="agrpc__security__constants_8h_html_a31d00ce5c064e1fff4261a6d6298dc11"><div class="ttname"><a href="grpc__security__constants_8h.html#a31d00ce5c064e1fff4261a6d6298dc11">grpc_local_connect_type</a></div><div class="ttdeci">grpc_local_connect_type</div><div class="ttdoc">Type of local connections for which local channel/server credentials will be applied.</div><div class="ttdef"><b>Definition:</b> grpc_security_constants.h:143</div></div>
<div class="ttc" id="acredentials_8h_html_a060719c0b294858858dbf41b7ec2abb5"><div class="ttname"><a href="credentials_8h.html#a060719c0b294858858dbf41b7ec2abb5">grpc_google_iam_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_call_credentials * grpc_google_iam_credentials_create(const char *authorization_token, const char *authority_selector, void *reserved)</div><div class="ttdoc">Creates an IAM credentials object for connecting to Google.</div></div>
<div class="ttc" id="astructgrpc__ssl__pem__key__cert__pair_html"><div class="ttname"><a href="structgrpc__ssl__pem__key__cert__pair.html">grpc_ssl_pem_key_cert_pair</a></div><div class="ttdoc">Object that holds a private key / certificate chain pair in PEM format.</div><div class="ttdef"><b>Definition:</b> credentials.h:234</div></div>
<div class="ttc" id="astructgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names_html_a7b0ec0120e9ca5856329009e8be5ce07"><div class="ttname"><a href="structgrpc__tls__custom__verification__check__request_1_1peer__info_1_1san__names.html#a7b0ec0120e9ca5856329009e8be5ce07">grpc_tls_custom_verification_check_request::peer_info::san_names::email_names_size</a></div><div class="ttdeci">size_t email_names_size</div><div class="ttdef"><b>Definition:</b> credentials.h:695</div></div>
<div class="ttc" id="acredentials_8h_html_a8650518e6108ff6ed8624e0c00f8a55c"><div class="ttname"><a href="credentials_8h.html#a8650518e6108ff6ed8624e0c00f8a55c">grpc_tls_certificate_verifier_cancel</a></div><div class="ttdeci">void grpc_tls_certificate_verifier_cancel(grpc_tls_certificate_verifier *verifier, grpc_tls_custom_verification_check_request *request)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_ade0da78380603c2e26c81695f09ea4c8"><div class="ttname"><a href="credentials_8h.html#ade0da78380603c2e26c81695f09ea4c8">grpc_ssl_server_credentials_options</a></div><div class="ttdeci">struct grpc_ssl_server_credentials_options grpc_ssl_server_credentials_options</div><div class="ttdef"><b>Definition:</b> credentials.h:410</div></div>
<div class="ttc" id="astructgrpc__auth__metadata__processor_html_af85de1293dfd5e846339d5ef4b7b41dc"><div class="ttname"><a href="structgrpc__auth__metadata__processor.html#af85de1293dfd5e846339d5ef4b7b41dc">grpc_auth_metadata_processor::state</a></div><div class="ttdeci">void * state</div><div class="ttdef"><b>Definition:</b> credentials.h:470</div></div>
<div class="ttc" id="acredentials_8h_html_af66841ff2c26a95ff9cd18ea2cdf38cb"><div class="ttname"><a href="credentials_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="acredentials_8h_html_a91c9dca2867decd1478590e7f5c380a4"><div class="ttname"><a href="credentials_8h.html#a91c9dca2867decd1478590e7f5c380a4">grpc_tls_certificate_verifier_no_op_create</a></div><div class="ttdeci">grpc_tls_certificate_verifier * grpc_tls_certificate_verifier_no_op_create()</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="acredentials_8h_html_a68c742a2421c6078ae87fb421a1a1f47"><div class="ttname"><a href="credentials_8h.html#a68c742a2421c6078ae87fb421a1a1f47">grpc_tls_identity_pairs_add_pair</a></div><div class="ttdeci">GRPCAPI void grpc_tls_identity_pairs_add_pair(grpc_tls_identity_pairs *pairs, const char *private_key, const char *cert_chain)</div><div class="ttdoc">EXPERIMENTAL API - Subject to change.</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<div class="ttc" id="acredentials_8h_html_a39e8a41f7f9a8d7587343964b18fc464"><div class="ttname"><a href="credentials_8h.html#a39e8a41f7f9a8d7587343964b18fc464">grpc_local_server_credentials_create</a></div><div class="ttdeci">GRPCAPI grpc_server_credentials * grpc_local_server_credentials_create(grpc_local_connect_type type)</div><div class="ttdoc">This method creates a local server credential object.</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -74,7 +74,7 @@ $(function() {
</div><!-- PageDoc -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -73,7 +73,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -96,7 +96,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -121,7 +121,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -90,6 +90,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:compression_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="compression_8h.html">compression.h</a> <a href="compression_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:credentials_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="credentials_8h.html">credentials.h</a> <a href="credentials_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:fork_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="fork_8h.html">fork.h</a> <a href="fork_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:grpc_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="grpc_8h.html">grpc.h</a> <a href="grpc_8h_source.html">[code]</a></td></tr>
@ -116,7 +118,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -98,7 +98,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -91,6 +91,8 @@ Files</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:log__windows_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="log__windows_8h.html">log_windows.h</a> <a href="log__windows_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:metrics_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="metrics_8h.html">metrics.h</a> <a href="metrics_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:support_2port__platform_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="support_2port__platform_8h.html">port_platform.h</a> <a href="support_2port__platform_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:string__util_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string__util_8h.html">string_util.h</a> <a href="string__util_8h_source.html">[code]</a></td></tr>
@ -117,7 +119,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -79,7 +79,7 @@ Directories</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -79,7 +79,7 @@ Directories</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -81,7 +81,7 @@ Files</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -73,10 +73,10 @@ $(function() {
<div class="title">endpoint_config.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<div class="textblock"><code>#include &lt;string&gt;</code><br />
<code>#include &quot;absl/strings/string_view.h&quot;</code><br />
<code>#include &quot;absl/types/optional.h&quot;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="endpoint__config_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -96,7 +96,7 @@ Namespaces</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -86,12 +86,12 @@ $(function() {
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef GRPC_EVENT_ENGINE_ENDPOINT_CONFIG_H</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define GRPC_EVENT_ENGINE_ENDPOINT_CONFIG_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;absl/types/optional.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;absl/types/optional.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine.html"> 24</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental.html"> 25</a></span>&#160;<span class="keyword">namespace </span>experimental {</div>
@ -125,7 +125,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -74,8 +74,7 @@ $(function() {
<div class="title">slice.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<div class="textblock"><code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;utility&gt;</code><br />
@ -83,6 +82,7 @@ $(function() {
<code>#include &lt;<a class="el" href="slice__cast_8h_source.html">grpc/event_engine/internal/slice_cast.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="slice_8h_source.html">grpc/slice.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2log_8h_source.html">grpc/support/log.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="event__engine_2slice_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -146,7 +146,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -87,372 +87,371 @@ $(function() {
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef GRPC_EVENT_ENGINE_SLICE_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define GRPC_EVENT_ENGINE_SLICE_H</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__cast_8h.html">grpc/event_engine/internal/slice_cast.h</a>&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice_8h.html">grpc/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2log_8h.html">grpc/support/log.h</a>&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// This public slice definition largely based of the internal grpc_core::Slice</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// implementation. Changes to this implementation might warrant changes to the</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// internal grpc_core::Slice type as well.</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">namespace </span>experimental {</div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// Forward declarations</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>Slice;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span>MutableSlice;</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html"> 43</a></span>&#160;<span class="keyword">namespace </span>slice_detail {</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="comment">// Returns an empty slice.</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">static</span> constexpr <a class="code" href="structgrpc__slice.html">grpc_slice</a> EmptySlice() { <span class="keywordflow">return</span> {<span class="keyword">nullptr</span>, {}}; }</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// BaseSlice holds the grpc_slice object, but does not apply refcounting policy.</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// It does export immutable access into the slice, such that this can be shared</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// by all storage policies.</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html"> 51</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a> {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">BaseSlice</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab516745b1a7e5e499dfb003620b1453c">operator=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">BaseSlice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab516745b1a7e5e499dfb003620b1453c">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Iterator access to the underlying bytes</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a3a55f30e6b296195241087cb9213cd7d"> 59</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a3a55f30e6b296195241087cb9213cd7d">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a02c8ce50c7aaf8b3f3a5b8292c6945e3"> 60</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a02c8ce50c7aaf8b3f3a5b8292c6945e3">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a96535019e10a540192c1f276ec049a56">GRPC_SLICE_END_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a7894d541a0d9d41da7e7be2721244d68"> 61</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a7894d541a0d9d41da7e7be2721244d68">cbegin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ad4b21b847cef788178a4485a221c6c8a"> 62</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ad4b21b847cef788178a4485a221c6c8a">cend</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a96535019e10a540192c1f276ec049a56">GRPC_SLICE_END_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Retrieve a borrowed reference to the underlying grpc_slice.</span></div>
<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036"> 65</a></span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> slice_; }</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Retrieve the underlying grpc_slice, and replace the one in this object with</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// EmptySlice().</span></div>
<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a37a881979ae52d0c51aa1a3ca88f1007"> 69</a></span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a37a881979ae52d0c51aa1a3ca88f1007">TakeCSlice</a>() {</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> out = slice_;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; slice_ = EmptySlice();</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; </div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// As other things... borrowed references.</span></div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106"> 76</a></span>&#160; absl::string_view <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> absl::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058">data</a>()), <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>());</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Array access</span></div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a2d29a78197ddb99057b03482c48c5c75"> 81</a></span>&#160; uint8_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a2d29a78197ddb99057b03482c48c5c75">operator[]</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>())[i];</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Access underlying data</span></div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058"> 86</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058">data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Size of the slice</span></div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238"> 89</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#ae965fb2ee1a646253cdbd49d82b0b6c5">GRPC_SLICE_LENGTH</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a4ed06eff795558e089f0bdc4f2cb433a"> 90</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a4ed06eff795558e089f0bdc4f2cb433a">length</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>(); }</div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa54e3c10e034036257443b9157873126"> 91</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa54e3c10e034036257443b9157873126">empty</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>() == 0; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// For inlined slices - are these two slices equal?</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// For non-inlined slices - do these two slices refer to the same block of</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// memory?</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac4097286dc6651083a31cdc67169adb4"> 96</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac4097286dc6651083a31cdc67169adb4">is_equivalent</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#ad3265621ff8d97c638d9e75bf1d24be9">grpc_slice_is_equivalent</a>(slice_, other.slice_);</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; uint32_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a53464e9b42a8250a2a58c35cb89c9fd8">Hash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a"> 103</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">BaseSlice</a>() : slice_(EmptySlice()) {}</div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa774db20c22c07470b3217d9dc8c293f"> 104</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa774db20c22c07470b3217d9dc8c293f">BaseSlice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice) : slice_(slice) {}</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a765906976f27f9f04c0a4eb236871036">~BaseSlice</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a356b53a18d62f5afe8cf058d401abe5f"> 107</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a356b53a18d62f5afe8cf058d401abe5f">Swap</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>* other) { std::swap(slice_, other-&gt;slice_); }</div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac7bc96080b2839bd8624298ba11711ad"> 108</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac7bc96080b2839bd8624298ba11711ad">SetCSlice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice) { slice_ = slice; }</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a63a6a73fe57a3e5eb048927fecbe1f62"> 110</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a63a6a73fe57a3e5eb048927fecbe1f62">mutable_data</a>() { <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(slice_); }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab1ac14170bdaaa86bf0c7641629cdbb7"> 112</a></span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab1ac14170bdaaa86bf0c7641629cdbb7">c_slice_ptr</a>() { <span class="keywordflow">return</span> &amp;slice_; }</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> slice_;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;};</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c"> 118</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) != 0;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71"> 122</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) == 0;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a8a18e2ab40428abadb3e6155e115cf0b"> 126</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, absl::string_view b) {</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>() == b;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a2917bf117b94b456784d90d935c3b5e9"> 130</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, absl::string_view b) {</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>() != b;</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a2c58188d3e52b2be201a55637cbff144"> 134</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(absl::string_view a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> a == b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>();</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a528d9bb1f52a2d8dac6ea5b545900f53"> 138</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(absl::string_view a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> a != b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>();</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; </div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#aed466fc39441a5e3dd438d95323e2096"> 142</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; b) {</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b) != 0;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a241364727e606de1a3513d3d822f91ae"> 146</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; b) {</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b) == 0;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;}</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a1579f65a037c147edbb5f424351e5462"> 150</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a, b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) != 0;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; </div>
<div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a864483f62c5fe20006b8b91dd57c7960"> 154</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a, b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) == 0;</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Out&gt;</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html"> 159</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">CopyConstructors</a> {</div>
<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0"> 160</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0">FromCopiedString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* s) {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(s, strlen(s));</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a035712a228dcc8b52e00d178bb84c86a"> 163</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a035712a228dcc8b52e00d178bb84c86a">FromCopiedString</a>(absl::string_view s) {</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(s.data(), s.size());</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0">FromCopiedString</a>(std::string s);</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5"> 168</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">size_t</span> len) {</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> Out(<a class="code" href="slice_8h.html#a696e371c99b269438dc229c4e7de074b">grpc_slice_from_copied_buffer</a>(p, len));</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a6acefd387c7d774e8661e527a3df3134"> 172</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a6acefd387c7d774e8661e527a3df3134">FromCopiedBuffer</a>(<span class="keyword">const</span> uint8_t* p, <span class="keywordtype">size_t</span> len) {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> Out(</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="slice_8h.html#a696e371c99b269438dc229c4e7de074b">grpc_slice_from_copied_buffer</a>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(p), len));</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Buffer&gt;</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a35ca9105428829656fadf32a9c31f5a5"> 178</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a35ca9105428829656fadf32a9c31f5a5">FromCopiedBuffer</a>(<span class="keyword">const</span> Buffer&amp; buffer) {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(buffer.data()),</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; buffer.size());</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;};</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;} <span class="comment">// namespace slice_detail</span></div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html"> 186</a></span>&#160;<span class="keyword">class </span><a class="code" href="support_2port__platform_8h.html#a1ccd8664edb82d0da42a252c40f19bd5">GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a></div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>,</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">public</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">slice_detail::CopyConstructors</a>&lt;MutableSlice&gt; {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice);</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; ~<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>();</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#af5fb151e2ab2da4f99aaf75d60f5fb7c"> 196</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#af5fb151e2ab2da4f99aaf75d60f5fb7c">MutableSlice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;&amp; other) noexcept</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; : <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>(other.TakeCSlice()) {}</div>
<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ae8d13f1c0012913c0ba20495ef59c6dd"> 198</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ae8d13f1c0012913c0ba20495ef59c6dd">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;&amp; other) noexcept {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; Swap(&amp;other);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a05e040c1f6365ee1d613a4856fa591d8"> 203</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a05e040c1f6365ee1d613a4856fa591d8">CreateUninitialized</a>(<span class="keywordtype">size_t</span> length) {</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<a class="code" href="slice_8h.html#a0b714cdd6fa993b1d47eb08f2d5f8fc1">grpc_slice_malloc</a>(length));</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; </div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// Return a sub slice of this one. Leaves this slice in an indeterminate but</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="comment">// valid state.</span></div>
<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ab0a4edaedf3b72f850bcfaa269ed8c03"> 209</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ab0a4edaedf3b72f850bcfaa269ed8c03">TakeSubSlice</a>(<span class="keywordtype">size_t</span> pos, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<a class="code" href="slice_8h.html#a3812672f29793b5a30a1cacc131b38da">grpc_slice_sub_no_ref</a>(TakeCSlice(), pos, pos + n));</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// Iterator access to the underlying bytes</span></div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a084b73506964aa67efcf14ad111c6e6a"> 214</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a084b73506964aa67efcf14ad111c6e6a">begin</a>() { <span class="keywordflow">return</span> mutable_data(); }</div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a2870ec13e83cb72081c52cf95f16272c"> 215</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a2870ec13e83cb72081c52cf95f16272c">end</a>() { <span class="keywordflow">return</span> mutable_data() + size(); }</div>
<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a0ee6a31aa8a7ff414ec5731f6604fdc2"> 216</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a0ee6a31aa8a7ff414ec5731f6604fdc2">data</a>() { <span class="keywordflow">return</span> mutable_data(); }</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// Array access</span></div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a4b9ad55b79a193d8c14ff94dc969c74e"> 219</a></span>&#160; uint8_t&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a4b9ad55b79a193d8c14ff94dc969c74e">operator[]</a>(<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> mutable_data()[i]; }</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;};</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; </div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html"> 222</a></span>&#160;<span class="keyword">class </span><a class="code" href="support_2port__platform_8h.html#a1ccd8664edb82d0da42a252c40f19bd5">GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a></div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>,</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">public</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">slice_detail::CopyConstructors</a>&lt;Slice&gt; {</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; ~<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>();</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a98ac64e5f279f9d4803e816c9b0936d9"> 228</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a98ac64e5f279f9d4803e816c9b0936d9">Slice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice) : slice_detail::BaseSlice(slice) {}</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a2e2f9a4a1d885577a4a054a2f07bde28"> 229</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a2e2f9a4a1d885577a4a054a2f07bde28">Slice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>&amp;&amp; other)</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; : slice_detail::BaseSlice(other.TakeCSlice()) {}</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ace4ee57b7427e11d2e98943b9c506d93"> 234</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ace4ee57b7427e11d2e98943b9c506d93">Slice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;&amp; other) noexcept : <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>(other.TakeCSlice()) {}</div>
<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ab8c2ade1d8992f41a24a44d7574b0ebf"> 235</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ab8c2ade1d8992f41a24a44d7574b0ebf">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;&amp; other) noexcept {</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; Swap(&amp;other);</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// A slice might refer to some memory that we keep a refcount to (this is</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// owned), or some memory that&#39;s inlined into the slice (also owned), or some</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// other block of memory that we know will be available for the lifetime of</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// some operation in the common case (not owned). In the *less common* case</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// that we need to keep that slice text for longer than our API&#39;s guarantee us</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">// access, we need to take a copy and turn this into something that we do own.</span></div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// TakeOwned returns an owned slice regardless of current ownership, and</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// leaves the current slice in a valid but externally unpredictable state - in</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="comment">// doing so it can avoid adding a ref to the underlying slice.</span></div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> TakeOwned();</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">// AsOwned returns an owned slice but does not mutate the current slice,</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="comment">// meaning that it may add a reference to the underlying slice.</span></div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> AsOwned() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; </div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// TakeMutable returns a MutableSlice, and leaves the current slice in an</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// indeterminate but valid state.</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// A mutable slice requires only one reference to the bytes of the slice -</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// this can be achieved either with inlined storage or with a single</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// reference.</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// If the current slice is refcounted and there are more than one references</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// to that slice, then the slice is copied in order to achieve a mutable</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// version.</span></div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a> TakeMutable();</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; </div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// Return a sub slice of this one. Leaves this slice in an indeterminate but</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// valid state.</span></div>
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#aadd8f7916cf40dba064d99fded0f4e48"> 268</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#aadd8f7916cf40dba064d99fded0f4e48">TakeSubSlice</a>(<span class="keywordtype">size_t</span> pos, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#a3812672f29793b5a30a1cacc131b38da">grpc_slice_sub_no_ref</a>(TakeCSlice(), pos, pos + n));</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// Return a sub slice of this one. Adds a reference to the underlying slice.</span></div>
<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a074dfb199e5364580ea0c4173e197a07"> 273</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a074dfb199e5364580ea0c4173e197a07">RefSubSlice</a>(<span class="keywordtype">size_t</span> pos, <span class="keywordtype">size_t</span> n)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#ac334a6c6ad0a729fd4fe521df9f5ecc5">grpc_slice_sub</a>(c_slice(), pos, pos + n));</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// Split this slice, returning a new slice containing (split:end] and</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">// leaving this slice with [begin:split).</span></div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a9c9bd6e139ce9c81cea21b9dff7920c9"> 279</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a9c9bd6e139ce9c81cea21b9dff7920c9">Split</a>(<span class="keywordtype">size_t</span> split) {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#a5aedc925ae6e2bae484fe82383fac025">grpc_slice_split_tail</a>(c_slice_ptr(), split));</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; </div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> Ref() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; </div>
<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a0cf6d2c2c104352bdfe1e5517edcdc58"> 285</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a0cf6d2c2c104352bdfe1e5517edcdc58">Copy</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#a0b428779eb2f6b030f4a8bcad2c9416f">grpc_slice_copy</a>(c_slice())); }</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">static</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> FromRefcountAndBytes(grpc_slice_refcount* r,</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">const</span> uint8_t* begin, <span class="keyword">const</span> uint8_t* end);</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;};</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="keyword">namespace </span>internal {</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01grpc__slice_01_4.html"> 293</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>, <a class="code" href="structgrpc__slice.html">grpc_slice</a>&gt; {};</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_slice_01_4.html"> 295</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="structgrpc__slice.html">grpc_slice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&gt; {};</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01grpc__slice_01_4.html"> 298</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>, <a class="code" href="structgrpc__slice.html">grpc_slice</a>&gt; {};</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_mutable_slice_01_4.html"> 300</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="structgrpc__slice.html">grpc_slice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&gt; {};</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01_slice_01_4.html"> 303</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&gt; {};</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00305"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01_mutable_slice_01_4.html"> 305</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&gt; {};</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;} <span class="comment">// namespace internal</span></div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;} <span class="comment">// namespace experimental</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;} <span class="comment">// namespace grpc_event_engine</span></div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; </div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor">#endif // GRPC_EVENT_ENGINE_SLICE_H</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__cast_8h.html">grpc/event_engine/internal/slice_cast.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice_8h.html">grpc/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2log_8h.html">grpc/support/log.h</a>&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// This public slice definition largely based of the internal grpc_core::Slice</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// implementation. Changes to this implementation might warrant changes to the</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment">// internal grpc_core::Slice type as well.</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>experimental {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// Forward declarations</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span>Slice;</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span>MutableSlice;</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html"> 42</a></span>&#160;<span class="keyword">namespace </span>slice_detail {</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// Returns an empty slice.</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">static</span> constexpr <a class="code" href="structgrpc__slice.html">grpc_slice</a> EmptySlice() { <span class="keywordflow">return</span> {<span class="keyword">nullptr</span>, {}}; }</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// BaseSlice holds the grpc_slice object, but does not apply refcounting policy.</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// It does export immutable access into the slice, such that this can be shared</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="comment">// by all storage policies.</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html"> 50</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a> {</div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">BaseSlice</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab516745b1a7e5e499dfb003620b1453c">operator=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">BaseSlice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab516745b1a7e5e499dfb003620b1453c">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp;&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Iterator access to the underlying bytes</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a3a55f30e6b296195241087cb9213cd7d"> 58</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a3a55f30e6b296195241087cb9213cd7d">begin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a02c8ce50c7aaf8b3f3a5b8292c6945e3"> 59</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a02c8ce50c7aaf8b3f3a5b8292c6945e3">end</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a96535019e10a540192c1f276ec049a56">GRPC_SLICE_END_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a7894d541a0d9d41da7e7be2721244d68"> 60</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a7894d541a0d9d41da7e7be2721244d68">cbegin</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ad4b21b847cef788178a4485a221c6c8a"> 61</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ad4b21b847cef788178a4485a221c6c8a">cend</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a96535019e10a540192c1f276ec049a56">GRPC_SLICE_END_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; </div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Retrieve a borrowed reference to the underlying grpc_slice.</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036"> 64</a></span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> slice_; }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Retrieve the underlying grpc_slice, and replace the one in this object with</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// EmptySlice().</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a37a881979ae52d0c51aa1a3ca88f1007"> 68</a></span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a37a881979ae52d0c51aa1a3ca88f1007">TakeCSlice</a>() {</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> out = slice_;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; slice_ = EmptySlice();</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// As other things... borrowed references.</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106"> 75</a></span>&#160; absl::string_view <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> absl::string_view(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058">data</a>()), <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>());</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Array access</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a2d29a78197ddb99057b03482c48c5c75"> 80</a></span>&#160; uint8_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a2d29a78197ddb99057b03482c48c5c75">operator[]</a>(<span class="keywordtype">size_t</span> i)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>())[i];</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Access underlying data</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058"> 85</a></span>&#160; <span class="keyword">const</span> uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058">data</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Size of the slice</span></div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238"> 88</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#ae965fb2ee1a646253cdbd49d82b0b6c5">GRPC_SLICE_LENGTH</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()); }</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a4ed06eff795558e089f0bdc4f2cb433a"> 89</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a4ed06eff795558e089f0bdc4f2cb433a">length</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>(); }</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa54e3c10e034036257443b9157873126"> 90</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa54e3c10e034036257443b9157873126">empty</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">size</a>() == 0; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// For inlined slices - are these two slices equal?</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// For non-inlined slices - do these two slices refer to the same block of</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// memory?</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac4097286dc6651083a31cdc67169adb4"> 95</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac4097286dc6651083a31cdc67169adb4">is_equivalent</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#ad3265621ff8d97c638d9e75bf1d24be9">grpc_slice_is_equivalent</a>(slice_, other.slice_);</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; uint32_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a53464e9b42a8250a2a58c35cb89c9fd8">Hash</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; </div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a"> 102</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">BaseSlice</a>() : slice_(EmptySlice()) {}</div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa774db20c22c07470b3217d9dc8c293f"> 103</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa774db20c22c07470b3217d9dc8c293f">BaseSlice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice) : slice_(slice) {}</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a765906976f27f9f04c0a4eb236871036">~BaseSlice</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a356b53a18d62f5afe8cf058d401abe5f"> 106</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a356b53a18d62f5afe8cf058d401abe5f">Swap</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>* other) { std::swap(slice_, other-&gt;slice_); }</div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac7bc96080b2839bd8624298ba11711ad"> 107</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac7bc96080b2839bd8624298ba11711ad">SetCSlice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice) { slice_ = slice; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a63a6a73fe57a3e5eb048927fecbe1f62"> 109</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a63a6a73fe57a3e5eb048927fecbe1f62">mutable_data</a>() { <span class="keywordflow">return</span> <a class="code" href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a>(slice_); }</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab1ac14170bdaaa86bf0c7641629cdbb7"> 111</a></span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a>* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab1ac14170bdaaa86bf0c7641629cdbb7">c_slice_ptr</a>() { <span class="keywordflow">return</span> &amp;slice_; }</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="structgrpc__slice.html">grpc_slice</a> slice_;</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;};</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c"> 117</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) != 0;</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71"> 121</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) == 0;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a8a18e2ab40428abadb3e6155e115cf0b"> 125</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, absl::string_view b) {</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>() == b;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a2917bf117b94b456784d90d935c3b5e9"> 129</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, absl::string_view b) {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>() != b;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a2c58188d3e52b2be201a55637cbff144"> 133</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(absl::string_view a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> a == b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>();</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a528d9bb1f52a2d8dac6ea5b545900f53"> 137</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(absl::string_view a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> a != b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">as_string_view</a>();</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#aed466fc39441a5e3dd438d95323e2096"> 141</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; b) {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b) != 0;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a241364727e606de1a3513d3d822f91ae"> 145</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; b) {</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>(), b) == 0;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a1579f65a037c147edbb5f424351e5462"> 149</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">operator==</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a, b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) != 0;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a864483f62c5fe20006b8b91dd57c7960"> 153</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">BaseSlice</a>&amp; b) {</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> <a class="code" href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a>(a, b.<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">c_slice</a>()) == 0;</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Out&gt;</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html"> 158</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">CopyConstructors</a> {</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0"> 159</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0">FromCopiedString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* s) {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(s, strlen(s));</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a035712a228dcc8b52e00d178bb84c86a"> 162</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a035712a228dcc8b52e00d178bb84c86a">FromCopiedString</a>(absl::string_view s) {</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(s.data(), s.size());</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0">FromCopiedString</a>(std::string s);</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5"> 167</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">size_t</span> len) {</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> Out(<a class="code" href="slice_8h.html#a696e371c99b269438dc229c4e7de074b">grpc_slice_from_copied_buffer</a>(p, len));</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a6acefd387c7d774e8661e527a3df3134"> 171</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a6acefd387c7d774e8661e527a3df3134">FromCopiedBuffer</a>(<span class="keyword">const</span> uint8_t* p, <span class="keywordtype">size_t</span> len) {</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> Out(</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="slice_8h.html#a696e371c99b269438dc229c4e7de074b">grpc_slice_from_copied_buffer</a>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(p), len));</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Buffer&gt;</div>
<div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a35ca9105428829656fadf32a9c31f5a5"> 177</a></span>&#160; <span class="keyword">static</span> Out <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a35ca9105428829656fadf32a9c31f5a5">FromCopiedBuffer</a>(<span class="keyword">const</span> Buffer&amp; buffer) {</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">FromCopiedBuffer</a>(<span class="keyword">reinterpret_cast&lt;</span><span class="keyword">const </span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(buffer.data()),</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; buffer.size());</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;};</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;} <span class="comment">// namespace slice_detail</span></div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; </div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html"> 185</a></span>&#160;<span class="keyword">class </span><a class="code" href="support_2port__platform_8h.html#a1ccd8664edb82d0da42a252c40f19bd5">GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a></div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>,</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">public</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">slice_detail::CopyConstructors</a>&lt;MutableSlice&gt; {</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice);</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; ~<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>();</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#af5fb151e2ab2da4f99aaf75d60f5fb7c"> 195</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#af5fb151e2ab2da4f99aaf75d60f5fb7c">MutableSlice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;&amp; other) noexcept</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; : <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>(other.TakeCSlice()) {}</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ae8d13f1c0012913c0ba20495ef59c6dd"> 197</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ae8d13f1c0012913c0ba20495ef59c6dd">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&amp;&amp; other) noexcept {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; Swap(&amp;other);</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a05e040c1f6365ee1d613a4856fa591d8"> 202</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a05e040c1f6365ee1d613a4856fa591d8">CreateUninitialized</a>(<span class="keywordtype">size_t</span> length) {</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<a class="code" href="slice_8h.html#a0b714cdd6fa993b1d47eb08f2d5f8fc1">grpc_slice_malloc</a>(length));</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; </div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// Return a sub slice of this one. Leaves this slice in an indeterminate but</span></div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// valid state.</span></div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ab0a4edaedf3b72f850bcfaa269ed8c03"> 208</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ab0a4edaedf3b72f850bcfaa269ed8c03">TakeSubSlice</a>(<span class="keywordtype">size_t</span> pos, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>(<a class="code" href="slice_8h.html#a3812672f29793b5a30a1cacc131b38da">grpc_slice_sub_no_ref</a>(TakeCSlice(), pos, pos + n));</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// Iterator access to the underlying bytes</span></div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a084b73506964aa67efcf14ad111c6e6a"> 213</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a084b73506964aa67efcf14ad111c6e6a">begin</a>() { <span class="keywordflow">return</span> mutable_data(); }</div>
<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a2870ec13e83cb72081c52cf95f16272c"> 214</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a2870ec13e83cb72081c52cf95f16272c">end</a>() { <span class="keywordflow">return</span> mutable_data() + size(); }</div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a0ee6a31aa8a7ff414ec5731f6604fdc2"> 215</a></span>&#160; uint8_t* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a0ee6a31aa8a7ff414ec5731f6604fdc2">data</a>() { <span class="keywordflow">return</span> mutable_data(); }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// Array access</span></div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a4b9ad55b79a193d8c14ff94dc969c74e"> 218</a></span>&#160; uint8_t&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a4b9ad55b79a193d8c14ff94dc969c74e">operator[]</a>(<span class="keywordtype">size_t</span> i) { <span class="keywordflow">return</span> mutable_data()[i]; }</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;};</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div>
<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html"> 221</a></span>&#160;<span class="keyword">class </span><a class="code" href="support_2port__platform_8h.html#a1ccd8664edb82d0da42a252c40f19bd5">GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a></div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>,</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">public</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">slice_detail::CopyConstructors</a>&lt;Slice&gt; {</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; ~<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>();</div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a98ac64e5f279f9d4803e816c9b0936d9"> 227</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a98ac64e5f279f9d4803e816c9b0936d9">Slice</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__slice.html">grpc_slice</a>&amp; slice) : slice_detail::BaseSlice(slice) {}</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a2e2f9a4a1d885577a4a054a2f07bde28"> 228</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a2e2f9a4a1d885577a4a054a2f07bde28">Slice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>&amp;&amp; other)</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; : slice_detail::BaseSlice(other.TakeCSlice()) {}</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ace4ee57b7427e11d2e98943b9c506d93"> 233</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ace4ee57b7427e11d2e98943b9c506d93">Slice</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;&amp; other) noexcept : <a class="code" href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">slice_detail::BaseSlice</a>(other.TakeCSlice()) {}</div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ab8c2ade1d8992f41a24a44d7574b0ebf"> 234</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ab8c2ade1d8992f41a24a44d7574b0ebf">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp;&amp; other) noexcept {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; Swap(&amp;other);</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; </div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// A slice might refer to some memory that we keep a refcount to (this is</span></div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// owned), or some memory that&#39;s inlined into the slice (also owned), or some</span></div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="comment">// other block of memory that we know will be available for the lifetime of</span></div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// some operation in the common case (not owned). In the *less common* case</span></div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// that we need to keep that slice text for longer than our API&#39;s guarantee us</span></div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// access, we need to take a copy and turn this into something that we do own.</span></div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; </div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// TakeOwned returns an owned slice regardless of current ownership, and</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// leaves the current slice in a valid but externally unpredictable state - in</span></div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// doing so it can avoid adding a ref to the underlying slice.</span></div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> TakeOwned();</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="comment">// AsOwned returns an owned slice but does not mutate the current slice,</span></div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">// meaning that it may add a reference to the underlying slice.</span></div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> AsOwned() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// TakeMutable returns a MutableSlice, and leaves the current slice in an</span></div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// indeterminate but valid state.</span></div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// A mutable slice requires only one reference to the bytes of the slice -</span></div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="comment">// this can be achieved either with inlined storage or with a single</span></div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// reference.</span></div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// If the current slice is refcounted and there are more than one references</span></div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// to that slice, then the slice is copied in order to achieve a mutable</span></div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// version.</span></div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a> TakeMutable();</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Return a sub slice of this one. Leaves this slice in an indeterminate but</span></div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// valid state.</span></div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#aadd8f7916cf40dba064d99fded0f4e48"> 267</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#aadd8f7916cf40dba064d99fded0f4e48">TakeSubSlice</a>(<span class="keywordtype">size_t</span> pos, <span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#a3812672f29793b5a30a1cacc131b38da">grpc_slice_sub_no_ref</a>(TakeCSlice(), pos, pos + n));</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// Return a sub slice of this one. Adds a reference to the underlying slice.</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a074dfb199e5364580ea0c4173e197a07"> 272</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a074dfb199e5364580ea0c4173e197a07">RefSubSlice</a>(<span class="keywordtype">size_t</span> pos, <span class="keywordtype">size_t</span> n)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#ac334a6c6ad0a729fd4fe521df9f5ecc5">grpc_slice_sub</a>(c_slice(), pos, pos + n));</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="comment">// Split this slice, returning a new slice containing (split:end] and</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// leaving this slice with [begin:split).</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a9c9bd6e139ce9c81cea21b9dff7920c9"> 278</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a9c9bd6e139ce9c81cea21b9dff7920c9">Split</a>(<span class="keywordtype">size_t</span> split) {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#a5aedc925ae6e2bae484fe82383fac025">grpc_slice_split_tail</a>(c_slice_ptr(), split));</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> Ref() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div>
<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a0cf6d2c2c104352bdfe1e5517edcdc58"> 284</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a0cf6d2c2c104352bdfe1e5517edcdc58">Copy</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>(<a class="code" href="slice_8h.html#a0b428779eb2f6b030f4a8bcad2c9416f">grpc_slice_copy</a>(c_slice())); }</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">static</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> FromRefcountAndBytes(grpc_slice_refcount* r,</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">const</span> uint8_t* begin, <span class="keyword">const</span> uint8_t* end);</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;};</div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; </div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="keyword">namespace </span>internal {</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01grpc__slice_01_4.html"> 292</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>, <a class="code" href="structgrpc__slice.html">grpc_slice</a>&gt; {};</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_slice_01_4.html"> 294</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="structgrpc__slice.html">grpc_slice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&gt; {};</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; </div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01grpc__slice_01_4.html"> 297</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>, <a class="code" href="structgrpc__slice.html">grpc_slice</a>&gt; {};</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01grpc__slice_00_01_mutable_slice_01_4.html"> 299</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="structgrpc__slice.html">grpc_slice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&gt; {};</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_mutable_slice_00_01_slice_01_4.html"> 302</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&gt; {};</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="keyword">template</span> &lt;&gt;</div>
<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_3_01_slice_00_01_mutable_slice_01_4.html"> 304</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">SliceCastable</a>&lt;<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">MutableSlice</a>&gt; {};</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;} <span class="comment">// namespace internal</span></div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;} <span class="comment">// namespace experimental</span></div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;} <span class="comment">// namespace grpc_event_engine</span></div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; </div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor">#endif // GRPC_EVENT_ENGINE_SLICE_H</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_afbf53571baffab9ebd8e3b4c34c8393a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">grpc_event_engine::experimental::slice_detail::BaseSlice::BaseSlice</a></div><div class="ttdeci">BaseSlice()</div><div class="ttdef"><b>Definition:</b> slice.h:103</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a12db75275b339fbdd86bd922eaddf1b5"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedBuffer</a></div><div class="ttdeci">static Out FromCopiedBuffer(const char *p, size_t len)</div><div class="ttdef"><b>Definition:</b> slice.h:168</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_afbf53571baffab9ebd8e3b4c34c8393a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#afbf53571baffab9ebd8e3b4c34c8393a">grpc_event_engine::experimental::slice_detail::BaseSlice::BaseSlice</a></div><div class="ttdeci">BaseSlice()</div><div class="ttdef"><b>Definition:</b> slice.h:102</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a12db75275b339fbdd86bd922eaddf1b5"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a12db75275b339fbdd86bd922eaddf1b5">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedBuffer</a></div><div class="ttdeci">static Out FromCopiedBuffer(const char *p, size_t len)</div><div class="ttdef"><b>Definition:</b> slice.h:167</div></div>
<div class="ttc" id="aslice_8h_html_ad3265621ff8d97c638d9e75bf1d24be9"><div class="ttname"><a href="slice_8h.html#ad3265621ff8d97c638d9e75bf1d24be9">grpc_slice_is_equivalent</a></div><div class="ttdeci">GPRAPI int grpc_slice_is_equivalent(grpc_slice a, grpc_slice b)</div><div class="ttdoc">Do two slices point at the same memory, with the same length If a or b is inlined,...</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_1_1experimental_1_1slice__detail_html_ae2a5b68a5afd128f89a139eaf0e95e5c"><div class="ttname"><a href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">grpc_event_engine::experimental::slice_detail::operator==</a></div><div class="ttdeci">bool operator==(const BaseSlice &amp;a, const BaseSlice &amp;b)</div><div class="ttdef"><b>Definition:</b> slice.h:118</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">grpc_event_engine::experimental::MutableSlice</a></div><div class="ttdef"><b>Definition:</b> slice.h:186</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_1_1experimental_1_1slice__detail_html_ae2a5b68a5afd128f89a139eaf0e95e5c"><div class="ttname"><a href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#ae2a5b68a5afd128f89a139eaf0e95e5c">grpc_event_engine::experimental::slice_detail::operator==</a></div><div class="ttdeci">bool operator==(const BaseSlice &amp;a, const BaseSlice &amp;b)</div><div class="ttdef"><b>Definition:</b> slice.h:117</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html">grpc_event_engine::experimental::MutableSlice</a></div><div class="ttdef"><b>Definition:</b> slice.h:185</div></div>
<div class="ttc" id="aslice__type_8h_html_a8a15783c251cdeb18c3f8b0ad41d0352"><div class="ttname"><a href="slice__type_8h.html#a8a15783c251cdeb18c3f8b0ad41d0352">GRPC_SLICE_START_PTR</a></div><div class="ttdeci">#define GRPC_SLICE_START_PTR(slice)</div><div class="ttdef"><b>Definition:</b> slice_type.h:99</div></div>
<div class="ttc" id="aslice_8h_html_a5aedc925ae6e2bae484fe82383fac025"><div class="ttname"><a href="slice_8h.html#a5aedc925ae6e2bae484fe82383fac025">grpc_slice_split_tail</a></div><div class="ttdeci">GPRAPI grpc_slice grpc_slice_split_tail(grpc_slice *s, size_t split)</div><div class="ttdoc">Splits s into two: modifies s to be s[0:split], and returns a new slice, sharing a refcount with s,...</div></div>
<div class="ttc" id="aslice__type_8h_html_a96535019e10a540192c1f276ec049a56"><div class="ttname"><a href="slice__type_8h.html#a96535019e10a540192c1f276ec049a56">GRPC_SLICE_END_PTR</a></div><div class="ttdeci">#define GRPC_SLICE_END_PTR(slice)</div><div class="ttdef"><b>Definition:</b> slice_type.h:108</div></div>
<div class="ttc" id="aslice_8h_html_a696e371c99b269438dc229c4e7de074b"><div class="ttname"><a href="slice_8h.html#a696e371c99b269438dc229c4e7de074b">grpc_slice_from_copied_buffer</a></div><div class="ttdeci">GPRAPI grpc_slice grpc_slice_from_copied_buffer(const char *source, size_t len)</div><div class="ttdoc">Create a slice by copying a buffer.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html">grpc_event_engine::experimental::Slice</a></div><div class="ttdef"><b>Definition:</b> slice.h:222</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a4b9ad55b79a193d8c14ff94dc969c74e"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a4b9ad55b79a193d8c14ff94dc969c74e">grpc_event_engine::experimental::MutableSlice::operator[]</a></div><div class="ttdeci">uint8_t &amp; operator[](size_t i)</div><div class="ttdef"><b>Definition:</b> slice.h:219</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_ae8d13f1c0012913c0ba20495ef59c6dd"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ae8d13f1c0012913c0ba20495ef59c6dd">grpc_event_engine::experimental::MutableSlice::operator=</a></div><div class="ttdeci">MutableSlice &amp; operator=(MutableSlice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:198</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">grpc_event_engine::experimental::slice_detail::BaseSlice</a></div><div class="ttdef"><b>Definition:</b> slice.h:51</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html">grpc_event_engine::experimental::Slice</a></div><div class="ttdef"><b>Definition:</b> slice.h:221</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a4b9ad55b79a193d8c14ff94dc969c74e"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a4b9ad55b79a193d8c14ff94dc969c74e">grpc_event_engine::experimental::MutableSlice::operator[]</a></div><div class="ttdeci">uint8_t &amp; operator[](size_t i)</div><div class="ttdef"><b>Definition:</b> slice.h:218</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_ae8d13f1c0012913c0ba20495ef59c6dd"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ae8d13f1c0012913c0ba20495ef59c6dd">grpc_event_engine::experimental::MutableSlice::operator=</a></div><div class="ttdeci">MutableSlice &amp; operator=(MutableSlice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:197</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html">grpc_event_engine::experimental::slice_detail::BaseSlice</a></div><div class="ttdef"><b>Definition:</b> slice.h:50</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a765906976f27f9f04c0a4eb236871036"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a765906976f27f9f04c0a4eb236871036">grpc_event_engine::experimental::slice_detail::BaseSlice::~BaseSlice</a></div><div class="ttdeci">~BaseSlice()=default</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_aa774db20c22c07470b3217d9dc8c293f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa774db20c22c07470b3217d9dc8c293f">grpc_event_engine::experimental::slice_detail::BaseSlice::BaseSlice</a></div><div class="ttdeci">BaseSlice(const grpc_slice &amp;slice)</div><div class="ttdef"><b>Definition:</b> slice.h:104</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a074dfb199e5364580ea0c4173e197a07"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a074dfb199e5364580ea0c4173e197a07">grpc_event_engine::experimental::Slice::RefSubSlice</a></div><div class="ttdeci">Slice RefSubSlice(size_t pos, size_t n) const</div><div class="ttdef"><b>Definition:</b> slice.h:273</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a2e2f9a4a1d885577a4a054a2f07bde28"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a2e2f9a4a1d885577a4a054a2f07bde28">grpc_event_engine::experimental::Slice::Slice</a></div><div class="ttdeci">Slice(slice_detail::BaseSlice &amp;&amp;other)</div><div class="ttdef"><b>Definition:</b> slice.h:229</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a7894d541a0d9d41da7e7be2721244d68"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a7894d541a0d9d41da7e7be2721244d68">grpc_event_engine::experimental::slice_detail::BaseSlice::cbegin</a></div><div class="ttdeci">const uint8_t * cbegin() const</div><div class="ttdef"><b>Definition:</b> slice.h:61</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_ab8c2ade1d8992f41a24a44d7574b0ebf"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ab8c2ade1d8992f41a24a44d7574b0ebf">grpc_event_engine::experimental::Slice::operator=</a></div><div class="ttdeci">Slice &amp; operator=(Slice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:235</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_aa774db20c22c07470b3217d9dc8c293f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa774db20c22c07470b3217d9dc8c293f">grpc_event_engine::experimental::slice_detail::BaseSlice::BaseSlice</a></div><div class="ttdeci">BaseSlice(const grpc_slice &amp;slice)</div><div class="ttdef"><b>Definition:</b> slice.h:103</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a074dfb199e5364580ea0c4173e197a07"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a074dfb199e5364580ea0c4173e197a07">grpc_event_engine::experimental::Slice::RefSubSlice</a></div><div class="ttdeci">Slice RefSubSlice(size_t pos, size_t n) const</div><div class="ttdef"><b>Definition:</b> slice.h:272</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a2e2f9a4a1d885577a4a054a2f07bde28"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a2e2f9a4a1d885577a4a054a2f07bde28">grpc_event_engine::experimental::Slice::Slice</a></div><div class="ttdeci">Slice(slice_detail::BaseSlice &amp;&amp;other)</div><div class="ttdef"><b>Definition:</b> slice.h:228</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a7894d541a0d9d41da7e7be2721244d68"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a7894d541a0d9d41da7e7be2721244d68">grpc_event_engine::experimental::slice_detail::BaseSlice::cbegin</a></div><div class="ttdeci">const uint8_t * cbegin() const</div><div class="ttdef"><b>Definition:</b> slice.h:60</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_ab8c2ade1d8992f41a24a44d7574b0ebf"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ab8c2ade1d8992f41a24a44d7574b0ebf">grpc_event_engine::experimental::Slice::operator=</a></div><div class="ttdeci">Slice &amp; operator=(Slice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:234</div></div>
<div class="ttc" id="aslice_8h_html_a70619fe975944cdf1a2e043651f82e22"><div class="ttname"><a href="slice_8h.html#a70619fe975944cdf1a2e043651f82e22">grpc_slice_eq</a></div><div class="ttdeci">GPRAPI int grpc_slice_eq(grpc_slice a, grpc_slice b)</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a35ca9105428829656fadf32a9c31f5a5"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a35ca9105428829656fadf32a9c31f5a5">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedBuffer</a></div><div class="ttdeci">static Out FromCopiedBuffer(const Buffer &amp;buffer)</div><div class="ttdef"><b>Definition:</b> slice.h:178</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a35ca9105428829656fadf32a9c31f5a5"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a35ca9105428829656fadf32a9c31f5a5">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedBuffer</a></div><div class="ttdeci">static Out FromCopiedBuffer(const Buffer &amp;buffer)</div><div class="ttdef"><b>Definition:</b> slice.h:177</div></div>
<div class="ttc" id="asupport_2log_8h_html"><div class="ttname"><a href="support_2log_8h.html">log.h</a></div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a3a55f30e6b296195241087cb9213cd7d"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a3a55f30e6b296195241087cb9213cd7d">grpc_event_engine::experimental::slice_detail::BaseSlice::begin</a></div><div class="ttdeci">const uint8_t * begin() const</div><div class="ttdef"><b>Definition:</b> slice.h:59</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a3a55f30e6b296195241087cb9213cd7d"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a3a55f30e6b296195241087cb9213cd7d">grpc_event_engine::experimental::slice_detail::BaseSlice::begin</a></div><div class="ttdeci">const uint8_t * begin() const</div><div class="ttdef"><b>Definition:</b> slice.h:58</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1internal_1_1_slice_castable.html">grpc_event_engine::experimental::internal::SliceCastable</a></div><div class="ttdef"><b>Definition:</b> slice_cast.h:30</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a60ae7c059d743f0b8e9538d065b6c036"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">grpc_event_engine::experimental::slice_detail::BaseSlice::c_slice</a></div><div class="ttdeci">const grpc_slice &amp; c_slice() const</div><div class="ttdef"><b>Definition:</b> slice.h:65</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a2d29a78197ddb99057b03482c48c5c75"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a2d29a78197ddb99057b03482c48c5c75">grpc_event_engine::experimental::slice_detail::BaseSlice::operator[]</a></div><div class="ttdeci">uint8_t operator[](size_t i) const</div><div class="ttdef"><b>Definition:</b> slice.h:81</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_1_1experimental_1_1slice__detail_html_a6fe781d2194715d871eb0d8cad820a71"><div class="ttname"><a href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">grpc_event_engine::experimental::slice_detail::operator!=</a></div><div class="ttdeci">bool operator!=(const BaseSlice &amp;a, const BaseSlice &amp;b)</div><div class="ttdef"><b>Definition:</b> slice.h:122</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a60ae7c059d743f0b8e9538d065b6c036"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a60ae7c059d743f0b8e9538d065b6c036">grpc_event_engine::experimental::slice_detail::BaseSlice::c_slice</a></div><div class="ttdeci">const grpc_slice &amp; c_slice() const</div><div class="ttdef"><b>Definition:</b> slice.h:64</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a2d29a78197ddb99057b03482c48c5c75"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a2d29a78197ddb99057b03482c48c5c75">grpc_event_engine::experimental::slice_detail::BaseSlice::operator[]</a></div><div class="ttdeci">uint8_t operator[](size_t i) const</div><div class="ttdef"><b>Definition:</b> slice.h:80</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_1_1experimental_1_1slice__detail_html_a6fe781d2194715d871eb0d8cad820a71"><div class="ttname"><a href="namespacegrpc__event__engine_1_1experimental_1_1slice__detail.html#a6fe781d2194715d871eb0d8cad820a71">grpc_event_engine::experimental::slice_detail::operator!=</a></div><div class="ttdeci">bool operator!=(const BaseSlice &amp;a, const BaseSlice &amp;b)</div><div class="ttdef"><b>Definition:</b> slice.h:121</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ab516745b1a7e5e499dfb003620b1453c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab516745b1a7e5e499dfb003620b1453c">grpc_event_engine::experimental::slice_detail::BaseSlice::operator=</a></div><div class="ttdeci">BaseSlice &amp; operator=(const BaseSlice &amp;)=delete</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a2870ec13e83cb72081c52cf95f16272c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a2870ec13e83cb72081c52cf95f16272c">grpc_event_engine::experimental::MutableSlice::end</a></div><div class="ttdeci">uint8_t * end()</div><div class="ttdef"><b>Definition:</b> slice.h:215</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a2870ec13e83cb72081c52cf95f16272c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a2870ec13e83cb72081c52cf95f16272c">grpc_event_engine::experimental::MutableSlice::end</a></div><div class="ttdeci">uint8_t * end()</div><div class="ttdef"><b>Definition:</b> slice.h:214</div></div>
<div class="ttc" id="aslice_8h_html_a3812672f29793b5a30a1cacc131b38da"><div class="ttname"><a href="slice_8h.html#a3812672f29793b5a30a1cacc131b38da">grpc_slice_sub_no_ref</a></div><div class="ttdeci">GPRAPI grpc_slice grpc_slice_sub_no_ref(grpc_slice s, size_t begin, size_t end)</div><div class="ttdoc">The same as grpc_slice_sub, but without altering the ref count.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_ace4ee57b7427e11d2e98943b9c506d93"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ace4ee57b7427e11d2e98943b9c506d93">grpc_event_engine::experimental::Slice::Slice</a></div><div class="ttdeci">Slice(Slice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:234</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_ace4ee57b7427e11d2e98943b9c506d93"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#ace4ee57b7427e11d2e98943b9c506d93">grpc_event_engine::experimental::Slice::Slice</a></div><div class="ttdeci">Slice(Slice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:233</div></div>
<div class="ttc" id="aslice__cast_8h_html"><div class="ttname"><a href="slice__cast_8h.html">slice_cast.h</a></div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a6acefd387c7d774e8661e527a3df3134"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a6acefd387c7d774e8661e527a3df3134">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedBuffer</a></div><div class="ttdeci">static Out FromCopiedBuffer(const uint8_t *p, size_t len)</div><div class="ttdef"><b>Definition:</b> slice.h:172</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_aadd8f7916cf40dba064d99fded0f4e48"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#aadd8f7916cf40dba064d99fded0f4e48">grpc_event_engine::experimental::Slice::TakeSubSlice</a></div><div class="ttdeci">Slice TakeSubSlice(size_t pos, size_t n)</div><div class="ttdef"><b>Definition:</b> slice.h:268</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a5a1efa0ff55d5223de121e2800b1acb0"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedString</a></div><div class="ttdeci">static Out FromCopiedString(const char *s)</div><div class="ttdef"><b>Definition:</b> slice.h:160</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a6acefd387c7d774e8661e527a3df3134"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a6acefd387c7d774e8661e527a3df3134">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedBuffer</a></div><div class="ttdeci">static Out FromCopiedBuffer(const uint8_t *p, size_t len)</div><div class="ttdef"><b>Definition:</b> slice.h:171</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_aadd8f7916cf40dba064d99fded0f4e48"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#aadd8f7916cf40dba064d99fded0f4e48">grpc_event_engine::experimental::Slice::TakeSubSlice</a></div><div class="ttdeci">Slice TakeSubSlice(size_t pos, size_t n)</div><div class="ttdef"><b>Definition:</b> slice.h:267</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a5a1efa0ff55d5223de121e2800b1acb0"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a5a1efa0ff55d5223de121e2800b1acb0">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedString</a></div><div class="ttdeci">static Out FromCopiedString(const char *s)</div><div class="ttdef"><b>Definition:</b> slice.h:159</div></div>
<div class="ttc" id="astructgrpc__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_type.h:63</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a05e040c1f6365ee1d613a4856fa591d8"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a05e040c1f6365ee1d613a4856fa591d8">grpc_event_engine::experimental::MutableSlice::CreateUninitialized</a></div><div class="ttdeci">static MutableSlice CreateUninitialized(size_t length)</div><div class="ttdef"><b>Definition:</b> slice.h:203</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a084b73506964aa67efcf14ad111c6e6a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a084b73506964aa67efcf14ad111c6e6a">grpc_event_engine::experimental::MutableSlice::begin</a></div><div class="ttdeci">uint8_t * begin()</div><div class="ttdef"><b>Definition:</b> slice.h:214</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a0cf6d2c2c104352bdfe1e5517edcdc58"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a0cf6d2c2c104352bdfe1e5517edcdc58">grpc_event_engine::experimental::Slice::Copy</a></div><div class="ttdeci">Slice Copy() const</div><div class="ttdef"><b>Definition:</b> slice.h:285</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a9c9bd6e139ce9c81cea21b9dff7920c9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a9c9bd6e139ce9c81cea21b9dff7920c9">grpc_event_engine::experimental::Slice::Split</a></div><div class="ttdeci">Slice Split(size_t split)</div><div class="ttdef"><b>Definition:</b> slice.h:279</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a356b53a18d62f5afe8cf058d401abe5f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a356b53a18d62f5afe8cf058d401abe5f">grpc_event_engine::experimental::slice_detail::BaseSlice::Swap</a></div><div class="ttdeci">void Swap(BaseSlice *other)</div><div class="ttdef"><b>Definition:</b> slice.h:107</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a05e040c1f6365ee1d613a4856fa591d8"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a05e040c1f6365ee1d613a4856fa591d8">grpc_event_engine::experimental::MutableSlice::CreateUninitialized</a></div><div class="ttdeci">static MutableSlice CreateUninitialized(size_t length)</div><div class="ttdef"><b>Definition:</b> slice.h:202</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a084b73506964aa67efcf14ad111c6e6a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a084b73506964aa67efcf14ad111c6e6a">grpc_event_engine::experimental::MutableSlice::begin</a></div><div class="ttdeci">uint8_t * begin()</div><div class="ttdef"><b>Definition:</b> slice.h:213</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a0cf6d2c2c104352bdfe1e5517edcdc58"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a0cf6d2c2c104352bdfe1e5517edcdc58">grpc_event_engine::experimental::Slice::Copy</a></div><div class="ttdeci">Slice Copy() const</div><div class="ttdef"><b>Definition:</b> slice.h:284</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a9c9bd6e139ce9c81cea21b9dff7920c9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a9c9bd6e139ce9c81cea21b9dff7920c9">grpc_event_engine::experimental::Slice::Split</a></div><div class="ttdeci">Slice Split(size_t split)</div><div class="ttdef"><b>Definition:</b> slice.h:278</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a356b53a18d62f5afe8cf058d401abe5f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a356b53a18d62f5afe8cf058d401abe5f">grpc_event_engine::experimental::slice_detail::BaseSlice::Swap</a></div><div class="ttdeci">void Swap(BaseSlice *other)</div><div class="ttdef"><b>Definition:</b> slice.h:106</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a53464e9b42a8250a2a58c35cb89c9fd8"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a53464e9b42a8250a2a58c35cb89c9fd8">grpc_event_engine::experimental::slice_detail::BaseSlice::Hash</a></div><div class="ttdeci">uint32_t Hash() const</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a4ed06eff795558e089f0bdc4f2cb433a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a4ed06eff795558e089f0bdc4f2cb433a">grpc_event_engine::experimental::slice_detail::BaseSlice::length</a></div><div class="ttdeci">size_t length() const</div><div class="ttdef"><b>Definition:</b> slice.h:90</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a4ed06eff795558e089f0bdc4f2cb433a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a4ed06eff795558e089f0bdc4f2cb433a">grpc_event_engine::experimental::slice_detail::BaseSlice::length</a></div><div class="ttdeci">size_t length() const</div><div class="ttdef"><b>Definition:</b> slice.h:89</div></div>
<div class="ttc" id="aslice_8h_html_ac334a6c6ad0a729fd4fe521df9f5ecc5"><div class="ttname"><a href="slice_8h.html#ac334a6c6ad0a729fd4fe521df9f5ecc5">grpc_slice_sub</a></div><div class="ttdeci">GPRAPI grpc_slice grpc_slice_sub(grpc_slice s, size_t begin, size_t end)</div><div class="ttdoc">Return a result slice derived from s, which shares a ref count with s, where result....</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_aa54e3c10e034036257443b9157873126"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa54e3c10e034036257443b9157873126">grpc_event_engine::experimental::slice_detail::BaseSlice::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> slice.h:91</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a085e01f425cba2595de671c8a6a71058"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058">grpc_event_engine::experimental::slice_detail::BaseSlice::data</a></div><div class="ttdeci">const uint8_t * data() const</div><div class="ttdef"><b>Definition:</b> slice.h:86</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">grpc_event_engine::experimental::slice_detail::CopyConstructors</a></div><div class="ttdef"><b>Definition:</b> slice.h:159</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_aa54e3c10e034036257443b9157873126"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa54e3c10e034036257443b9157873126">grpc_event_engine::experimental::slice_detail::BaseSlice::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> slice.h:90</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a085e01f425cba2595de671c8a6a71058"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a085e01f425cba2595de671c8a6a71058">grpc_event_engine::experimental::slice_detail::BaseSlice::data</a></div><div class="ttdeci">const uint8_t * data() const</div><div class="ttdef"><b>Definition:</b> slice.h:85</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html">grpc_event_engine::experimental::slice_detail::CopyConstructors</a></div><div class="ttdef"><b>Definition:</b> slice.h:158</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_html"><div class="ttname"><a href="namespacegrpc__event__engine.html">grpc_event_engine</a></div><div class="ttdef"><b>Definition:</b> endpoint_config.h:24</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ac4097286dc6651083a31cdc67169adb4"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac4097286dc6651083a31cdc67169adb4">grpc_event_engine::experimental::slice_detail::BaseSlice::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const BaseSlice &amp;other) const</div><div class="ttdef"><b>Definition:</b> slice.h:96</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ad4b21b847cef788178a4485a221c6c8a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ad4b21b847cef788178a4485a221c6c8a">grpc_event_engine::experimental::slice_detail::BaseSlice::cend</a></div><div class="ttdeci">const uint8_t * cend() const</div><div class="ttdef"><b>Definition:</b> slice.h:62</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ac4097286dc6651083a31cdc67169adb4"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac4097286dc6651083a31cdc67169adb4">grpc_event_engine::experimental::slice_detail::BaseSlice::is_equivalent</a></div><div class="ttdeci">bool is_equivalent(const BaseSlice &amp;other) const</div><div class="ttdef"><b>Definition:</b> slice.h:95</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ad4b21b847cef788178a4485a221c6c8a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ad4b21b847cef788178a4485a221c6c8a">grpc_event_engine::experimental::slice_detail::BaseSlice::cend</a></div><div class="ttdeci">const uint8_t * cend() const</div><div class="ttdef"><b>Definition:</b> slice.h:61</div></div>
<div class="ttc" id="aslice__type_8h_html_ae965fb2ee1a646253cdbd49d82b0b6c5"><div class="ttname"><a href="slice__type_8h.html#ae965fb2ee1a646253cdbd49d82b0b6c5">GRPC_SLICE_LENGTH</a></div><div class="ttdeci">#define GRPC_SLICE_LENGTH(slice)</div><div class="ttdef"><b>Definition:</b> slice_type.h:102</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a0ee6a31aa8a7ff414ec5731f6604fdc2"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a0ee6a31aa8a7ff414ec5731f6604fdc2">grpc_event_engine::experimental::MutableSlice::data</a></div><div class="ttdeci">uint8_t * data()</div><div class="ttdef"><b>Definition:</b> slice.h:216</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_ab0a4edaedf3b72f850bcfaa269ed8c03"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ab0a4edaedf3b72f850bcfaa269ed8c03">grpc_event_engine::experimental::MutableSlice::TakeSubSlice</a></div><div class="ttdeci">MutableSlice TakeSubSlice(size_t pos, size_t n)</div><div class="ttdef"><b>Definition:</b> slice.h:209</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_a0ee6a31aa8a7ff414ec5731f6604fdc2"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#a0ee6a31aa8a7ff414ec5731f6604fdc2">grpc_event_engine::experimental::MutableSlice::data</a></div><div class="ttdeci">uint8_t * data()</div><div class="ttdef"><b>Definition:</b> slice.h:215</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_ab0a4edaedf3b72f850bcfaa269ed8c03"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#ab0a4edaedf3b72f850bcfaa269ed8c03">grpc_event_engine::experimental::MutableSlice::TakeSubSlice</a></div><div class="ttdeci">MutableSlice TakeSubSlice(size_t pos, size_t n)</div><div class="ttdef"><b>Definition:</b> slice.h:208</div></div>
<div class="ttc" id="aslice_8h_html_a0b714cdd6fa993b1d47eb08f2d5f8fc1"><div class="ttname"><a href="slice_8h.html#a0b714cdd6fa993b1d47eb08f2d5f8fc1">grpc_slice_malloc</a></div><div class="ttdeci">GPRAPI grpc_slice grpc_slice_malloc(size_t length)</div><div class="ttdoc">Equivalent to grpc_slice_new(malloc(len), len, free), but saves one malloc() call.</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a035712a228dcc8b52e00d178bb84c86a"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a035712a228dcc8b52e00d178bb84c86a">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedString</a></div><div class="ttdeci">static Out FromCopiedString(absl::string_view s)</div><div class="ttdef"><b>Definition:</b> slice.h:163</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors_html_a035712a228dcc8b52e00d178bb84c86a"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_copy_constructors.html#a035712a228dcc8b52e00d178bb84c86a">grpc_event_engine::experimental::slice_detail::CopyConstructors::FromCopiedString</a></div><div class="ttdeci">static Out FromCopiedString(absl::string_view s)</div><div class="ttdef"><b>Definition:</b> slice.h:162</div></div>
<div class="ttc" id="aslice_8h_html"><div class="ttname"><a href="slice_8h.html">slice.h</a></div></div>
<div class="ttc" id="asupport_2port__platform_8h_html_a1ccd8664edb82d0da42a252c40f19bd5"><div class="ttname"><a href="support_2port__platform_8h.html#a1ccd8664edb82d0da42a252c40f19bd5">GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND</a></div><div class="ttdeci">#define GPR_MSVC_EMPTY_BASE_CLASS_WORKAROUND</div><div class="ttdef"><b>Definition:</b> port_platform.h:844</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a98ac64e5f279f9d4803e816c9b0936d9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a98ac64e5f279f9d4803e816c9b0936d9">grpc_event_engine::experimental::Slice::Slice</a></div><div class="ttdeci">Slice(const grpc_slice &amp;slice)</div><div class="ttdef"><b>Definition:</b> slice.h:228</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a02c8ce50c7aaf8b3f3a5b8292c6945e3"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a02c8ce50c7aaf8b3f3a5b8292c6945e3">grpc_event_engine::experimental::slice_detail::BaseSlice::end</a></div><div class="ttdeci">const uint8_t * end() const</div><div class="ttdef"><b>Definition:</b> slice.h:60</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_af5fb151e2ab2da4f99aaf75d60f5fb7c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#af5fb151e2ab2da4f99aaf75d60f5fb7c">grpc_event_engine::experimental::MutableSlice::MutableSlice</a></div><div class="ttdeci">MutableSlice(MutableSlice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:196</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a63a6a73fe57a3e5eb048927fecbe1f62"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a63a6a73fe57a3e5eb048927fecbe1f62">grpc_event_engine::experimental::slice_detail::BaseSlice::mutable_data</a></div><div class="ttdeci">uint8_t * mutable_data()</div><div class="ttdef"><b>Definition:</b> slice.h:110</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a37a881979ae52d0c51aa1a3ca88f1007"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a37a881979ae52d0c51aa1a3ca88f1007">grpc_event_engine::experimental::slice_detail::BaseSlice::TakeCSlice</a></div><div class="ttdeci">grpc_slice TakeCSlice()</div><div class="ttdef"><b>Definition:</b> slice.h:69</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_aa886b22551bc90df57fc87ba78367106"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">grpc_event_engine::experimental::slice_detail::BaseSlice::as_string_view</a></div><div class="ttdeci">absl::string_view as_string_view() const</div><div class="ttdef"><b>Definition:</b> slice.h:76</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html_a98ac64e5f279f9d4803e816c9b0936d9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html#a98ac64e5f279f9d4803e816c9b0936d9">grpc_event_engine::experimental::Slice::Slice</a></div><div class="ttdeci">Slice(const grpc_slice &amp;slice)</div><div class="ttdef"><b>Definition:</b> slice.h:227</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a02c8ce50c7aaf8b3f3a5b8292c6945e3"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a02c8ce50c7aaf8b3f3a5b8292c6945e3">grpc_event_engine::experimental::slice_detail::BaseSlice::end</a></div><div class="ttdeci">const uint8_t * end() const</div><div class="ttdef"><b>Definition:</b> slice.h:59</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_mutable_slice_html_af5fb151e2ab2da4f99aaf75d60f5fb7c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_mutable_slice.html#af5fb151e2ab2da4f99aaf75d60f5fb7c">grpc_event_engine::experimental::MutableSlice::MutableSlice</a></div><div class="ttdeci">MutableSlice(MutableSlice &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice.h:195</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a63a6a73fe57a3e5eb048927fecbe1f62"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a63a6a73fe57a3e5eb048927fecbe1f62">grpc_event_engine::experimental::slice_detail::BaseSlice::mutable_data</a></div><div class="ttdeci">uint8_t * mutable_data()</div><div class="ttdef"><b>Definition:</b> slice.h:109</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a37a881979ae52d0c51aa1a3ca88f1007"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a37a881979ae52d0c51aa1a3ca88f1007">grpc_event_engine::experimental::slice_detail::BaseSlice::TakeCSlice</a></div><div class="ttdeci">grpc_slice TakeCSlice()</div><div class="ttdef"><b>Definition:</b> slice.h:68</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_aa886b22551bc90df57fc87ba78367106"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#aa886b22551bc90df57fc87ba78367106">grpc_event_engine::experimental::slice_detail::BaseSlice::as_string_view</a></div><div class="ttdeci">absl::string_view as_string_view() const</div><div class="ttdef"><b>Definition:</b> slice.h:75</div></div>
<div class="ttc" id="aslice_8h_html_a0b428779eb2f6b030f4a8bcad2c9416f"><div class="ttname"><a href="slice_8h.html#a0b428779eb2f6b030f4a8bcad2c9416f">grpc_slice_copy</a></div><div class="ttdeci">GPRAPI grpc_slice grpc_slice_copy(grpc_slice s)</div><div class="ttdoc">Copy slice - create a new slice that contains the same data as s.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ab1ac14170bdaaa86bf0c7641629cdbb7"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab1ac14170bdaaa86bf0c7641629cdbb7">grpc_event_engine::experimental::slice_detail::BaseSlice::c_slice_ptr</a></div><div class="ttdeci">grpc_slice * c_slice_ptr()</div><div class="ttdef"><b>Definition:</b> slice.h:112</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ab1ac14170bdaaa86bf0c7641629cdbb7"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ab1ac14170bdaaa86bf0c7641629cdbb7">grpc_event_engine::experimental::slice_detail::BaseSlice::c_slice_ptr</a></div><div class="ttdeci">grpc_slice * c_slice_ptr()</div><div class="ttdef"><b>Definition:</b> slice.h:111</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ac7bc96080b2839bd8624298ba11711ad"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac7bc96080b2839bd8624298ba11711ad">grpc_event_engine::experimental::slice_detail::BaseSlice::SetCSlice</a></div><div class="ttdeci">void SetCSlice(const grpc_slice &amp;slice)</div><div class="ttdef"><b>Definition:</b> slice.h:108</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a886211605e09a67f83c7c41026973238"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">grpc_event_engine::experimental::slice_detail::BaseSlice::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdef"><b>Definition:</b> slice.h:89</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_ac7bc96080b2839bd8624298ba11711ad"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#ac7bc96080b2839bd8624298ba11711ad">grpc_event_engine::experimental::slice_detail::BaseSlice::SetCSlice</a></div><div class="ttdeci">void SetCSlice(const grpc_slice &amp;slice)</div><div class="ttdef"><b>Definition:</b> slice.h:107</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice_html_a886211605e09a67f83c7c41026973238"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1slice__detail_1_1_base_slice.html#a886211605e09a67f83c7c41026973238">grpc_event_engine::experimental::slice_detail::BaseSlice::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdef"><b>Definition:</b> slice.h:88</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -73,8 +73,7 @@ $(function() {
<div class="title">slice_buffer.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<div class="textblock"><code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &quot;absl/strings/string_view.h&quot;</code><br />
@ -85,6 +84,7 @@ $(function() {
<code>#include &lt;<a class="el" href="slice_8h_source.html">grpc/slice.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="slice__buffer_8h_source.html">grpc/slice_buffer.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2log_8h_source.html">grpc/support/log.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="event__engine_2slice__buffer_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -104,7 +104,7 @@ Namespaces</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -87,156 +87,155 @@ $(function() {
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef GRPC_EVENT_ENGINE_SLICE_BUFFER_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define GRPC_EVENT_ENGINE_SLICE_BUFFER_H</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;string.h&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;absl/utility/utility.h&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__cast_8h.html">grpc/event_engine/internal/slice_cast.h</a>&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="event__engine_2slice_8h.html">grpc/event_engine/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="impl_2codegen_2slice_8h.html">grpc/impl/codegen/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice_8h.html">grpc/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__buffer_8h.html">grpc/slice_buffer.h</a>&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2log_8h.html">grpc/support/log.h</a>&gt;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span>experimental {</div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html"> 53</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a> {</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9"> 55</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>() { <a class="code" href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a>(&amp;slice_buffer_); }</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ade0e4e5abe166c1827e58450d9fb5afb"> 57</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ade0e4e5abe166c1827e58450d9fb5afb">SliceBuffer</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp;&amp; other) noexcept</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; : slice_buffer_(other.slice_buffer_) {</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a>(&amp;slice_buffer_);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aba509a43e47584b7e6172aed749a57f6"> 64</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aba509a43e47584b7e6172aed749a57f6">~SliceBuffer</a>() { <a class="code" href="slice__buffer_8h.html#a47be0cfbcaf8e0824133e61019f18966">grpc_slice_buffer_destroy</a>(&amp;slice_buffer_); }</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abf41faf44ae5b4f04c3383f25f9087a9">operator=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac5ba6ea93b21f1e543e980748f04a126"> 67</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac5ba6ea93b21f1e543e980748f04a126">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp;&amp; other) noexcept {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa7e41f9489aa8b25b6e47c8e556accad"> 73</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa7e41f9489aa8b25b6e47c8e556accad">Swap</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) {</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a3dfb313a28fbd62358473e81b431d070">Append</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> slice);</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a1a24aeb83b28f8b4efdb4b42dd1a055b">AppendIndexed</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> slice);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a16d16cca5897e73bb04b22766f7f2377"> 86</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a16d16cca5897e73bb04b22766f7f2377">Count</a>() { <span class="keywordflow">return</span> slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ac6b9b99f100ac02280fe6ba0edc754cc">count</a>; }</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; </div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a89375d7230133831db6afb1a4067455f"> 89</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a89375d7230133831db6afb1a4067455f">RemoveLastNBytes</a>(<span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="slice__buffer_8h.html#aaf8d6d9607ecd52d7f41b9b0ef80a53c">grpc_slice_buffer_trim_end</a>(&amp;slice_buffer_, n, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a686e07ab26b3b6cd9ec77f2570127a61"> 94</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a686e07ab26b3b6cd9ec77f2570127a61">MoveFirstNBytesIntoBuffer</a>(<span class="keywordtype">size_t</span> n, <span class="keywordtype">void</span>* dst) {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="slice__buffer_8h.html#ad2ab9bf61fe0a25d0684f0a56bd0d2bd">grpc_slice_buffer_move_first_into_buffer</a>(&amp;slice_buffer_, n, dst);</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; </div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a98197734ac603a88cf2264fdf7fdb9b9"> 100</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a98197734ac603a88cf2264fdf7fdb9b9">MoveLastNBytesIntoSliceBuffer</a>(<span class="keywordtype">size_t</span> n, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) {</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="slice__buffer_8h.html#aaf8d6d9607ecd52d7f41b9b0ef80a53c">grpc_slice_buffer_trim_end</a>(&amp;slice_buffer_, n, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac8f75c8c8866df72cd8a99cd3a6bcf0a"> 105</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac8f75c8c8866df72cd8a99cd3a6bcf0a">MoveFirstNBytesIntoSliceBuffer</a>(<span class="keywordtype">size_t</span> n, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) {</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="slice__buffer_8h.html#afadc904499b2963055d9f472b63f147a">grpc_slice_buffer_move_first</a>(&amp;slice_buffer_, n, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a8279d76edb2d6fcbb052ea8c806485a1"> 110</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a8279d76edb2d6fcbb052ea8c806485a1">Clear</a>() { <a class="code" href="slice__buffer_8h.html#a250c487f6db5a26977fa416bca797ee7">grpc_slice_buffer_reset_and_unref</a>(&amp;slice_buffer_); }</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa24098dc70146ac31fc64132e180df95">TakeFirst</a>();</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a23722209d8ca1e154b57fdbc36e98b2f">Prepend</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> slice);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a17eb15c28740a26c188bac8b07c4d1c1">RefSlice</a>(<span class="keywordtype">size_t</span> index);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abd161dca1b657f4ebd15cf2fd4fcd002"> 124</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abd161dca1b657f4ebd15cf2fd4fcd002">operator[]</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> internal::SliceCast&lt;Slice&gt;(slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ac37e9d19ec31eab8f429d2b4af908256">slices</a>[index]);</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa916497f83ef70c51aa09b1184f9cd49"> 129</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa916497f83ef70c51aa09b1184f9cd49">MutableSliceAt</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> internal::SliceCast&lt;Slice&gt;(slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ac37e9d19ec31eab8f429d2b4af908256">slices</a>[index]);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a58482c45684909c532608a771e7e5a72"> 134</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a58482c45684909c532608a771e7e5a72">Length</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ad796dcdd16fbb680a7a5368228d20127">length</a>; }</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; </div>
<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aca36a90ea747f310ebf1962af5a45cfb"> 137</a></span>&#160; <a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a>* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aca36a90ea747f310ebf1962af5a45cfb">c_slice_buffer</a>() { <span class="keywordflow">return</span> &amp;slice_buffer_; }</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; </div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">// Returns a SliceBuffer that transfers slices into this new SliceBuffer,</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// leaving the input parameter empty.</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abc8a8e5de16e1cdb7390af5d8e898091"> 141</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abc8a8e5de16e1cdb7390af5d8e898091">TakeCSliceBuffer</a>(<a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a>&amp; slice_buffer) {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>(&amp;slice_buffer);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Transfers slices into this new SliceBuffer, leaving the parameter empty.</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// Does not take ownership of the slice_buffer argument.</span></div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>(<a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a>* slice_buffer) {</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a>(&amp;slice_buffer_);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, slice_buffer);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> slice_buffer_;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;};</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;} <span class="comment">// namespace experimental</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;} <span class="comment">// namespace grpc_event_engine</span></div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#endif // GRPC_EVENT_ENGINE_SLICE_BUFFER_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;absl/utility/utility.h&quot;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__cast_8h.html">grpc/event_engine/internal/slice_cast.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="event__engine_2slice_8h.html">grpc/event_engine/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="impl_2codegen_2slice_8h.html">grpc/impl/codegen/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice_8h.html">grpc/slice.h</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="slice__buffer_8h.html">grpc/slice_buffer.h</a>&gt;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2log_8h.html">grpc/support/log.h</a>&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">namespace </span>experimental {</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html"> 52</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a> {</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9"> 54</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>() { <a class="code" href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a>(&amp;slice_buffer_); }</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ade0e4e5abe166c1827e58450d9fb5afb"> 56</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ade0e4e5abe166c1827e58450d9fb5afb">SliceBuffer</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp;&amp; other) noexcept</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; : slice_buffer_(other.slice_buffer_) {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a>(&amp;slice_buffer_);</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aba509a43e47584b7e6172aed749a57f6"> 63</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aba509a43e47584b7e6172aed749a57f6">~SliceBuffer</a>() { <a class="code" href="slice__buffer_8h.html#a47be0cfbcaf8e0824133e61019f18966">grpc_slice_buffer_destroy</a>(&amp;slice_buffer_); }</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abf41faf44ae5b4f04c3383f25f9087a9">operator=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac5ba6ea93b21f1e543e980748f04a126"> 66</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac5ba6ea93b21f1e543e980748f04a126">operator=</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp;&amp; other) noexcept {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; </div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa7e41f9489aa8b25b6e47c8e556accad"> 72</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa7e41f9489aa8b25b6e47c8e556accad">Swap</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a3dfb313a28fbd62358473e81b431d070">Append</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> slice);</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a1a24aeb83b28f8b4efdb4b42dd1a055b">AppendIndexed</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> slice);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a16d16cca5897e73bb04b22766f7f2377"> 85</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a16d16cca5897e73bb04b22766f7f2377">Count</a>() { <span class="keywordflow">return</span> slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ac6b9b99f100ac02280fe6ba0edc754cc">count</a>; }</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a89375d7230133831db6afb1a4067455f"> 88</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a89375d7230133831db6afb1a4067455f">RemoveLastNBytes</a>(<span class="keywordtype">size_t</span> n) {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="slice__buffer_8h.html#aaf8d6d9607ecd52d7f41b9b0ef80a53c">grpc_slice_buffer_trim_end</a>(&amp;slice_buffer_, n, <span class="keyword">nullptr</span>);</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a686e07ab26b3b6cd9ec77f2570127a61"> 93</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a686e07ab26b3b6cd9ec77f2570127a61">MoveFirstNBytesIntoBuffer</a>(<span class="keywordtype">size_t</span> n, <span class="keywordtype">void</span>* dst) {</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="slice__buffer_8h.html#ad2ab9bf61fe0a25d0684f0a56bd0d2bd">grpc_slice_buffer_move_first_into_buffer</a>(&amp;slice_buffer_, n, dst);</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a98197734ac603a88cf2264fdf7fdb9b9"> 99</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a98197734ac603a88cf2264fdf7fdb9b9">MoveLastNBytesIntoSliceBuffer</a>(<span class="keywordtype">size_t</span> n, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) {</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="slice__buffer_8h.html#aaf8d6d9607ecd52d7f41b9b0ef80a53c">grpc_slice_buffer_trim_end</a>(&amp;slice_buffer_, n, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac8f75c8c8866df72cd8a99cd3a6bcf0a"> 104</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac8f75c8c8866df72cd8a99cd3a6bcf0a">MoveFirstNBytesIntoSliceBuffer</a>(<span class="keywordtype">size_t</span> n, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>&amp; other) {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="slice__buffer_8h.html#afadc904499b2963055d9f472b63f147a">grpc_slice_buffer_move_first</a>(&amp;slice_buffer_, n, &amp;other.slice_buffer_);</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a8279d76edb2d6fcbb052ea8c806485a1"> 109</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a8279d76edb2d6fcbb052ea8c806485a1">Clear</a>() { <a class="code" href="slice__buffer_8h.html#a250c487f6db5a26977fa416bca797ee7">grpc_slice_buffer_reset_and_unref</a>(&amp;slice_buffer_); }</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa24098dc70146ac31fc64132e180df95">TakeFirst</a>();</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a23722209d8ca1e154b57fdbc36e98b2f">Prepend</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> slice);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a17eb15c28740a26c188bac8b07c4d1c1">RefSlice</a>(<span class="keywordtype">size_t</span> index);</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abd161dca1b657f4ebd15cf2fd4fcd002"> 123</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abd161dca1b657f4ebd15cf2fd4fcd002">operator[]</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> internal::SliceCast&lt;Slice&gt;(slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ac37e9d19ec31eab8f429d2b4af908256">slices</a>[index]);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa916497f83ef70c51aa09b1184f9cd49"> 128</a></span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice.html">Slice</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa916497f83ef70c51aa09b1184f9cd49">MutableSliceAt</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> internal::SliceCast&lt;Slice&gt;(slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ac37e9d19ec31eab8f429d2b4af908256">slices</a>[index]);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a58482c45684909c532608a771e7e5a72"> 133</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a58482c45684909c532608a771e7e5a72">Length</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> slice_buffer_.<a class="code" href="structgrpc__slice__buffer.html#ad796dcdd16fbb680a7a5368228d20127">length</a>; }</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aca36a90ea747f310ebf1962af5a45cfb"> 136</a></span>&#160; <a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a>* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aca36a90ea747f310ebf1962af5a45cfb">c_slice_buffer</a>() { <span class="keywordflow">return</span> &amp;slice_buffer_; }</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Returns a SliceBuffer that transfers slices into this new SliceBuffer,</span></div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">// leaving the input parameter empty.</span></div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abc8a8e5de16e1cdb7390af5d8e898091"> 140</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abc8a8e5de16e1cdb7390af5d8e898091">TakeCSliceBuffer</a>(<a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a>&amp; slice_buffer) {</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>(&amp;slice_buffer);</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; </div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// Transfers slices into this new SliceBuffer, leaving the parameter empty.</span></div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Does not take ownership of the slice_buffer argument.</span></div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">explicit</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">SliceBuffer</a>(<a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a>* slice_buffer) {</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a>(&amp;slice_buffer_);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a>(&amp;slice_buffer_, slice_buffer);</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> slice_buffer_;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;};</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;} <span class="comment">// namespace experimental</span></div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;} <span class="comment">// namespace grpc_event_engine</span></div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#endif // GRPC_EVENT_ENGINE_SLICE_BUFFER_H</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_abc8a8e5de16e1cdb7390af5d8e898091"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abc8a8e5de16e1cdb7390af5d8e898091">grpc_event_engine::experimental::SliceBuffer::TakeCSliceBuffer</a></div><div class="ttdeci">static SliceBuffer TakeCSliceBuffer(grpc_slice_buffer &amp;slice_buffer)</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:141</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_abc8a8e5de16e1cdb7390af5d8e898091"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abc8a8e5de16e1cdb7390af5d8e898091">grpc_event_engine::experimental::SliceBuffer::TakeCSliceBuffer</a></div><div class="ttdeci">static SliceBuffer TakeCSliceBuffer(grpc_slice_buffer &amp;slice_buffer)</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:140</div></div>
<div class="ttc" id="aslice__buffer_8h_html_a47be0cfbcaf8e0824133e61019f18966"><div class="ttname"><a href="slice__buffer_8h.html#a47be0cfbcaf8e0824133e61019f18966">grpc_slice_buffer_destroy</a></div><div class="ttdeci">GPRAPI void grpc_slice_buffer_destroy(grpc_slice_buffer *sb)</div><div class="ttdoc">destroy a slice buffer - unrefs any held elements</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aa7e41f9489aa8b25b6e47c8e556accad"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa7e41f9489aa8b25b6e47c8e556accad">grpc_event_engine::experimental::SliceBuffer::Swap</a></div><div class="ttdeci">void Swap(SliceBuffer &amp;other)</div><div class="ttdoc">Swap the contents of this SliceBuffer with the contents of another.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:73</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aa7e41f9489aa8b25b6e47c8e556accad"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa7e41f9489aa8b25b6e47c8e556accad">grpc_event_engine::experimental::SliceBuffer::Swap</a></div><div class="ttdeci">void Swap(SliceBuffer &amp;other)</div><div class="ttdoc">Swap the contents of this SliceBuffer with the contents of another.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:72</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a3dfb313a28fbd62358473e81b431d070"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a3dfb313a28fbd62358473e81b431d070">grpc_event_engine::experimental::SliceBuffer::Append</a></div><div class="ttdeci">void Append(Slice slice)</div><div class="ttdoc">Appends a new slice into the SliceBuffer and makes an attempt to merge this slice with the last slice...</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a17eb15c28740a26c188bac8b07c4d1c1"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a17eb15c28740a26c188bac8b07c4d1c1">grpc_event_engine::experimental::SliceBuffer::RefSlice</a></div><div class="ttdeci">Slice RefSlice(size_t index)</div><div class="ttdoc">Increased the ref-count of slice at the specified index and returns the associated slice.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a1a24aeb83b28f8b4efdb4b42dd1a055b"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a1a24aeb83b28f8b4efdb4b42dd1a055b">grpc_event_engine::experimental::SliceBuffer::AppendIndexed</a></div><div class="ttdeci">size_t AppendIndexed(Slice slice)</div><div class="ttdoc">Adds a new slice into the SliceBuffer at the next available index.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html">grpc_event_engine::experimental::Slice</a></div><div class="ttdef"><b>Definition:</b> slice.h:222</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice.html">grpc_event_engine::experimental::Slice</a></div><div class="ttdef"><b>Definition:</b> slice.h:221</div></div>
<div class="ttc" id="astructgrpc__slice__buffer_html_ac37e9d19ec31eab8f429d2b4af908256"><div class="ttname"><a href="structgrpc__slice__buffer.html#ac37e9d19ec31eab8f429d2b4af908256">grpc_slice_buffer::slices</a></div><div class="ttdeci">grpc_slice * slices</div><div class="ttdoc">slices in the array (Points to the first valid grpc_slice in the array)</div><div class="ttdef"><b>Definition:</b> slice_type.h:87</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_abd161dca1b657f4ebd15cf2fd4fcd002"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abd161dca1b657f4ebd15cf2fd4fcd002">grpc_event_engine::experimental::SliceBuffer::operator[]</a></div><div class="ttdeci">const Slice &amp; operator[](size_t index) const</div><div class="ttdoc">Array access into the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:124</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_abd161dca1b657f4ebd15cf2fd4fcd002"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abd161dca1b657f4ebd15cf2fd4fcd002">grpc_event_engine::experimental::SliceBuffer::operator[]</a></div><div class="ttdeci">const Slice &amp; operator[](size_t index) const</div><div class="ttdoc">Array access into the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:123</div></div>
<div class="ttc" id="aslice__buffer_8h_html_afadc904499b2963055d9f472b63f147a"><div class="ttname"><a href="slice__buffer_8h.html#afadc904499b2963055d9f472b63f147a">grpc_slice_buffer_move_first</a></div><div class="ttdeci">GPRAPI void grpc_slice_buffer_move_first(grpc_slice_buffer *src, size_t n, grpc_slice_buffer *dst)</div><div class="ttdoc">move the first n bytes of src into dst</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aca36a90ea747f310ebf1962af5a45cfb"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aca36a90ea747f310ebf1962af5a45cfb">grpc_event_engine::experimental::SliceBuffer::c_slice_buffer</a></div><div class="ttdeci">grpc_slice_buffer * c_slice_buffer()</div><div class="ttdoc">Return a pointer to the back raw grpc_slice_buffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:137</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aca36a90ea747f310ebf1962af5a45cfb"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aca36a90ea747f310ebf1962af5a45cfb">grpc_event_engine::experimental::SliceBuffer::c_slice_buffer</a></div><div class="ttdeci">grpc_slice_buffer * c_slice_buffer()</div><div class="ttdoc">Return a pointer to the back raw grpc_slice_buffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:136</div></div>
<div class="ttc" id="asupport_2log_8h_html"><div class="ttname"><a href="support_2log_8h.html">log.h</a></div></div>
<div class="ttc" id="astructgrpc__slice__buffer_html_ac6b9b99f100ac02280fe6ba0edc754cc"><div class="ttname"><a href="structgrpc__slice__buffer.html#ac6b9b99f100ac02280fe6ba0edc754cc">grpc_slice_buffer::count</a></div><div class="ttdeci">size_t count</div><div class="ttdoc">the number of slices in the array</div><div class="ttdef"><b>Definition:</b> slice_type.h:89</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a8279d76edb2d6fcbb052ea8c806485a1"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a8279d76edb2d6fcbb052ea8c806485a1">grpc_event_engine::experimental::SliceBuffer::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Removes and unrefs all slices in the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:110</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">grpc_event_engine::experimental::SliceBuffer</a></div><div class="ttdoc">A Wrapper around grpc_slice_buffer pointer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:53</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a89375d7230133831db6afb1a4067455f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a89375d7230133831db6afb1a4067455f">grpc_event_engine::experimental::SliceBuffer::RemoveLastNBytes</a></div><div class="ttdeci">void RemoveLastNBytes(size_t n)</div><div class="ttdoc">Removes/deletes the last n bytes in the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:89</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a8279d76edb2d6fcbb052ea8c806485a1"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a8279d76edb2d6fcbb052ea8c806485a1">grpc_event_engine::experimental::SliceBuffer::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdoc">Removes and unrefs all slices in the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:109</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">grpc_event_engine::experimental::SliceBuffer</a></div><div class="ttdoc">A Wrapper around grpc_slice_buffer pointer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:52</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a89375d7230133831db6afb1a4067455f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a89375d7230133831db6afb1a4067455f">grpc_event_engine::experimental::SliceBuffer::RemoveLastNBytes</a></div><div class="ttdeci">void RemoveLastNBytes(size_t n)</div><div class="ttdoc">Removes/deletes the last n bytes in the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:88</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_abf41faf44ae5b4f04c3383f25f9087a9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#abf41faf44ae5b4f04c3383f25f9087a9">grpc_event_engine::experimental::SliceBuffer::operator=</a></div><div class="ttdeci">SliceBuffer &amp; operator=(const SliceBuffer &amp;)=delete</div></div>
<div class="ttc" id="aslice__cast_8h_html"><div class="ttname"><a href="slice__cast_8h.html">slice_cast.h</a></div></div>
<div class="ttc" id="astructgrpc__slice__buffer_html_ad796dcdd16fbb680a7a5368228d20127"><div class="ttname"><a href="structgrpc__slice__buffer.html#ad796dcdd16fbb680a7a5368228d20127">grpc_slice_buffer::length</a></div><div class="ttdeci">size_t length</div><div class="ttdoc">the combined length of all slices in the array</div><div class="ttdef"><b>Definition:</b> slice_type.h:94</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_ac8f75c8c8866df72cd8a99cd3a6bcf0a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac8f75c8c8866df72cd8a99cd3a6bcf0a">grpc_event_engine::experimental::SliceBuffer::MoveFirstNBytesIntoSliceBuffer</a></div><div class="ttdeci">void MoveFirstNBytesIntoSliceBuffer(size_t n, SliceBuffer &amp;other)</div><div class="ttdoc">Move the first n bytes of the SliceBuffer into the other SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:105</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_ac8f75c8c8866df72cd8a99cd3a6bcf0a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac8f75c8c8866df72cd8a99cd3a6bcf0a">grpc_event_engine::experimental::SliceBuffer::MoveFirstNBytesIntoSliceBuffer</a></div><div class="ttdeci">void MoveFirstNBytesIntoSliceBuffer(size_t n, SliceBuffer &amp;other)</div><div class="ttdoc">Move the first n bytes of the SliceBuffer into the other SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:104</div></div>
<div class="ttc" id="aslice__buffer_8h_html_a250c487f6db5a26977fa416bca797ee7"><div class="ttname"><a href="slice__buffer_8h.html#a250c487f6db5a26977fa416bca797ee7">grpc_slice_buffer_reset_and_unref</a></div><div class="ttdeci">GPRAPI void grpc_slice_buffer_reset_and_unref(grpc_slice_buffer *sb)</div><div class="ttdoc">clear a slice buffer, unref all elements</div></div>
<div class="ttc" id="aevent__engine_2slice_8h_html"><div class="ttname"><a href="event__engine_2slice_8h.html">slice.h</a></div></div>
<div class="ttc" id="aslice__buffer_8h_html"><div class="ttname"><a href="slice__buffer_8h.html">slice_buffer.h</a></div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a58482c45684909c532608a771e7e5a72"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a58482c45684909c532608a771e7e5a72">grpc_event_engine::experimental::SliceBuffer::Length</a></div><div class="ttdeci">size_t Length() const</div><div class="ttdoc">The total number of bytes held by the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:134</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a58482c45684909c532608a771e7e5a72"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a58482c45684909c532608a771e7e5a72">grpc_event_engine::experimental::SliceBuffer::Length</a></div><div class="ttdeci">size_t Length() const</div><div class="ttdoc">The total number of bytes held by the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:133</div></div>
<div class="ttc" id="aslice__buffer_8h_html_a3a073a017852ef88d7a8b884cecd3998"><div class="ttname"><a href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a></div><div class="ttdeci">GPRAPI void grpc_slice_buffer_init(grpc_slice_buffer *sb)</div><div class="ttdoc">initialize a slice buffer</div></div>
<div class="ttc" id="aslice__buffer_8h_html_aaf8d6d9607ecd52d7f41b9b0ef80a53c"><div class="ttname"><a href="slice__buffer_8h.html#aaf8d6d9607ecd52d7f41b9b0ef80a53c">grpc_slice_buffer_trim_end</a></div><div class="ttdeci">GPRAPI void grpc_slice_buffer_trim_end(grpc_slice_buffer *sb, size_t n, grpc_slice_buffer *garbage)</div><div class="ttdoc">remove n bytes from the end of a slice buffer</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aa916497f83ef70c51aa09b1184f9cd49"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa916497f83ef70c51aa09b1184f9cd49">grpc_event_engine::experimental::SliceBuffer::MutableSliceAt</a></div><div class="ttdeci">Slice &amp; MutableSliceAt(size_t index) const</div><div class="ttdoc">Return mutable reference to the slice at the specified index.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:129</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a16d16cca5897e73bb04b22766f7f2377"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a16d16cca5897e73bb04b22766f7f2377">grpc_event_engine::experimental::SliceBuffer::Count</a></div><div class="ttdeci">size_t Count()</div><div class="ttdoc">Returns the number of slices held by the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:86</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aa916497f83ef70c51aa09b1184f9cd49"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa916497f83ef70c51aa09b1184f9cd49">grpc_event_engine::experimental::SliceBuffer::MutableSliceAt</a></div><div class="ttdeci">Slice &amp; MutableSliceAt(size_t index) const</div><div class="ttdoc">Return mutable reference to the slice at the specified index.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:128</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a16d16cca5897e73bb04b22766f7f2377"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a16d16cca5897e73bb04b22766f7f2377">grpc_event_engine::experimental::SliceBuffer::Count</a></div><div class="ttdeci">size_t Count()</div><div class="ttdoc">Returns the number of slices held by the SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:85</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_html"><div class="ttname"><a href="namespacegrpc__event__engine.html">grpc_event_engine</a></div><div class="ttdef"><b>Definition:</b> endpoint_config.h:24</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a686e07ab26b3b6cd9ec77f2570127a61"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a686e07ab26b3b6cd9ec77f2570127a61">grpc_event_engine::experimental::SliceBuffer::MoveFirstNBytesIntoBuffer</a></div><div class="ttdeci">void MoveFirstNBytesIntoBuffer(size_t n, void *dst)</div><div class="ttdoc">Move the first n bytes of the SliceBuffer into a memory pointed to by dst.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:94</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_ac5ba6ea93b21f1e543e980748f04a126"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac5ba6ea93b21f1e543e980748f04a126">grpc_event_engine::experimental::SliceBuffer::operator=</a></div><div class="ttdeci">SliceBuffer &amp; operator=(SliceBuffer &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:67</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a686e07ab26b3b6cd9ec77f2570127a61"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a686e07ab26b3b6cd9ec77f2570127a61">grpc_event_engine::experimental::SliceBuffer::MoveFirstNBytesIntoBuffer</a></div><div class="ttdeci">void MoveFirstNBytesIntoBuffer(size_t n, void *dst)</div><div class="ttdoc">Move the first n bytes of the SliceBuffer into a memory pointed to by dst.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:93</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_ac5ba6ea93b21f1e543e980748f04a126"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ac5ba6ea93b21f1e543e980748f04a126">grpc_event_engine::experimental::SliceBuffer::operator=</a></div><div class="ttdeci">SliceBuffer &amp; operator=(SliceBuffer &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:66</div></div>
<div class="ttc" id="aslice__buffer_8h_html_ad2ab9bf61fe0a25d0684f0a56bd0d2bd"><div class="ttname"><a href="slice__buffer_8h.html#ad2ab9bf61fe0a25d0684f0a56bd0d2bd">grpc_slice_buffer_move_first_into_buffer</a></div><div class="ttdeci">GPRAPI void grpc_slice_buffer_move_first_into_buffer(grpc_slice_buffer *src, size_t n, void *dst)</div><div class="ttdoc">move the first n bytes of src into dst (copying them)</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aa24098dc70146ac31fc64132e180df95"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aa24098dc70146ac31fc64132e180df95">grpc_event_engine::experimental::SliceBuffer::TakeFirst</a></div><div class="ttdeci">Slice TakeFirst()</div><div class="ttdoc">Removes the first slice in the SliceBuffer and returns it.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_ade0e4e5abe166c1827e58450d9fb5afb"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ade0e4e5abe166c1827e58450d9fb5afb">grpc_event_engine::experimental::SliceBuffer::SliceBuffer</a></div><div class="ttdeci">SliceBuffer(SliceBuffer &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:57</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aba509a43e47584b7e6172aed749a57f6"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aba509a43e47584b7e6172aed749a57f6">grpc_event_engine::experimental::SliceBuffer::~SliceBuffer</a></div><div class="ttdeci">~SliceBuffer()</div><div class="ttdoc">Upon destruction, the underlying raw slice buffer is cleaned out and all slices are unreffed.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:64</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_ade0e4e5abe166c1827e58450d9fb5afb"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#ade0e4e5abe166c1827e58450d9fb5afb">grpc_event_engine::experimental::SliceBuffer::SliceBuffer</a></div><div class="ttdeci">SliceBuffer(SliceBuffer &amp;&amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:56</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_aba509a43e47584b7e6172aed749a57f6"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#aba509a43e47584b7e6172aed749a57f6">grpc_event_engine::experimental::SliceBuffer::~SliceBuffer</a></div><div class="ttdeci">~SliceBuffer()</div><div class="ttdoc">Upon destruction, the underlying raw slice buffer is cleaned out and all slices are unreffed.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:63</div></div>
<div class="ttc" id="astructgrpc__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_type.h:81</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a63efd26d98882e9247861e61550d8ad9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">grpc_event_engine::experimental::SliceBuffer::SliceBuffer</a></div><div class="ttdeci">SliceBuffer()</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:55</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a63efd26d98882e9247861e61550d8ad9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a63efd26d98882e9247861e61550d8ad9">grpc_event_engine::experimental::SliceBuffer::SliceBuffer</a></div><div class="ttdeci">SliceBuffer()</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:54</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a23722209d8ca1e154b57fdbc36e98b2f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a23722209d8ca1e154b57fdbc36e98b2f">grpc_event_engine::experimental::SliceBuffer::Prepend</a></div><div class="ttdeci">void Prepend(Slice slice)</div><div class="ttdoc">Prepends the slice to the the front of the SliceBuffer.</div></div>
<div class="ttc" id="aslice_8h_html"><div class="ttname"><a href="slice_8h.html">slice.h</a></div></div>
<div class="ttc" id="aslice__buffer_8h_html_ab800ef0de532e142680e9fcc15c48ea7"><div class="ttname"><a href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a></div><div class="ttdeci">GPRAPI void grpc_slice_buffer_swap(grpc_slice_buffer *a, grpc_slice_buffer *b)</div><div class="ttdoc">swap the contents of two slice buffers</div></div>
<div class="ttc" id="aimpl_2codegen_2slice_8h_html"><div class="ttname"><a href="impl_2codegen_2slice_8h.html">slice.h</a></div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a98197734ac603a88cf2264fdf7fdb9b9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a98197734ac603a88cf2264fdf7fdb9b9">grpc_event_engine::experimental::SliceBuffer::MoveLastNBytesIntoSliceBuffer</a></div><div class="ttdeci">void MoveLastNBytesIntoSliceBuffer(size_t n, SliceBuffer &amp;other)</div><div class="ttdoc">Removes/deletes the last n bytes in the SliceBuffer and add it to the other SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:100</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html_a98197734ac603a88cf2264fdf7fdb9b9"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html#a98197734ac603a88cf2264fdf7fdb9b9">grpc_event_engine::experimental::SliceBuffer::MoveLastNBytesIntoSliceBuffer</a></div><div class="ttdeci">void MoveLastNBytesIntoSliceBuffer(size_t n, SliceBuffer &amp;other)</div><div class="ttdoc">Removes/deletes the last n bytes in the SliceBuffer and add it to the other SliceBuffer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:99</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -74,8 +74,7 @@ $(function() {
<div class="title">event_engine.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<div class="textblock"><code>#include &lt;vector&gt;</code><br />
<code>#include &quot;absl/functional/any_invocable.h&quot;</code><br />
<code>#include &quot;absl/status/status.h&quot;</code><br />
<code>#include &quot;absl/status/statusor.h&quot;</code><br />
@ -84,6 +83,7 @@ $(function() {
<code>#include &lt;<a class="el" href="memory__allocator_8h_source.html">grpc/event_engine/memory_allocator.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="port_8h_source.html">grpc/event_engine/port.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="event__engine_2slice__buffer_8h_source.html">grpc/event_engine/slice_buffer.h</a>&gt;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="event__engine_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -148,7 +148,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -86,217 +86,216 @@ $(function() {
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifndef GRPC_EVENT_ENGINE_EVENT_ENGINE_H</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#define GRPC_EVENT_ENGINE_EVENT_ENGINE_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;absl/functional/any_invocable.h&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;absl/status/status.h&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;absl/status/statusor.h&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="endpoint__config_8h.html">grpc/event_engine/endpoint_config.h</a>&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="extensible_8h.html">grpc/event_engine/extensible.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="memory__allocator_8h.html">grpc/event_engine/memory_allocator.h</a>&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="port_8h.html">grpc/event_engine/port.h</a>&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="event__engine_2slice__buffer_8h.html">grpc/event_engine/slice_buffer.h</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// TODO(vigneshbabu): Define the Endpoint::Write metrics collection system</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">namespace </span>experimental {</div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html"> 103</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html">EventEngine</a> : <span class="keyword">public</span> std::enable_shared_from_this&lt;EventEngine&gt;,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html">Extensible</a> {</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327"> 110</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> = std::chrono::duration&lt;int64_t, std::nano&gt;;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div>
<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html"> 118</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a> {</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a5142b0ccf8177cde2ba8fb3a78a4de08">Closure</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Closure&#39;s are an interface, and thus non-copyable.</span></div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a5142b0ccf8177cde2ba8fb3a78a4de08">Closure</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a65bc744a1b6368b335ee06a18c045da0">operator=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Polymorphic type =&gt; virtual destructor</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a3ff7f740a90cc5f3077e5ea2418334a3">~Closure</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Run the contained code.</span></div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a8c19a7ac4fbbef243df55d3a3858d7be">Run</a>() = 0;</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; };</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html"> 133</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> {</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a81267fb939a1c23a2b48e58d6db54f37"> 134</a></span>&#160; intptr_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a81267fb939a1c23a2b48e58d6db54f37">keys</a>[2];</div>
<div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a10e22515af95139259d97ad41ff65cef"> 135</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="support_2port__platform_8h.html#ac800852435dee2834d93a4b5cfe3198a">GRPC_DLL</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a10e22515af95139259d97ad41ff65cef">kInvalid</a>;</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a33c855a73c350de643db174e6741e712">operator==</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a43ed5cddd5f79a123a7c4b045858ce16">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; };</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html"> 142</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> {</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a66e5396bb7339bac12cd68191aadb6d2"> 143</a></span>&#160; intptr_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a66e5396bb7339bac12cd68191aadb6d2">keys</a>[2];</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#ab83269652f9ddce74e126e25820f7f4a"> 144</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="support_2port__platform_8h.html#ac800852435dee2834d93a4b5cfe3198a">GRPC_DLL</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#ab83269652f9ddce74e126e25820f7f4a">kInvalid</a>;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a32423afd5af0ed69ef05cd2641643211">operator==</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; lhs,</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a2c1a17e40a25b21c1e841d7a1e4b5658">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; lhs,</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; };</div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html"> 157</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a> {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab"> 159</a></span>&#160; <span class="keyword">static</span> constexpr socklen_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab">MAX_SIZE_BYTES</a> = 128;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a9d7a3bf8e2c76c6d4fedd72b99f2397c">ResolvedAddress</a>(<span class="keyword">const</span> sockaddr* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#ac82fd08c29871dfd009a6f592fdddecd">address</a>, socklen_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a139d2e8182d9b96905b19db907b8bc68">size</a>);</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a9d7a3bf8e2c76c6d4fedd72b99f2397c">ResolvedAddress</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a9d7a3bf8e2c76c6d4fedd72b99f2397c">ResolvedAddress</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">const</span> <span class="keyword">struct </span>sockaddr* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#ac82fd08c29871dfd009a6f592fdddecd">address</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; socklen_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a139d2e8182d9b96905b19db907b8bc68">size</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">char</span> address_[<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab">MAX_SIZE_BYTES</a>] = {};</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; socklen_t size_ = 0;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; };</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html"> 180</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html">Endpoint</a> : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html">Extensible</a> {</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#ac2549a2052ff34c77674c5dd95e0d8cd">~Endpoint</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html"> 189</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html">ReadArgs</a> {</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// A suggestion to the endpoint implementation to read at-least the</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// specified number of bytes over the network connection before marking</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// the endpoint read operation as complete. gRPC may use this argument</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// to minimize the number of endpoint read API calls over the lifetime</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// of a connection.</span></div>
<div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html#a0a2d665ff2d7a46ef7dea7b7bdd0a801"> 195</a></span>&#160; int64_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html#a0a2d665ff2d7a46ef7dea7b7bdd0a801">read_hint_bytes</a>;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; };</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a7dfac8b5879c7088c8d2347854012095">Read</a>(absl::AnyInvocable&lt;<span class="keywordtype">void</span>(absl::Status)&gt; on_read,</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>* buffer, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html">ReadArgs</a>* args) = 0;</div>
<div class="line"><a name="l00223"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html"> 223</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">WriteArgs</a> {</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// Represents private information that may be passed by gRPC for</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// select endpoints expected to be used only within google.</span></div>
<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#ab97c6daae5fd26738e1a7b9a9d6143ec"> 226</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#ab97c6daae5fd26738e1a7b9a9d6143ec">google_specific</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// A suggestion to the endpoint implementation to group data to be written</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// into frames of the specified max_frame_size. gRPC may use this</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// argument to dynamically control the max sizes of frames sent to a</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// receiver in response to high receiver memory pressure.</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#a2924b1be68e26cea8926b470af815303"> 231</a></span>&#160; int64_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#a2924b1be68e26cea8926b470af815303">max_frame_size</a>;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; };</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a20ee9db2384229b0d77abaca38f5e3df">Write</a>(absl::AnyInvocable&lt;<span class="keywordtype">void</span>(absl::Status)&gt; on_writable,</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>* data, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">WriteArgs</a>* args) = 0;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#ad0b6e8aa3891af48f11a6422f1d95bb2">GetPeerAddress</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a4cda2ef24a6abbc49df1806599c6c930">GetLocalAddress</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; };</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; </div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e">OnConnectCallback</a> =</div>
<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e"> 268</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::unique_ptr&lt;Endpoint&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div>
<div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html"> 272</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html">Listener</a> : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html">Extensible</a> {</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c">AcceptCallback</a> = absl::AnyInvocable&lt;void(</div>
<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c"> 276</a></span>&#160; std::unique_ptr&lt;Endpoint&gt;, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html">MemoryAllocator</a> memory_allocator)&gt;;</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#a691cbfd1fc82bed7d7dc04c9e7bba3cd">~Listener</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> absl::StatusOr&lt;int&gt; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#a95239090a62188308036ce1841aa8d65">Bind</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; addr) = 0;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">virtual</span> absl::Status <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#abe5c11d2747373e1d07ed422a7976714">Start</a>() = 0;</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; };</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; </div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">virtual</span> absl::StatusOr&lt;std::unique_ptr&lt;Listener&gt;&gt; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a42219352c1ecf679da50671e9a1b35fb">CreateListener</a>(</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c">Listener::AcceptCallback</a> on_accept,</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; absl::AnyInvocable&lt;<span class="keywordtype">void</span>(absl::Status)&gt; on_shutdown,</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_endpoint_config.html">EndpointConfig</a>&amp; config,</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; std::unique_ptr&lt;MemoryAllocatorFactory&gt; memory_allocator_factory) = 0;</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">virtual</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a1b0a8f1b88d47735c3b5bb7a51d8c4c5">Connect</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e">OnConnectCallback</a> on_connect,</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; addr,</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_endpoint_config.html">EndpointConfig</a>&amp; args,</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html">MemoryAllocator</a> memory_allocator,</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> timeout) = 0;</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#ad116ce06ec29f65ce4083b226d2d90c8">CancelConnect</a>(<a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> handle) = 0;</div>
<div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html"> 340</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html">DNSResolver</a> {</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html"> 343</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html">ResolverOptions</a> {</div>
<div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html#acd167b0350ce5c97b722c1bc2cf8bd60"> 346</a></span>&#160; std::string <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html#acd167b0350ce5c97b722c1bc2cf8bd60">dns_server</a>;</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; };</div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html"> 349</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html">SRVRecord</a> {</div>
<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a76246885dc6339a48563cdac25511ed9"> 350</a></span>&#160; std::string <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a76246885dc6339a48563cdac25511ed9">host</a>;</div>
<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ac8ba371a69f9db568b05dae7417841b9"> 351</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ac8ba371a69f9db568b05dae7417841b9">port</a> = 0;</div>
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a933fb42b443b07ae59029af2a716c5c8"> 352</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a933fb42b443b07ae59029af2a716c5c8">priority</a> = 0;</div>
<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ab26062fdf016d3f537da5750394fd9ee"> 353</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ab26062fdf016d3f537da5750394fd9ee">weight</a> = 0;</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; };</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca">LookupHostnameCallback</a> =</div>
<div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca"> 358</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::vector&lt;ResolvedAddress&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2">LookupSRVCallback</a> =</div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2"> 361</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::vector&lt;SRVRecord&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc">LookupTXTCallback</a> =</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc"> 364</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::vector&lt;std::string&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; </div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae8966e8aee5db98a0380cbfc5526227b">~DNSResolver</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; </div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#aaaed79a28cb950311144852e00c55c7b">LookupHostname</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca">LookupHostnameCallback</a> on_resolve,</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; absl::string_view name,</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; absl::string_view default_port) = 0;</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a6934f9edc78f329c6c95f34a4110dace">LookupSRV</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2">LookupSRVCallback</a> on_resolve,</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; absl::string_view name) = 0;</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a686959fe71eaba0dcaf7849a2ad37c72">LookupTXT</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc">LookupTXTCallback</a> on_resolve,</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; absl::string_view name) = 0;</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; };</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; </div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#aa283885518525b71339f166e15932cd1">~EventEngine</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; </div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// TODO(nnoble): consider whether we can remove this method before we</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// de-experimentalize this API.</span></div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#afb9dbb26c374daf51b6460da89a7d586">IsWorkerThread</a>() = 0;</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; </div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">virtual</span> absl::StatusOr&lt;std::unique_ptr&lt;DNSResolver&gt;&gt; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9454ccca7e1b26a2ba5dd37ebc16b4d0">GetDNSResolver</a>(</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html">DNSResolver::ResolverOptions</a>&amp; options) = 0;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; </div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a589e091e9af842bcda00411996d9255f">Run</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>* closure) = 0;</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a589e091e9af842bcda00411996d9255f">Run</a>(absl::AnyInvocable&lt;<span class="keywordtype">void</span>()&gt; closure) = 0;</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">virtual</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a854dfb6d39d5c6106eb98d499209529a">RunAfter</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> when, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>* closure) = 0;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">virtual</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a854dfb6d39d5c6106eb98d499209529a">RunAfter</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> when,</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; absl::AnyInvocable&lt;<span class="keywordtype">void</span>()&gt; closure) = 0;</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#aab8a579f7dc8429c8d2aa2cd81da910b">Cancel</a>(<a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> handle) = 0;</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;};</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; </div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental.html#a94ab619b34c2c1f57c2d068d0c18907c">SetEventEngineFactory</a>(</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; absl::AnyInvocable&lt;std::unique_ptr&lt;EventEngine&gt;()&gt; factory);</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; </div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental.html#a61848d6441fac572b7c4ef2cc3820342">EventEngineFactoryReset</a>();</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;std::unique_ptr&lt;EventEngine&gt; <a class="code" href="namespacegrpc__event__engine_1_1experimental.html#a89b1b9fe77b7e8b8aa7f31c30039a1c8">CreateEventEngine</a>();</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;} <span class="comment">// namespace experimental</span></div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;} <span class="comment">// namespace grpc_event_engine</span></div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; </div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;<span class="preprocessor">#endif // GRPC_EVENT_ENGINE_EVENT_ENGINE_H</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;absl/functional/any_invocable.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;absl/status/status.h&quot;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;absl/status/statusor.h&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="endpoint__config_8h.html">grpc/event_engine/endpoint_config.h</a>&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="extensible_8h.html">grpc/event_engine/extensible.h</a>&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="memory__allocator_8h.html">grpc/event_engine/memory_allocator.h</a>&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="port_8h.html">grpc/event_engine/port.h</a>&gt;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="event__engine_2slice__buffer_8h.html">grpc/event_engine/slice_buffer.h</a>&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// TODO(vigneshbabu): Define the Endpoint::Write metrics collection system</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">namespace </span>experimental {</div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html"> 102</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html">EventEngine</a> : <span class="keyword">public</span> std::enable_shared_from_this&lt;EventEngine&gt;,</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html">Extensible</a> {</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327"> 109</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> = std::chrono::duration&lt;int64_t, std::nano&gt;;</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html"> 117</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a> {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a5142b0ccf8177cde2ba8fb3a78a4de08">Closure</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// Closure&#39;s are an interface, and thus non-copyable.</span></div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a5142b0ccf8177cde2ba8fb3a78a4de08">Closure</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a65bc744a1b6368b335ee06a18c045da0">operator=</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>&amp;) = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// Polymorphic type =&gt; virtual destructor</span></div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a3ff7f740a90cc5f3077e5ea2418334a3">~Closure</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Run the contained code.</span></div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a8c19a7ac4fbbef243df55d3a3858d7be">Run</a>() = 0;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; };</div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html"> 132</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> {</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a81267fb939a1c23a2b48e58d6db54f37"> 133</a></span>&#160; intptr_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a81267fb939a1c23a2b48e58d6db54f37">keys</a>[2];</div>
<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a10e22515af95139259d97ad41ff65cef"> 134</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="support_2port__platform_8h.html#ac800852435dee2834d93a4b5cfe3198a">GRPC_DLL</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a10e22515af95139259d97ad41ff65cef">kInvalid</a>;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a33c855a73c350de643db174e6741e712">operator==</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a43ed5cddd5f79a123a7c4b045858ce16">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; };</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html"> 141</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> {</div>
<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a66e5396bb7339bac12cd68191aadb6d2"> 142</a></span>&#160; intptr_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a66e5396bb7339bac12cd68191aadb6d2">keys</a>[2];</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#ab83269652f9ddce74e126e25820f7f4a"> 143</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="support_2port__platform_8h.html#ac800852435dee2834d93a4b5cfe3198a">GRPC_DLL</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#ab83269652f9ddce74e126e25820f7f4a">kInvalid</a>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a32423afd5af0ed69ef05cd2641643211">operator==</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; lhs,</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">friend</span> <span class="keywordtype">bool</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a2c1a17e40a25b21c1e841d7a1e4b5658">operator!=</a>(<span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; lhs,</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a>&amp; rhs);</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; };</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html"> 156</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a> {</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab"> 158</a></span>&#160; <span class="keyword">static</span> constexpr socklen_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab">MAX_SIZE_BYTES</a> = 128;</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; </div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a9d7a3bf8e2c76c6d4fedd72b99f2397c">ResolvedAddress</a>(<span class="keyword">const</span> sockaddr* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#ac82fd08c29871dfd009a6f592fdddecd">address</a>, socklen_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a139d2e8182d9b96905b19db907b8bc68">size</a>);</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a9d7a3bf8e2c76c6d4fedd72b99f2397c">ResolvedAddress</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a9d7a3bf8e2c76c6d4fedd72b99f2397c">ResolvedAddress</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp;) = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">const</span> <span class="keyword">struct </span>sockaddr* <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#ac82fd08c29871dfd009a6f592fdddecd">address</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; socklen_t <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a139d2e8182d9b96905b19db907b8bc68">size</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">char</span> address_[<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab">MAX_SIZE_BYTES</a>] = {};</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; socklen_t size_ = 0;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; };</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; </div>
<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html"> 179</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html">Endpoint</a> : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html">Extensible</a> {</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#ac2549a2052ff34c77674c5dd95e0d8cd">~Endpoint</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html"> 188</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html">ReadArgs</a> {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// A suggestion to the endpoint implementation to read at-least the</span></div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// specified number of bytes over the network connection before marking</span></div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// the endpoint read operation as complete. gRPC may use this argument</span></div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// to minimize the number of endpoint read API calls over the lifetime</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// of a connection.</span></div>
<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html#a0a2d665ff2d7a46ef7dea7b7bdd0a801"> 194</a></span>&#160; int64_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html#a0a2d665ff2d7a46ef7dea7b7bdd0a801">read_hint_bytes</a>;</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; };</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a7dfac8b5879c7088c8d2347854012095">Read</a>(absl::AnyInvocable&lt;<span class="keywordtype">void</span>(absl::Status)&gt; on_read,</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>* buffer, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html">ReadArgs</a>* args) = 0;</div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html"> 222</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">WriteArgs</a> {</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// Represents private information that may be passed by gRPC for</span></div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// select endpoints expected to be used only within google.</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#ab97c6daae5fd26738e1a7b9a9d6143ec"> 225</a></span>&#160; <span class="keywordtype">void</span>* <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#ab97c6daae5fd26738e1a7b9a9d6143ec">google_specific</a> = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="comment">// A suggestion to the endpoint implementation to group data to be written</span></div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// into frames of the specified max_frame_size. gRPC may use this</span></div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// argument to dynamically control the max sizes of frames sent to a</span></div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="comment">// receiver in response to high receiver memory pressure.</span></div>
<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#a2924b1be68e26cea8926b470af815303"> 230</a></span>&#160; int64_t <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#a2924b1be68e26cea8926b470af815303">max_frame_size</a>;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; };</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a20ee9db2384229b0d77abaca38f5e3df">Write</a>(absl::AnyInvocable&lt;<span class="keywordtype">void</span>(absl::Status)&gt; on_writable,</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">SliceBuffer</a>* data, <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">WriteArgs</a>* args) = 0;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#ad0b6e8aa3891af48f11a6422f1d95bb2">GetPeerAddress</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a4cda2ef24a6abbc49df1806599c6c930">GetLocalAddress</a>() <span class="keyword">const</span> = 0;</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; };</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e">OnConnectCallback</a> =</div>
<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e"> 267</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::unique_ptr&lt;Endpoint&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html"> 271</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html">Listener</a> : <span class="keyword">public</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_extensible.html">Extensible</a> {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c">AcceptCallback</a> = absl::AnyInvocable&lt;void(</div>
<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c"> 275</a></span>&#160; std::unique_ptr&lt;Endpoint&gt;, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html">MemoryAllocator</a> memory_allocator)&gt;;</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#a691cbfd1fc82bed7d7dc04c9e7bba3cd">~Listener</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">virtual</span> absl::StatusOr&lt;int&gt; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#a95239090a62188308036ce1841aa8d65">Bind</a>(<span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; addr) = 0;</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> absl::Status <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#abe5c11d2747373e1d07ed422a7976714">Start</a>() = 0;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; };</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; </div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">virtual</span> absl::StatusOr&lt;std::unique_ptr&lt;Listener&gt;&gt; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a42219352c1ecf679da50671e9a1b35fb">CreateListener</a>(</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c">Listener::AcceptCallback</a> on_accept,</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; absl::AnyInvocable&lt;<span class="keywordtype">void</span>(absl::Status)&gt; on_shutdown,</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_endpoint_config.html">EndpointConfig</a>&amp; config,</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; std::unique_ptr&lt;MemoryAllocatorFactory&gt; memory_allocator_factory) = 0;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">virtual</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a1b0a8f1b88d47735c3b5bb7a51d8c4c5">Connect</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e">OnConnectCallback</a> on_connect,</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">ResolvedAddress</a>&amp; addr,</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">const</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_endpoint_config.html">EndpointConfig</a>&amp; args,</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html">MemoryAllocator</a> memory_allocator,</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> timeout) = 0;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; </div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#ad116ce06ec29f65ce4083b226d2d90c8">CancelConnect</a>(<a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">ConnectionHandle</a> handle) = 0;</div>
<div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html"> 339</a></span>&#160; <span class="keyword">class </span><a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html">DNSResolver</a> {</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00342"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html"> 342</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html">ResolverOptions</a> {</div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html#acd167b0350ce5c97b722c1bc2cf8bd60"> 345</a></span>&#160; std::string <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html#acd167b0350ce5c97b722c1bc2cf8bd60">dns_server</a>;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; };</div>
<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html"> 348</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html">SRVRecord</a> {</div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a76246885dc6339a48563cdac25511ed9"> 349</a></span>&#160; std::string <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a76246885dc6339a48563cdac25511ed9">host</a>;</div>
<div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ac8ba371a69f9db568b05dae7417841b9"> 350</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ac8ba371a69f9db568b05dae7417841b9">port</a> = 0;</div>
<div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a933fb42b443b07ae59029af2a716c5c8"> 351</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a933fb42b443b07ae59029af2a716c5c8">priority</a> = 0;</div>
<div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ab26062fdf016d3f537da5750394fd9ee"> 352</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ab26062fdf016d3f537da5750394fd9ee">weight</a> = 0;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; };</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca">LookupHostnameCallback</a> =</div>
<div class="line"><a name="l00357"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca"> 357</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::vector&lt;ResolvedAddress&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2">LookupSRVCallback</a> =</div>
<div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2"> 360</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::vector&lt;SRVRecord&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">using</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc">LookupTXTCallback</a> =</div>
<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc"> 363</a></span>&#160; absl::AnyInvocable&lt;void(absl::StatusOr&lt;std::vector&lt;std::string&gt;&gt;)&gt;;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; </div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae8966e8aee5db98a0380cbfc5526227b">~DNSResolver</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; </div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#aaaed79a28cb950311144852e00c55c7b">LookupHostname</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca">LookupHostnameCallback</a> on_resolve,</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; absl::string_view name,</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; absl::string_view default_port) = 0;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a6934f9edc78f329c6c95f34a4110dace">LookupSRV</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2">LookupSRVCallback</a> on_resolve,</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; absl::string_view name) = 0;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a686959fe71eaba0dcaf7849a2ad37c72">LookupTXT</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc">LookupTXTCallback</a> on_resolve,</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; absl::string_view name) = 0;</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; };</div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#aa283885518525b71339f166e15932cd1">~EventEngine</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// TODO(nnoble): consider whether we can remove this method before we</span></div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// de-experimentalize this API.</span></div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#afb9dbb26c374daf51b6460da89a7d586">IsWorkerThread</a>() = 0;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">virtual</span> absl::StatusOr&lt;std::unique_ptr&lt;DNSResolver&gt;&gt; <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9454ccca7e1b26a2ba5dd37ebc16b4d0">GetDNSResolver</a>(</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">const</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html">DNSResolver::ResolverOptions</a>&amp; options) = 0;</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; </div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a589e091e9af842bcda00411996d9255f">Run</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>* closure) = 0;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a589e091e9af842bcda00411996d9255f">Run</a>(absl::AnyInvocable&lt;<span class="keywordtype">void</span>()&gt; closure) = 0;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">virtual</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a854dfb6d39d5c6106eb98d499209529a">RunAfter</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> when, <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">Closure</a>* closure) = 0;</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">virtual</span> <a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a854dfb6d39d5c6106eb98d499209529a">RunAfter</a>(<a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">Duration</a> when,</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; absl::AnyInvocable&lt;<span class="keywordtype">void</span>()&gt; closure) = 0;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#aab8a579f7dc8429c8d2aa2cd81da910b">Cancel</a>(<a class="code" href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">TaskHandle</a> handle) = 0;</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;};</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; </div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental.html#a94ab619b34c2c1f57c2d068d0c18907c">SetEventEngineFactory</a>(</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; absl::AnyInvocable&lt;std::unique_ptr&lt;EventEngine&gt;()&gt; factory);</div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; </div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;<span class="keywordtype">void</span> <a class="code" href="namespacegrpc__event__engine_1_1experimental.html#a61848d6441fac572b7c4ef2cc3820342">EventEngineFactoryReset</a>();</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;std::unique_ptr&lt;EventEngine&gt; <a class="code" href="namespacegrpc__event__engine_1_1experimental.html#a89b1b9fe77b7e8b8aa7f31c30039a1c8">CreateEventEngine</a>();</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; </div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;} <span class="comment">// namespace experimental</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;} <span class="comment">// namespace grpc_event_engine</span></div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; </div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="preprocessor">#endif // GRPC_EVENT_ENGINE_EVENT_ENGINE_H</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a9d190fa0d2978cce36684d203830496e"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e">grpc_event_engine::experimental::EventEngine::OnConnectCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::unique_ptr&lt; Endpoint &gt; &gt;)&gt; OnConnectCallback</div><div class="ttdoc">Called when a new connection is established.</div><div class="ttdef"><b>Definition:</b> event_engine.h:268</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a9d190fa0d2978cce36684d203830496e"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9d190fa0d2978cce36684d203830496e">grpc_event_engine::experimental::EventEngine::OnConnectCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::unique_ptr&lt; Endpoint &gt; &gt;)&gt; OnConnectCallback</div><div class="ttdoc">Called when a new connection is established.</div><div class="ttdef"><b>Definition:</b> event_engine.h:267</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_aa283885518525b71339f166e15932cd1"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#aa283885518525b71339f166e15932cd1">grpc_event_engine::experimental::EventEngine::~EventEngine</a></div><div class="ttdeci">virtual ~EventEngine()=default</div><div class="ttdoc">At time of destruction, the EventEngine must have no active responsibilities.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address_html_a139d2e8182d9b96905b19db907b8bc68"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a139d2e8182d9b96905b19db907b8bc68">grpc_event_engine::experimental::EventEngine::ResolvedAddress::size</a></div><div class="ttdeci">socklen_t size() const</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">grpc_event_engine::experimental::EventEngine::ConnectionHandle</a></div><div class="ttdoc">A handle to a cancellable connection attempt.</div><div class="ttdef"><b>Definition:</b> event_engine.h:142</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html">grpc_event_engine::experimental::EventEngine::ConnectionHandle</a></div><div class="ttdoc">A handle to a cancellable connection attempt.</div><div class="ttdef"><b>Definition:</b> event_engine.h:141</div></div>
<div class="ttc" id="aport_8h_html"><div class="ttname"><a href="port_8h.html">port.h</a></div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs</a></div><div class="ttdoc">A struct representing optional arguments that may be provided to an EventEngine Endpoint Write API ca...</div><div class="ttdef"><b>Definition:</b> event_engine.h:223</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address_html_a0abb7fdbdb6842d41549af3da3471dab"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab">grpc_event_engine::experimental::EventEngine::ResolvedAddress::MAX_SIZE_BYTES</a></div><div class="ttdeci">static constexpr socklen_t MAX_SIZE_BYTES</div><div class="ttdef"><b>Definition:</b> event_engine.h:159</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html">grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs</a></div><div class="ttdoc">A struct representing optional arguments that may be provided to an EventEngine Endpoint Write API ca...</div><div class="ttdef"><b>Definition:</b> event_engine.h:222</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address_html_a0abb7fdbdb6842d41549af3da3471dab"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a0abb7fdbdb6842d41549af3da3471dab">grpc_event_engine::experimental::EventEngine::ResolvedAddress::MAX_SIZE_BYTES</a></div><div class="ttdeci">static constexpr socklen_t MAX_SIZE_BYTES</div><div class="ttdef"><b>Definition:</b> event_engine.h:158</div></div>
<div class="ttc" id="aextensible_8h_html"><div class="ttname"><a href="extensible_8h.html">extensible.h</a></div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a854dfb6d39d5c6106eb98d499209529a"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a854dfb6d39d5c6106eb98d499209529a">grpc_event_engine::experimental::EventEngine::RunAfter</a></div><div class="ttdeci">virtual TaskHandle RunAfter(Duration when, Closure *closure)=0</div><div class="ttdoc">Synonymous with scheduling an alarm to run after duration when.</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html_a33c855a73c350de643db174e6741e712"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a33c855a73c350de643db174e6741e712">grpc_event_engine::experimental::EventEngine::TaskHandle::operator==</a></div><div class="ttdeci">friend bool operator==(const TaskHandle &amp;lhs, const TaskHandle &amp;rhs)</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener_html_ab96fd5b221a41105db2be8b458f92a6c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c">grpc_event_engine::experimental::EventEngine::Listener::AcceptCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(std::unique_ptr&lt; Endpoint &gt;, MemoryAllocator memory_allocator)&gt; AcceptCallback</div><div class="ttdoc">Called when the listener has accepted a new client connection.</div><div class="ttdef"><b>Definition:</b> event_engine.h:276</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html">grpc_event_engine::experimental::EventEngine</a></div><div class="ttdoc">The EventEngine Interface.</div><div class="ttdef"><b>Definition:</b> event_engine.h:103</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args_html_a0a2d665ff2d7a46ef7dea7b7bdd0a801"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html#a0a2d665ff2d7a46ef7dea7b7bdd0a801">grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs::read_hint_bytes</a></div><div class="ttdeci">int64_t read_hint_bytes</div><div class="ttdef"><b>Definition:</b> event_engine.h:195</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener_html_ab96fd5b221a41105db2be8b458f92a6c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#ab96fd5b221a41105db2be8b458f92a6c">grpc_event_engine::experimental::EventEngine::Listener::AcceptCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(std::unique_ptr&lt; Endpoint &gt;, MemoryAllocator memory_allocator)&gt; AcceptCallback</div><div class="ttdoc">Called when the listener has accepted a new client connection.</div><div class="ttdef"><b>Definition:</b> event_engine.h:275</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html">grpc_event_engine::experimental::EventEngine</a></div><div class="ttdoc">The EventEngine Interface.</div><div class="ttdef"><b>Definition:</b> event_engine.h:102</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args_html_a0a2d665ff2d7a46ef7dea7b7bdd0a801"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html#a0a2d665ff2d7a46ef7dea7b7bdd0a801">grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs::read_hint_bytes</a></div><div class="ttdeci">int64_t read_hint_bytes</div><div class="ttdef"><b>Definition:</b> event_engine.h:194</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_html_ac2549a2052ff34c77674c5dd95e0d8cd"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#ac2549a2052ff34c77674c5dd95e0d8cd">grpc_event_engine::experimental::EventEngine::Endpoint::~Endpoint</a></div><div class="ttdeci">virtual ~Endpoint()=default</div><div class="ttdoc">Shuts down all connections and invokes all pending read or write callbacks with an error status.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_afb9dbb26c374daf51b6460da89a7d586"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#afb9dbb26c374daf51b6460da89a7d586">grpc_event_engine::experimental::EventEngine::IsWorkerThread</a></div><div class="ttdeci">virtual bool IsWorkerThread()=0</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_ae8966e8aee5db98a0380cbfc5526227b"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae8966e8aee5db98a0380cbfc5526227b">grpc_event_engine::experimental::EventEngine::DNSResolver::~DNSResolver</a></div><div class="ttdeci">virtual ~DNSResolver()=default</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_html_a7dfac8b5879c7088c8d2347854012095"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a7dfac8b5879c7088c8d2347854012095">grpc_event_engine::experimental::EventEngine::Endpoint::Read</a></div><div class="ttdeci">virtual bool Read(absl::AnyInvocable&lt; void(absl::Status)&gt; on_read, SliceBuffer *buffer, const ReadArgs *args)=0</div><div class="ttdoc">Reads data from the Endpoint.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_aaaed79a28cb950311144852e00c55c7b"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#aaaed79a28cb950311144852e00c55c7b">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupHostname</a></div><div class="ttdeci">virtual void LookupHostname(LookupHostnameCallback on_resolve, absl::string_view name, absl::string_view default_port)=0</div><div class="ttdoc">Asynchronously resolve an address.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_a9ef5cdd1a8c31ee078a7aa775a8d73b2"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupSRVCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::vector&lt; SRVRecord &gt; &gt;)&gt; LookupSRVCallback</div><div class="ttdoc">Called with a collection of SRV records.</div><div class="ttdef"><b>Definition:</b> event_engine.h:361</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_ac8ba371a69f9db568b05dae7417841b9"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ac8ba371a69f9db568b05dae7417841b9">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::port</a></div><div class="ttdeci">int port</div><div class="ttdef"><b>Definition:</b> event_engine.h:351</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html">grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs</a></div><div class="ttdoc">A struct representing optional arguments that may be provided to an EventEngine Endpoint Read API cal...</div><div class="ttdef"><b>Definition:</b> event_engine.h:189</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_a9ef5cdd1a8c31ee078a7aa775a8d73b2"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a9ef5cdd1a8c31ee078a7aa775a8d73b2">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupSRVCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::vector&lt; SRVRecord &gt; &gt;)&gt; LookupSRVCallback</div><div class="ttdoc">Called with a collection of SRV records.</div><div class="ttdef"><b>Definition:</b> event_engine.h:360</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_ac8ba371a69f9db568b05dae7417841b9"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ac8ba371a69f9db568b05dae7417841b9">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::port</a></div><div class="ttdeci">int port</div><div class="ttdef"><b>Definition:</b> event_engine.h:350</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_read_args.html">grpc_event_engine::experimental::EventEngine::Endpoint::ReadArgs</a></div><div class="ttdoc">A struct representing optional arguments that may be provided to an EventEngine Endpoint Read API cal...</div><div class="ttdef"><b>Definition:</b> event_engine.h:188</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener_html_a95239090a62188308036ce1841aa8d65"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#a95239090a62188308036ce1841aa8d65">grpc_event_engine::experimental::EventEngine::Listener::Bind</a></div><div class="ttdeci">virtual absl::StatusOr&lt; int &gt; Bind(const ResolvedAddress &amp;addr)=0</div><div class="ttdoc">Bind an address/port to this Listener.</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_a76246885dc6339a48563cdac25511ed9"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a76246885dc6339a48563cdac25511ed9">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::host</a></div><div class="ttdeci">std::string host</div><div class="ttdef"><b>Definition:</b> event_engine.h:350</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html_a66e5396bb7339bac12cd68191aadb6d2"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a66e5396bb7339bac12cd68191aadb6d2">grpc_event_engine::experimental::EventEngine::ConnectionHandle::keys</a></div><div class="ttdeci">intptr_t keys[2]</div><div class="ttdef"><b>Definition:</b> event_engine.h:143</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_a76246885dc6339a48563cdac25511ed9"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a76246885dc6339a48563cdac25511ed9">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::host</a></div><div class="ttdeci">std::string host</div><div class="ttdef"><b>Definition:</b> event_engine.h:349</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html_a66e5396bb7339bac12cd68191aadb6d2"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a66e5396bb7339bac12cd68191aadb6d2">grpc_event_engine::experimental::EventEngine::ConnectionHandle::keys</a></div><div class="ttdeci">intptr_t keys[2]</div><div class="ttdef"><b>Definition:</b> event_engine.h:142</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html_a32423afd5af0ed69ef05cd2641643211"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a32423afd5af0ed69ef05cd2641643211">grpc_event_engine::experimental::EventEngine::ConnectionHandle::operator==</a></div><div class="ttdeci">friend bool operator==(const ConnectionHandle &amp;lhs, const ConnectionHandle &amp;rhs)</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_1_1experimental_html_a61848d6441fac572b7c4ef2cc3820342"><div class="ttname"><a href="namespacegrpc__event__engine_1_1experimental.html#a61848d6441fac572b7c4ef2cc3820342">grpc_event_engine::experimental::EventEngineFactoryReset</a></div><div class="ttdeci">void EventEngineFactoryReset()</div><div class="ttdoc">Reset gRPC's EventEngine factory to the built-in default.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_ae821bfc2fff7ccf741d8f6d1c25861ca"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupHostnameCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::vector&lt; ResolvedAddress &gt; &gt;)&gt; LookupHostnameCallback</div><div class="ttdoc">Called with the collection of sockaddrs that were resolved from a given target address.</div><div class="ttdef"><b>Definition:</b> event_engine.h:358</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_ae821bfc2fff7ccf741d8f6d1c25861ca"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#ae821bfc2fff7ccf741d8f6d1c25861ca">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupHostnameCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::vector&lt; ResolvedAddress &gt; &gt;)&gt; LookupHostnameCallback</div><div class="ttdoc">Called with the collection of sockaddrs that were resolved from a given target address.</div><div class="ttdef"><b>Definition:</b> event_engine.h:357</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_html_a20ee9db2384229b0d77abaca38f5e3df"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a20ee9db2384229b0d77abaca38f5e3df">grpc_event_engine::experimental::EventEngine::Endpoint::Write</a></div><div class="ttdeci">virtual bool Write(absl::AnyInvocable&lt; void(absl::Status)&gt; on_writable, SliceBuffer *data, const WriteArgs *args)=0</div><div class="ttdoc">Writes data out on the connection.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_ad116ce06ec29f65ce4083b226d2d90c8"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#ad116ce06ec29f65ce4083b226d2d90c8">grpc_event_engine::experimental::EventEngine::CancelConnect</a></div><div class="ttdeci">virtual bool CancelConnect(ConnectionHandle handle)=0</div><div class="ttdoc">Request cancellation of a connection attempt.</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html">grpc_event_engine::experimental::EventEngine::DNSResolver::ResolverOptions</a></div><div class="ttdoc">Optional configuration for DNSResolvers.</div><div class="ttdef"><b>Definition:</b> event_engine.h:343</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args_html_a2924b1be68e26cea8926b470af815303"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#a2924b1be68e26cea8926b470af815303">grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs::max_frame_size</a></div><div class="ttdeci">int64_t max_frame_size</div><div class="ttdef"><b>Definition:</b> event_engine.h:231</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord</a></div><div class="ttdoc">DNS SRV record type.</div><div class="ttdef"><b>Definition:</b> event_engine.h:349</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html">grpc_event_engine::experimental::EventEngine::DNSResolver::ResolverOptions</a></div><div class="ttdoc">Optional configuration for DNSResolvers.</div><div class="ttdef"><b>Definition:</b> event_engine.h:342</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args_html_a2924b1be68e26cea8926b470af815303"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#a2924b1be68e26cea8926b470af815303">grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs::max_frame_size</a></div><div class="ttdeci">int64_t max_frame_size</div><div class="ttdef"><b>Definition:</b> event_engine.h:230</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord</a></div><div class="ttdoc">DNS SRV record type.</div><div class="ttdef"><b>Definition:</b> event_engine.h:348</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_a686959fe71eaba0dcaf7849a2ad37c72"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a686959fe71eaba0dcaf7849a2ad37c72">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupTXT</a></div><div class="ttdeci">virtual void LookupTXT(LookupTXTCallback on_resolve, absl::string_view name)=0</div><div class="ttdoc">Asynchronously perform a TXT record lookup.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_endpoint_config_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_endpoint_config.html">grpc_event_engine::experimental::EndpointConfig</a></div><div class="ttdoc">Collection of parameters used to configure client and server endpoints.</div><div class="ttdef"><b>Definition:</b> endpoint_config.h:31</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">grpc_event_engine::experimental::EventEngine::ResolvedAddress</a></div><div class="ttdoc">Thin wrapper around a platform-specific sockaddr type.</div><div class="ttdef"><b>Definition:</b> event_engine.h:157</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html">grpc_event_engine::experimental::EventEngine::Listener</a></div><div class="ttdoc">Listens for incoming connection requests from gRPC clients and initiates request processing once conn...</div><div class="ttdef"><b>Definition:</b> event_engine.h:272</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">grpc_event_engine::experimental::SliceBuffer</a></div><div class="ttdoc">A Wrapper around grpc_slice_buffer pointer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:53</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">grpc_event_engine::experimental::EventEngine::Closure</a></div><div class="ttdoc">A custom closure type for EventEngine task execution.</div><div class="ttdef"><b>Definition:</b> event_engine.h:118</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html">grpc_event_engine::experimental::EventEngine::ResolvedAddress</a></div><div class="ttdoc">Thin wrapper around a platform-specific sockaddr type.</div><div class="ttdef"><b>Definition:</b> event_engine.h:156</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html">grpc_event_engine::experimental::EventEngine::Listener</a></div><div class="ttdoc">Listens for incoming connection requests from gRPC clients and initiates request processing once conn...</div><div class="ttdef"><b>Definition:</b> event_engine.h:271</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_slice_buffer_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_slice_buffer.html">grpc_event_engine::experimental::SliceBuffer</a></div><div class="ttdoc">A Wrapper around grpc_slice_buffer pointer.</div><div class="ttdef"><b>Definition:</b> slice_buffer.h:52</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html">grpc_event_engine::experimental::EventEngine::Closure</a></div><div class="ttdoc">A custom closure type for EventEngine task execution.</div><div class="ttdef"><b>Definition:</b> event_engine.h:117</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure_html_a5142b0ccf8177cde2ba8fb3a78a4de08"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a5142b0ccf8177cde2ba8fb3a78a4de08">grpc_event_engine::experimental::EventEngine::Closure::Closure</a></div><div class="ttdeci">Closure()=default</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address_html_a9d7a3bf8e2c76c6d4fedd72b99f2397c"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#a9d7a3bf8e2c76c6d4fedd72b99f2397c">grpc_event_engine::experimental::EventEngine::ResolvedAddress::ResolvedAddress</a></div><div class="ttdeci">ResolvedAddress()=default</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address_html_ac82fd08c29871dfd009a6f592fdddecd"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_resolved_address.html#ac82fd08c29871dfd009a6f592fdddecd">grpc_event_engine::experimental::EventEngine::ResolvedAddress::address</a></div><div class="ttdeci">const struct sockaddr * address() const</div></div>
@ -305,41 +304,41 @@ $(function() {
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure_html_a3ff7f740a90cc5f3077e5ea2418334a3"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a3ff7f740a90cc5f3077e5ea2418334a3">grpc_event_engine::experimental::EventEngine::Closure::~Closure</a></div><div class="ttdeci">virtual ~Closure()=default</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a589e091e9af842bcda00411996d9255f"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a589e091e9af842bcda00411996d9255f">grpc_event_engine::experimental::EventEngine::Run</a></div><div class="ttdeci">virtual void Run(Closure *closure)=0</div><div class="ttdoc">Asynchronously executes a task as soon as possible.</div></div>
<div class="ttc" id="aevent__engine_2slice__buffer_8h_html"><div class="ttname"><a href="event__engine_2slice__buffer_8h.html">slice_buffer.h</a></div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args_html_ab97c6daae5fd26738e1a7b9a9d6143ec"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#ab97c6daae5fd26738e1a7b9a9d6143ec">grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs::google_specific</a></div><div class="ttdeci">void * google_specific</div><div class="ttdef"><b>Definition:</b> event_engine.h:226</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options_html_acd167b0350ce5c97b722c1bc2cf8bd60"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html#acd167b0350ce5c97b722c1bc2cf8bd60">grpc_event_engine::experimental::EventEngine::DNSResolver::ResolverOptions::dns_server</a></div><div class="ttdeci">std::string dns_server</div><div class="ttdoc">If empty, default DNS servers will be used.</div><div class="ttdef"><b>Definition:</b> event_engine.h:346</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_ab26062fdf016d3f537da5750394fd9ee"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ab26062fdf016d3f537da5750394fd9ee">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::weight</a></div><div class="ttdeci">int weight</div><div class="ttdef"><b>Definition:</b> event_engine.h:353</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args_html_ab97c6daae5fd26738e1a7b9a9d6143ec"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_1_1_write_args.html#ab97c6daae5fd26738e1a7b9a9d6143ec">grpc_event_engine::experimental::EventEngine::Endpoint::WriteArgs::google_specific</a></div><div class="ttdeci">void * google_specific</div><div class="ttdef"><b>Definition:</b> event_engine.h:225</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options_html_acd167b0350ce5c97b722c1bc2cf8bd60"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_resolver_options.html#acd167b0350ce5c97b722c1bc2cf8bd60">grpc_event_engine::experimental::EventEngine::DNSResolver::ResolverOptions::dns_server</a></div><div class="ttdeci">std::string dns_server</div><div class="ttdoc">If empty, default DNS servers will be used.</div><div class="ttdef"><b>Definition:</b> event_engine.h:345</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_ab26062fdf016d3f537da5750394fd9ee"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#ab26062fdf016d3f537da5750394fd9ee">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::weight</a></div><div class="ttdeci">int weight</div><div class="ttdef"><b>Definition:</b> event_engine.h:352</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_html_ad0b6e8aa3891af48f11a6422f1d95bb2"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#ad0b6e8aa3891af48f11a6422f1d95bb2">grpc_event_engine::experimental::EventEngine::Endpoint::GetPeerAddress</a></div><div class="ttdeci">virtual const ResolvedAddress &amp; GetPeerAddress() const =0</div><div class="ttdoc">Returns an address in the format described in DNSResolver.</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_1_1experimental_html_a89b1b9fe77b7e8b8aa7f31c30039a1c8"><div class="ttname"><a href="namespacegrpc__event__engine_1_1experimental.html#a89b1b9fe77b7e8b8aa7f31c30039a1c8">grpc_event_engine::experimental::CreateEventEngine</a></div><div class="ttdeci">std::unique_ptr&lt; EventEngine &gt; CreateEventEngine()</div><div class="ttdoc">Create an EventEngine using the default factory.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure_html_a8c19a7ac4fbbef243df55d3a3858d7be"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_closure.html#a8c19a7ac4fbbef243df55d3a3858d7be">grpc_event_engine::experimental::EventEngine::Closure::Run</a></div><div class="ttdeci">virtual void Run()=0</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html">grpc_event_engine::experimental::EventEngine::DNSResolver</a></div><div class="ttdoc">Provides asynchronous resolution.</div><div class="ttdef"><b>Definition:</b> event_engine.h:340</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html">grpc_event_engine::experimental::EventEngine::DNSResolver</a></div><div class="ttdoc">Provides asynchronous resolution.</div><div class="ttdef"><b>Definition:</b> event_engine.h:339</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_extensible_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_extensible.html">grpc_event_engine::experimental::Extensible</a></div><div class="ttdef"><b>Definition:</b> extensible.h:25</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">grpc_event_engine::experimental::EventEngine::TaskHandle</a></div><div class="ttdoc">Represents a scheduled task.</div><div class="ttdef"><b>Definition:</b> event_engine.h:133</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html">grpc_event_engine::experimental::EventEngine::TaskHandle</a></div><div class="ttdoc">Represents a scheduled task.</div><div class="ttdef"><b>Definition:</b> event_engine.h:132</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_aab8a579f7dc8429c8d2aa2cd81da910b"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#aab8a579f7dc8429c8d2aa2cd81da910b">grpc_event_engine::experimental::EventEngine::Cancel</a></div><div class="ttdeci">virtual bool Cancel(TaskHandle handle)=0</div><div class="ttdoc">Request cancellation of a task.</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_a933fb42b443b07ae59029af2a716c5c8"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a933fb42b443b07ae59029af2a716c5c8">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::priority</a></div><div class="ttdeci">int priority</div><div class="ttdef"><b>Definition:</b> event_engine.h:352</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record_html_a933fb42b443b07ae59029af2a716c5c8"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_1_1_s_r_v_record.html#a933fb42b443b07ae59029af2a716c5c8">grpc_event_engine::experimental::EventEngine::DNSResolver::SRVRecord::priority</a></div><div class="ttdeci">int priority</div><div class="ttdef"><b>Definition:</b> event_engine.h:351</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a9454ccca7e1b26a2ba5dd37ebc16b4d0"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a9454ccca7e1b26a2ba5dd37ebc16b4d0">grpc_event_engine::experimental::EventEngine::GetDNSResolver</a></div><div class="ttdeci">virtual absl::StatusOr&lt; std::unique_ptr&lt; DNSResolver &gt; &gt; GetDNSResolver(const DNSResolver::ResolverOptions &amp;options)=0</div><div class="ttdoc">Creates and returns an instance of a DNSResolver, optionally configured by the options struct.</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html_a10e22515af95139259d97ad41ff65cef"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a10e22515af95139259d97ad41ff65cef">grpc_event_engine::experimental::EventEngine::TaskHandle::kInvalid</a></div><div class="ttdeci">static const GRPC_DLL TaskHandle kInvalid</div><div class="ttdef"><b>Definition:</b> event_engine.h:135</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html_a10e22515af95139259d97ad41ff65cef"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a10e22515af95139259d97ad41ff65cef">grpc_event_engine::experimental::EventEngine::TaskHandle::kInvalid</a></div><div class="ttdeci">static const GRPC_DLL TaskHandle kInvalid</div><div class="ttdef"><b>Definition:</b> event_engine.h:134</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_html"><div class="ttname"><a href="namespacegrpc__event__engine.html">grpc_event_engine</a></div><div class="ttdef"><b>Definition:</b> endpoint_config.h:24</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_a10f0463006effedc249bb06c810d5ffc"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupTXTCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::vector&lt; std::string &gt; &gt;)&gt; LookupTXTCallback</div><div class="ttdoc">Called with the result of a TXT record lookup.</div><div class="ttdef"><b>Definition:</b> event_engine.h:364</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html_ab83269652f9ddce74e126e25820f7f4a"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#ab83269652f9ddce74e126e25820f7f4a">grpc_event_engine::experimental::EventEngine::ConnectionHandle::kInvalid</a></div><div class="ttdeci">static const GRPC_DLL ConnectionHandle kInvalid</div><div class="ttdef"><b>Definition:</b> event_engine.h:144</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html">grpc_event_engine::experimental::EventEngine::Endpoint</a></div><div class="ttdoc">One end of a connection between a gRPC client and server.</div><div class="ttdef"><b>Definition:</b> event_engine.h:180</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_memory_allocator_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html">grpc_event_engine::experimental::MemoryAllocator</a></div><div class="ttdef"><b>Definition:</b> memory_allocator.h:35</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_a10f0463006effedc249bb06c810d5ffc"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a10f0463006effedc249bb06c810d5ffc">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupTXTCallback</a></div><div class="ttdeci">absl::AnyInvocable&lt; void(absl::StatusOr&lt; std::vector&lt; std::string &gt; &gt;)&gt; LookupTXTCallback</div><div class="ttdoc">Called with the result of a TXT record lookup.</div><div class="ttdef"><b>Definition:</b> event_engine.h:363</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html_ab83269652f9ddce74e126e25820f7f4a"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#ab83269652f9ddce74e126e25820f7f4a">grpc_event_engine::experimental::EventEngine::ConnectionHandle::kInvalid</a></div><div class="ttdeci">static const GRPC_DLL ConnectionHandle kInvalid</div><div class="ttdef"><b>Definition:</b> event_engine.h:143</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html">grpc_event_engine::experimental::EventEngine::Endpoint</a></div><div class="ttdoc">One end of a connection between a gRPC client and server.</div><div class="ttdef"><b>Definition:</b> event_engine.h:179</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_memory_allocator_html"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_memory_allocator.html">grpc_event_engine::experimental::MemoryAllocator</a></div><div class="ttdef"><b>Definition:</b> memory_allocator.h:34</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a1b0a8f1b88d47735c3b5bb7a51d8c4c5"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a1b0a8f1b88d47735c3b5bb7a51d8c4c5">grpc_event_engine::experimental::EventEngine::Connect</a></div><div class="ttdeci">virtual ConnectionHandle Connect(OnConnectCallback on_connect, const ResolvedAddress &amp;addr, const EndpointConfig &amp;args, MemoryAllocator memory_allocator, Duration timeout)=0</div><div class="ttdoc">Creates a client network connection to a remote network listener.</div></div>
<div class="ttc" id="anamespacegrpc__event__engine_1_1experimental_html_a94ab619b34c2c1f57c2d068d0c18907c"><div class="ttname"><a href="namespacegrpc__event__engine_1_1experimental.html#a94ab619b34c2c1f57c2d068d0c18907c">grpc_event_engine::experimental::SetEventEngineFactory</a></div><div class="ttdeci">void SetEventEngineFactory(absl::AnyInvocable&lt; std::unique_ptr&lt; EventEngine &gt;()&gt; factory)</div><div class="ttdoc">Replace gRPC's default EventEngine factory.</div></div>
<div class="ttc" id="amemory__allocator_8h_html"><div class="ttname"><a href="memory__allocator_8h.html">memory_allocator.h</a></div></div>
<div class="ttc" id="asupport_2port__platform_8h_html_ac800852435dee2834d93a4b5cfe3198a"><div class="ttname"><a href="support_2port__platform_8h.html#ac800852435dee2834d93a4b5cfe3198a">GRPC_DLL</a></div><div class="ttdeci">#define GRPC_DLL</div><div class="ttdef"><b>Definition:</b> port_platform.h:127</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html_a81267fb939a1c23a2b48e58d6db54f37"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a81267fb939a1c23a2b48e58d6db54f37">grpc_event_engine::experimental::EventEngine::TaskHandle::keys</a></div><div class="ttdeci">intptr_t keys[2]</div><div class="ttdef"><b>Definition:</b> event_engine.h:134</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html_a81267fb939a1c23a2b48e58d6db54f37"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a81267fb939a1c23a2b48e58d6db54f37">grpc_event_engine::experimental::EventEngine::TaskHandle::keys</a></div><div class="ttdeci">intptr_t keys[2]</div><div class="ttdef"><b>Definition:</b> event_engine.h:133</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle_html_a2c1a17e40a25b21c1e841d7a1e4b5658"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_connection_handle.html#a2c1a17e40a25b21c1e841d7a1e4b5658">grpc_event_engine::experimental::EventEngine::ConnectionHandle::operator!=</a></div><div class="ttdeci">friend bool operator!=(const ConnectionHandle &amp;lhs, const ConnectionHandle &amp;rhs)</div></div>
<div class="ttc" id="aendpoint__config_8h_html"><div class="ttname"><a href="endpoint__config_8h.html">endpoint_config.h</a></div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener_html_a691cbfd1fc82bed7d7dc04c9e7bba3cd"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_listener.html#a691cbfd1fc82bed7d7dc04c9e7bba3cd">grpc_event_engine::experimental::EventEngine::Listener::~Listener</a></div><div class="ttdeci">virtual ~Listener()=default</div></div>
<div class="ttc" id="astructgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle_html_a43ed5cddd5f79a123a7c4b045858ce16"><div class="ttname"><a href="structgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_task_handle.html#a43ed5cddd5f79a123a7c4b045858ce16">grpc_event_engine::experimental::EventEngine::TaskHandle::operator!=</a></div><div class="ttdeci">friend bool operator!=(const TaskHandle &amp;lhs, const TaskHandle &amp;rhs)</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver_html_a6934f9edc78f329c6c95f34a4110dace"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_d_n_s_resolver.html#a6934f9edc78f329c6c95f34a4110dace">grpc_event_engine::experimental::EventEngine::DNSResolver::LookupSRV</a></div><div class="ttdeci">virtual void LookupSRV(LookupSRVCallback on_resolve, absl::string_view name)=0</div><div class="ttdoc">Asynchronously perform an SRV record lookup.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a42219352c1ecf679da50671e9a1b35fb"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a42219352c1ecf679da50671e9a1b35fb">grpc_event_engine::experimental::EventEngine::CreateListener</a></div><div class="ttdeci">virtual absl::StatusOr&lt; std::unique_ptr&lt; Listener &gt; &gt; CreateListener(Listener::AcceptCallback on_accept, absl::AnyInvocable&lt; void(absl::Status)&gt; on_shutdown, const EndpointConfig &amp;config, std::unique_ptr&lt; MemoryAllocatorFactory &gt; memory_allocator_factory)=0</div><div class="ttdoc">Factory method to create a network listener / server.</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a3380997754430d27e6b9832174184327"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">grpc_event_engine::experimental::EventEngine::Duration</a></div><div class="ttdeci">std::chrono::duration&lt; int64_t, std::nano &gt; Duration</div><div class="ttdoc">A duration between two events.</div><div class="ttdef"><b>Definition:</b> event_engine.h:110</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_html_a3380997754430d27e6b9832174184327"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine.html#a3380997754430d27e6b9832174184327">grpc_event_engine::experimental::EventEngine::Duration</a></div><div class="ttdeci">std::chrono::duration&lt; int64_t, std::nano &gt; Duration</div><div class="ttdoc">A duration between two events.</div><div class="ttdef"><b>Definition:</b> event_engine.h:109</div></div>
<div class="ttc" id="aclassgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint_html_a4cda2ef24a6abbc49df1806599c6c930"><div class="ttname"><a href="classgrpc__event__engine_1_1experimental_1_1_event_engine_1_1_endpoint.html#a4cda2ef24a6abbc49df1806599c6c930">grpc_event_engine::experimental::EventEngine::Endpoint::GetLocalAddress</a></div><div class="ttdeci">virtual const ResolvedAddress &amp; GetLocalAddress() const =0</div></div>
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -73,8 +73,8 @@ $(function() {
<div class="title">extensible.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
<code>#include &quot;absl/strings/string_view.h&quot;</code><br />
<div class="textblock"><code>#include &quot;absl/strings/string_view.h&quot;</code><br />
<code>#include &lt;<a class="el" href="support_2port__platform_8h_source.html">grpc/support/port_platform.h</a>&gt;</code><br />
</div>
<p><a href="extensible_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@ -93,7 +93,7 @@ Namespaces</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -87,9 +87,9 @@ $(function() {
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef GRPC_EVENT_ENGINE_EXTENSIBLE_H</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define GRPC_EVENT_ENGINE_EXTENSIBLE_H</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;absl/strings/string_view.h&quot;</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="support_2port__platform_8h.html">grpc/support/port_platform.h</a>&gt;</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacegrpc__event__engine.html">grpc_event_engine</a> {</div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">namespace </span>experimental {</div>
@ -110,7 +110,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -69,7 +69,7 @@ $(function() {
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -125,38 +125,40 @@ $(function() {
<tr id="row_1_0_2_6_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="json_8h_source.html"><span class="icondoc"></span></a><a class="el" href="json_8h.html" target="_self">json.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_7_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2log_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2log_8h.html" target="_self">log.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_8_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="log__windows_8h_source.html"><span class="icondoc"></span></a><a class="el" href="log__windows_8h.html" target="_self">log_windows.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_9_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2port__platform_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2port__platform_8h.html" target="_self">port_platform.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_10_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="string__util_8h_source.html"><span class="icondoc"></span></a><a class="el" href="string__util_8h.html" target="_self">string_util.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_11_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync_8h.html" target="_self">sync.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_12_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__abseil_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__abseil_8h.html" target="_self">sync_abseil.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_13_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__custom_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__custom_8h.html" target="_self">sync_custom.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_14_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__generic_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__generic_8h.html" target="_self">sync_generic.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_15_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__posix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__posix_8h.html" target="_self">sync_posix.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_16_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__windows_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__windows_8h.html" target="_self">sync_windows.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_17_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="thd__id_8h_source.html"><span class="icondoc"></span></a><a class="el" href="thd__id_8h.html" target="_self">thd_id.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_18_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="time_8h_source.html"><span class="icondoc"></span></a><a class="el" href="time_8h.html" target="_self">time.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_19_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="workaround__list_8h_source.html"><span class="icondoc"></span></a><a class="el" href="workaround__list_8h.html" target="_self">workaround_list.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="byte__buffer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="byte__buffer_8h.html" target="_self">byte_buffer.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="byte__buffer__reader_8h_source.html"><span class="icondoc"></span></a><a class="el" href="byte__buffer__reader_8h.html" target="_self">byte_buffer_reader.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="census_8h_source.html"><span class="icondoc"></span></a><a class="el" href="census_8h.html" target="_self">census.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_6_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="compression_8h_source.html"><span class="icondoc"></span></a><a class="el" href="compression_8h.html" target="_self">compression.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="fork_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fork_8h.html" target="_self">fork.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc_8h.html" target="_self">grpc.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_9_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__audit__logging_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__audit__logging_8h.html" target="_self">grpc_audit_logging.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_10_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__crl__provider_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__crl__provider_8h.html" target="_self">grpc_crl_provider.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_11_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__posix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__posix_8h.html" target="_self">grpc_posix.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_12_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__security_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__security_8h.html" target="_self">grpc_security.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_13_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__security__constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__security__constants_8h.html" target="_self">grpc_security_constants.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_14_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="load__reporting_8h_source.html"><span class="icondoc"></span></a><a class="el" href="load__reporting_8h.html" target="_self">load_reporting.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_15_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="slice_8h_source.html"><span class="icondoc"></span></a><a class="el" href="slice_8h.html" target="_self">slice.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_16_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="slice__buffer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="slice__buffer_8h.html" target="_self">slice_buffer.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_17_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="status_8h_source.html"><span class="icondoc"></span></a><a class="el" href="status_8h.html" target="_self">status.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_9_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="metrics_8h_source.html"><span class="icondoc"></span></a><a class="el" href="metrics_8h.html" target="_self">metrics.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_10_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2port__platform_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2port__platform_8h.html" target="_self">port_platform.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_11_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="string__util_8h_source.html"><span class="icondoc"></span></a><a class="el" href="string__util_8h.html" target="_self">string_util.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_12_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync_8h.html" target="_self">sync.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_13_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__abseil_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__abseil_8h.html" target="_self">sync_abseil.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_14_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__custom_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__custom_8h.html" target="_self">sync_custom.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_15_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__generic_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__generic_8h.html" target="_self">sync_generic.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_16_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__posix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__posix_8h.html" target="_self">sync_posix.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_17_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="support_2sync__windows_8h_source.html"><span class="icondoc"></span></a><a class="el" href="support_2sync__windows_8h.html" target="_self">sync_windows.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_18_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="thd__id_8h_source.html"><span class="icondoc"></span></a><a class="el" href="thd__id_8h.html" target="_self">thd_id.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_19_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="time_8h_source.html"><span class="icondoc"></span></a><a class="el" href="time_8h.html" target="_self">time.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_2_20_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="workaround__list_8h_source.html"><span class="icondoc"></span></a><a class="el" href="workaround__list_8h.html" target="_self">workaround_list.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_3_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="byte__buffer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="byte__buffer_8h.html" target="_self">byte_buffer.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_4_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="byte__buffer__reader_8h_source.html"><span class="icondoc"></span></a><a class="el" href="byte__buffer__reader_8h.html" target="_self">byte_buffer_reader.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_5_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="census_8h_source.html"><span class="icondoc"></span></a><a class="el" href="census_8h.html" target="_self">census.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_6_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="compression_8h_source.html"><span class="icondoc"></span></a><a class="el" href="compression_8h.html" target="_self">compression.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_7_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="credentials_8h_source.html"><span class="icondoc"></span></a><a class="el" href="credentials_8h.html" target="_self">credentials.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_8_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="fork_8h_source.html"><span class="icondoc"></span></a><a class="el" href="fork_8h.html" target="_self">fork.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_9_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc_8h.html" target="_self">grpc.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_10_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__audit__logging_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__audit__logging_8h.html" target="_self">grpc_audit_logging.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_11_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__crl__provider_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__crl__provider_8h.html" target="_self">grpc_crl_provider.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_12_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__posix_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__posix_8h.html" target="_self">grpc_posix.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_13_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__security_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__security_8h.html" target="_self">grpc_security.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_14_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="grpc__security__constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="grpc__security__constants_8h.html" target="_self">grpc_security_constants.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_15_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="load__reporting_8h_source.html"><span class="icondoc"></span></a><a class="el" href="load__reporting_8h.html" target="_self">load_reporting.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_16_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="slice_8h_source.html"><span class="icondoc"></span></a><a class="el" href="slice_8h.html" target="_self">slice.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_17_"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="slice__buffer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="slice__buffer_8h.html" target="_self">slice_buffer.h</a></td><td class="desc"></td></tr>
<tr id="row_1_0_18_" class="even"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><a href="status_8h_source.html"><span class="icondoc"></span></a><a class="el" href="status_8h.html" target="_self">status.h</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:58 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:15 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -168,7 +168,7 @@ Functions</h2></td></tr>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

View File

@ -22,7 +22,7 @@
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GRPC Core
&#160;<span id="projectnumber">39.0.0</span>
&#160;<span id="projectnumber">41.0.0</span>
</div>
</td>
</tr>
@ -110,7 +110,7 @@ $(function() {
<div class="ttc" id="asupport_2port__platform_8h_html"><div class="ttname"><a href="support_2port__platform_8h.html">port_platform.h</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Feb 23 2024 23:02:57 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
Generated on Fri May 17 2024 01:17:14 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>

Some files were not shown because too many files have changed in this diff Show More