slice__buffer_8h.html 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.17"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>GRPC Core: include/grpc/slice_buffer.h File Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  19. <div id="titlearea">
  20. <table cellspacing="0" cellpadding="0">
  21. <tbody>
  22. <tr style="height: 56px;">
  23. <td id="projectalign" style="padding-left: 0.5em;">
  24. <div id="projectname">GRPC Core
  25. &#160;<span id="projectnumber">15.0.0</span>
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.8.17 -->
  34. <script type="text/javascript">
  35. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  36. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  37. /* @license-end */
  38. </script>
  39. <script type="text/javascript" src="menudata.js"></script>
  40. <script type="text/javascript" src="menu.js"></script>
  41. <script type="text/javascript">
  42. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  43. $(function() {
  44. initMenu('',true,false,'search.php','Search');
  45. $(document).ready(function() { init_search(); });
  46. });
  47. /* @license-end */</script>
  48. <div id="main-nav"></div>
  49. <!-- window showing the filter options -->
  50. <div id="MSearchSelectWindow"
  51. onmouseover="return searchBox.OnSearchSelectShow()"
  52. onmouseout="return searchBox.OnSearchSelectHide()"
  53. onkeydown="return searchBox.OnSearchSelectKey(event)">
  54. </div>
  55. <!-- iframe showing the search results (closed by default) -->
  56. <div id="MSearchResultsWindow">
  57. <iframe src="javascript:void(0)" frameborder="0"
  58. name="MSearchResults" id="MSearchResults">
  59. </iframe>
  60. </div>
  61. <div id="nav-path" class="navpath">
  62. <ul>
  63. <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>
  64. </div>
  65. </div><!-- top -->
  66. <div class="header">
  67. <div class="summary">
  68. <a href="#func-members">Functions</a> </div>
  69. <div class="headertitle">
  70. <div class="title">slice_buffer.h File Reference</div> </div>
  71. </div><!--header-->
  72. <div class="contents">
  73. <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 />
  74. <code>#include &lt;<a class="el" href="slice_8h_source.html">grpc/slice.h</a>&gt;</code><br />
  75. </div>
  76. <p><a href="slice__buffer_8h_source.html">Go to the source code of this file.</a></p>
  77. <table class="memberdecls">
  78. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  79. Functions</h2></td></tr>
  80. <tr class="memitem:a3a073a017852ef88d7a8b884cecd3998"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">grpc_slice_buffer_init</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb)</td></tr>
  81. <tr class="memdesc:a3a073a017852ef88d7a8b884cecd3998"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize a slice buffer <a href="slice__buffer_8h.html#a3a073a017852ef88d7a8b884cecd3998">More...</a><br /></td></tr>
  82. <tr class="separator:a3a073a017852ef88d7a8b884cecd3998"><td class="memSeparator" colspan="2">&#160;</td></tr>
  83. <tr class="memitem:a47be0cfbcaf8e0824133e61019f18966"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a47be0cfbcaf8e0824133e61019f18966">grpc_slice_buffer_destroy</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb)</td></tr>
  84. <tr class="memdesc:a47be0cfbcaf8e0824133e61019f18966"><td class="mdescLeft">&#160;</td><td class="mdescRight">destroy a slice buffer - unrefs any held elements <a href="slice__buffer_8h.html#a47be0cfbcaf8e0824133e61019f18966">More...</a><br /></td></tr>
  85. <tr class="separator:a47be0cfbcaf8e0824133e61019f18966"><td class="memSeparator" colspan="2">&#160;</td></tr>
  86. <tr class="memitem:ab26ac15839a7837066d0ebabc30313a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#ab26ac15839a7837066d0ebabc30313a9">grpc_slice_buffer_add</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb, <a class="el" href="structgrpc__slice.html">grpc_slice</a> slice)</td></tr>
  87. <tr class="memdesc:ab26ac15839a7837066d0ebabc30313a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an element to a slice buffer - takes ownership of the slice. <a href="slice__buffer_8h.html#ab26ac15839a7837066d0ebabc30313a9">More...</a><br /></td></tr>
  88. <tr class="separator:ab26ac15839a7837066d0ebabc30313a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  89. <tr class="memitem:a14c17527c0b0e8a1a67d354cba8e5575"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a14c17527c0b0e8a1a67d354cba8e5575">grpc_slice_buffer_add_indexed</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb, <a class="el" href="structgrpc__slice.html">grpc_slice</a> slice)</td></tr>
  90. <tr class="memdesc:a14c17527c0b0e8a1a67d354cba8e5575"><td class="mdescLeft">&#160;</td><td class="mdescRight">add an element to a slice buffer - takes ownership of the slice and returns the index of the slice. <a href="slice__buffer_8h.html#a14c17527c0b0e8a1a67d354cba8e5575">More...</a><br /></td></tr>
  91. <tr class="separator:a14c17527c0b0e8a1a67d354cba8e5575"><td class="memSeparator" colspan="2">&#160;</td></tr>
  92. <tr class="memitem:a97d103b34483f9497366a9d251389b95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a97d103b34483f9497366a9d251389b95">grpc_slice_buffer_addn</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb, <a class="el" href="structgrpc__slice.html">grpc_slice</a> *slices, size_t n)</td></tr>
  93. <tr class="separator:a97d103b34483f9497366a9d251389b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
  94. <tr class="memitem:ab82975f2bc426f66150a0ab17c25b583"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#ab82975f2bc426f66150a0ab17c25b583">grpc_slice_buffer_tiny_add</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb, size_t len)</td></tr>
  95. <tr class="memdesc:ab82975f2bc426f66150a0ab17c25b583"><td class="mdescLeft">&#160;</td><td class="mdescRight">add a very small (less than 8 bytes) amount of data to the end of a slice buffer: returns a pointer into which to add the data <a href="slice__buffer_8h.html#ab82975f2bc426f66150a0ab17c25b583">More...</a><br /></td></tr>
  96. <tr class="separator:ab82975f2bc426f66150a0ab17c25b583"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:a67bfa3c38bffb8aca49f9d0fc01f4441"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a67bfa3c38bffb8aca49f9d0fc01f4441">grpc_slice_buffer_pop</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb)</td></tr>
  98. <tr class="memdesc:a67bfa3c38bffb8aca49f9d0fc01f4441"><td class="mdescLeft">&#160;</td><td class="mdescRight">pop the last buffer, but don't unref it <a href="slice__buffer_8h.html#a67bfa3c38bffb8aca49f9d0fc01f4441">More...</a><br /></td></tr>
  99. <tr class="separator:a67bfa3c38bffb8aca49f9d0fc01f4441"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100. <tr class="memitem:a250c487f6db5a26977fa416bca797ee7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a250c487f6db5a26977fa416bca797ee7">grpc_slice_buffer_reset_and_unref</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb)</td></tr>
  101. <tr class="memdesc:a250c487f6db5a26977fa416bca797ee7"><td class="mdescLeft">&#160;</td><td class="mdescRight">clear a slice buffer, unref all elements <a href="slice__buffer_8h.html#a250c487f6db5a26977fa416bca797ee7">More...</a><br /></td></tr>
  102. <tr class="separator:a250c487f6db5a26977fa416bca797ee7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="memitem:ab800ef0de532e142680e9fcc15c48ea7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">grpc_slice_buffer_swap</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *a, <a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *b)</td></tr>
  104. <tr class="memdesc:ab800ef0de532e142680e9fcc15c48ea7"><td class="mdescLeft">&#160;</td><td class="mdescRight">swap the contents of two slice buffers <a href="slice__buffer_8h.html#ab800ef0de532e142680e9fcc15c48ea7">More...</a><br /></td></tr>
  105. <tr class="separator:ab800ef0de532e142680e9fcc15c48ea7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  106. <tr class="memitem:aa173423d301fcac2089714659333e460"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#aa173423d301fcac2089714659333e460">grpc_slice_buffer_move_into</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *src, <a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *dst)</td></tr>
  107. <tr class="memdesc:aa173423d301fcac2089714659333e460"><td class="mdescLeft">&#160;</td><td class="mdescRight">move all of the elements of src into dst <a href="slice__buffer_8h.html#aa173423d301fcac2089714659333e460">More...</a><br /></td></tr>
  108. <tr class="separator:aa173423d301fcac2089714659333e460"><td class="memSeparator" colspan="2">&#160;</td></tr>
  109. <tr class="memitem:aaf8d6d9607ecd52d7f41b9b0ef80a53c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#aaf8d6d9607ecd52d7f41b9b0ef80a53c">grpc_slice_buffer_trim_end</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb, size_t n, <a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *garbage)</td></tr>
  110. <tr class="memdesc:aaf8d6d9607ecd52d7f41b9b0ef80a53c"><td class="mdescLeft">&#160;</td><td class="mdescRight">remove n bytes from the end of a slice buffer <a href="slice__buffer_8h.html#aaf8d6d9607ecd52d7f41b9b0ef80a53c">More...</a><br /></td></tr>
  111. <tr class="separator:aaf8d6d9607ecd52d7f41b9b0ef80a53c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  112. <tr class="memitem:afadc904499b2963055d9f472b63f147a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#afadc904499b2963055d9f472b63f147a">grpc_slice_buffer_move_first</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *src, size_t n, <a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *dst)</td></tr>
  113. <tr class="memdesc:afadc904499b2963055d9f472b63f147a"><td class="mdescLeft">&#160;</td><td class="mdescRight">move the first n bytes of src into dst <a href="slice__buffer_8h.html#afadc904499b2963055d9f472b63f147a">More...</a><br /></td></tr>
  114. <tr class="separator:afadc904499b2963055d9f472b63f147a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  115. <tr class="memitem:a7bd220a3e589556980985bef36b08d3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a7bd220a3e589556980985bef36b08d3e">grpc_slice_buffer_move_first_no_ref</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *src, size_t n, <a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *dst)</td></tr>
  116. <tr class="memdesc:a7bd220a3e589556980985bef36b08d3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">move the first n bytes of src into dst without adding references <a href="slice__buffer_8h.html#a7bd220a3e589556980985bef36b08d3e">More...</a><br /></td></tr>
  117. <tr class="separator:a7bd220a3e589556980985bef36b08d3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
  118. <tr class="memitem:ad2ab9bf61fe0a25d0684f0a56bd0d2bd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#ad2ab9bf61fe0a25d0684f0a56bd0d2bd">grpc_slice_buffer_move_first_into_buffer</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *src, size_t n, void *dst)</td></tr>
  119. <tr class="memdesc:ad2ab9bf61fe0a25d0684f0a56bd0d2bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">move the first n bytes of src into dst (copying them) <a href="slice__buffer_8h.html#ad2ab9bf61fe0a25d0684f0a56bd0d2bd">More...</a><br /></td></tr>
  120. <tr class="separator:ad2ab9bf61fe0a25d0684f0a56bd0d2bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
  121. <tr class="memitem:a677c347c22cfac0aeeefdaebd92e02f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> <a class="el" href="structgrpc__slice.html">grpc_slice</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#a677c347c22cfac0aeeefdaebd92e02f7">grpc_slice_buffer_take_first</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb)</td></tr>
  122. <tr class="memdesc:a677c347c22cfac0aeeefdaebd92e02f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">take the first slice in the slice buffer <a href="slice__buffer_8h.html#a677c347c22cfac0aeeefdaebd92e02f7">More...</a><br /></td></tr>
  123. <tr class="separator:a677c347c22cfac0aeeefdaebd92e02f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  124. <tr class="memitem:ad41c6aef08039f41241da25b66b76b20"><td class="memItemLeft" align="right" valign="top"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="slice__buffer_8h.html#ad41c6aef08039f41241da25b66b76b20">grpc_slice_buffer_undo_take_first</a> (<a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *sb, <a class="el" href="structgrpc__slice.html">grpc_slice</a> slice)</td></tr>
  125. <tr class="memdesc:ad41c6aef08039f41241da25b66b76b20"><td class="mdescLeft">&#160;</td><td class="mdescRight">undo the above with (a possibly different) <em>slice</em> <a href="slice__buffer_8h.html#ad41c6aef08039f41241da25b66b76b20">More...</a><br /></td></tr>
  126. <tr class="separator:ad41c6aef08039f41241da25b66b76b20"><td class="memSeparator" colspan="2">&#160;</td></tr>
  127. </table>
  128. <h2 class="groupheader">Function Documentation</h2>
  129. <a id="ab26ac15839a7837066d0ebabc30313a9"></a>
  130. <h2 class="memtitle"><span class="permalink"><a href="#ab26ac15839a7837066d0ebabc30313a9">&#9670;&nbsp;</a></span>grpc_slice_buffer_add()</h2>
  131. <div class="memitem">
  132. <div class="memproto">
  133. <table class="memname">
  134. <tr>
  135. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_add </td>
  136. <td>(</td>
  137. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  138. <td class="paramname"><em>sb</em>, </td>
  139. </tr>
  140. <tr>
  141. <td class="paramkey"></td>
  142. <td></td>
  143. <td class="paramtype"><a class="el" href="structgrpc__slice.html">grpc_slice</a>&#160;</td>
  144. <td class="paramname"><em>slice</em>&#160;</td>
  145. </tr>
  146. <tr>
  147. <td></td>
  148. <td>)</td>
  149. <td></td><td></td>
  150. </tr>
  151. </table>
  152. </div><div class="memdoc">
  153. <p>Add an element to a slice buffer - takes ownership of the slice. </p>
  154. <p>This function is allowed to concatenate the passed in slice to the end of some other slice if desired by the slice buffer. </p>
  155. </div>
  156. </div>
  157. <a id="a14c17527c0b0e8a1a67d354cba8e5575"></a>
  158. <h2 class="memtitle"><span class="permalink"><a href="#a14c17527c0b0e8a1a67d354cba8e5575">&#9670;&nbsp;</a></span>grpc_slice_buffer_add_indexed()</h2>
  159. <div class="memitem">
  160. <div class="memproto">
  161. <table class="memname">
  162. <tr>
  163. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> size_t grpc_slice_buffer_add_indexed </td>
  164. <td>(</td>
  165. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  166. <td class="paramname"><em>sb</em>, </td>
  167. </tr>
  168. <tr>
  169. <td class="paramkey"></td>
  170. <td></td>
  171. <td class="paramtype"><a class="el" href="structgrpc__slice.html">grpc_slice</a>&#160;</td>
  172. <td class="paramname"><em>slice</em>&#160;</td>
  173. </tr>
  174. <tr>
  175. <td></td>
  176. <td>)</td>
  177. <td></td><td></td>
  178. </tr>
  179. </table>
  180. </div><div class="memdoc">
  181. <p>add an element to a slice buffer - takes ownership of the slice and returns the index of the slice. </p>
  182. <p>Guarantees that the slice will not be concatenated at the end of another slice (i.e. the data for this slice will begin at the first byte of the slice at the returned index in sb-&gt;slices) The implementation MAY decide to concatenate data at the end of a small slice added in this fashion. </p>
  183. </div>
  184. </div>
  185. <a id="a97d103b34483f9497366a9d251389b95"></a>
  186. <h2 class="memtitle"><span class="permalink"><a href="#a97d103b34483f9497366a9d251389b95">&#9670;&nbsp;</a></span>grpc_slice_buffer_addn()</h2>
  187. <div class="memitem">
  188. <div class="memproto">
  189. <table class="memname">
  190. <tr>
  191. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_addn </td>
  192. <td>(</td>
  193. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  194. <td class="paramname"><em>sb</em>, </td>
  195. </tr>
  196. <tr>
  197. <td class="paramkey"></td>
  198. <td></td>
  199. <td class="paramtype"><a class="el" href="structgrpc__slice.html">grpc_slice</a> *&#160;</td>
  200. <td class="paramname"><em>slices</em>, </td>
  201. </tr>
  202. <tr>
  203. <td class="paramkey"></td>
  204. <td></td>
  205. <td class="paramtype">size_t&#160;</td>
  206. <td class="paramname"><em>n</em>&#160;</td>
  207. </tr>
  208. <tr>
  209. <td></td>
  210. <td>)</td>
  211. <td></td><td></td>
  212. </tr>
  213. </table>
  214. </div><div class="memdoc">
  215. </div>
  216. </div>
  217. <a id="a47be0cfbcaf8e0824133e61019f18966"></a>
  218. <h2 class="memtitle"><span class="permalink"><a href="#a47be0cfbcaf8e0824133e61019f18966">&#9670;&nbsp;</a></span>grpc_slice_buffer_destroy()</h2>
  219. <div class="memitem">
  220. <div class="memproto">
  221. <table class="memname">
  222. <tr>
  223. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_destroy </td>
  224. <td>(</td>
  225. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  226. <td class="paramname"><em>sb</em></td><td>)</td>
  227. <td></td>
  228. </tr>
  229. </table>
  230. </div><div class="memdoc">
  231. <p>destroy a slice buffer - unrefs any held elements </p>
  232. </div>
  233. </div>
  234. <a id="a3a073a017852ef88d7a8b884cecd3998"></a>
  235. <h2 class="memtitle"><span class="permalink"><a href="#a3a073a017852ef88d7a8b884cecd3998">&#9670;&nbsp;</a></span>grpc_slice_buffer_init()</h2>
  236. <div class="memitem">
  237. <div class="memproto">
  238. <table class="memname">
  239. <tr>
  240. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_init </td>
  241. <td>(</td>
  242. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  243. <td class="paramname"><em>sb</em></td><td>)</td>
  244. <td></td>
  245. </tr>
  246. </table>
  247. </div><div class="memdoc">
  248. <p>initialize a slice buffer </p>
  249. </div>
  250. </div>
  251. <a id="afadc904499b2963055d9f472b63f147a"></a>
  252. <h2 class="memtitle"><span class="permalink"><a href="#afadc904499b2963055d9f472b63f147a">&#9670;&nbsp;</a></span>grpc_slice_buffer_move_first()</h2>
  253. <div class="memitem">
  254. <div class="memproto">
  255. <table class="memname">
  256. <tr>
  257. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_move_first </td>
  258. <td>(</td>
  259. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  260. <td class="paramname"><em>src</em>, </td>
  261. </tr>
  262. <tr>
  263. <td class="paramkey"></td>
  264. <td></td>
  265. <td class="paramtype">size_t&#160;</td>
  266. <td class="paramname"><em>n</em>, </td>
  267. </tr>
  268. <tr>
  269. <td class="paramkey"></td>
  270. <td></td>
  271. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  272. <td class="paramname"><em>dst</em>&#160;</td>
  273. </tr>
  274. <tr>
  275. <td></td>
  276. <td>)</td>
  277. <td></td><td></td>
  278. </tr>
  279. </table>
  280. </div><div class="memdoc">
  281. <p>move the first n bytes of src into dst </p>
  282. </div>
  283. </div>
  284. <a id="ad2ab9bf61fe0a25d0684f0a56bd0d2bd"></a>
  285. <h2 class="memtitle"><span class="permalink"><a href="#ad2ab9bf61fe0a25d0684f0a56bd0d2bd">&#9670;&nbsp;</a></span>grpc_slice_buffer_move_first_into_buffer()</h2>
  286. <div class="memitem">
  287. <div class="memproto">
  288. <table class="memname">
  289. <tr>
  290. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_move_first_into_buffer </td>
  291. <td>(</td>
  292. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  293. <td class="paramname"><em>src</em>, </td>
  294. </tr>
  295. <tr>
  296. <td class="paramkey"></td>
  297. <td></td>
  298. <td class="paramtype">size_t&#160;</td>
  299. <td class="paramname"><em>n</em>, </td>
  300. </tr>
  301. <tr>
  302. <td class="paramkey"></td>
  303. <td></td>
  304. <td class="paramtype">void *&#160;</td>
  305. <td class="paramname"><em>dst</em>&#160;</td>
  306. </tr>
  307. <tr>
  308. <td></td>
  309. <td>)</td>
  310. <td></td><td></td>
  311. </tr>
  312. </table>
  313. </div><div class="memdoc">
  314. <p>move the first n bytes of src into dst (copying them) </p>
  315. </div>
  316. </div>
  317. <a id="a7bd220a3e589556980985bef36b08d3e"></a>
  318. <h2 class="memtitle"><span class="permalink"><a href="#a7bd220a3e589556980985bef36b08d3e">&#9670;&nbsp;</a></span>grpc_slice_buffer_move_first_no_ref()</h2>
  319. <div class="memitem">
  320. <div class="memproto">
  321. <table class="memname">
  322. <tr>
  323. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_move_first_no_ref </td>
  324. <td>(</td>
  325. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  326. <td class="paramname"><em>src</em>, </td>
  327. </tr>
  328. <tr>
  329. <td class="paramkey"></td>
  330. <td></td>
  331. <td class="paramtype">size_t&#160;</td>
  332. <td class="paramname"><em>n</em>, </td>
  333. </tr>
  334. <tr>
  335. <td class="paramkey"></td>
  336. <td></td>
  337. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  338. <td class="paramname"><em>dst</em>&#160;</td>
  339. </tr>
  340. <tr>
  341. <td></td>
  342. <td>)</td>
  343. <td></td><td></td>
  344. </tr>
  345. </table>
  346. </div><div class="memdoc">
  347. <p>move the first n bytes of src into dst without adding references </p>
  348. </div>
  349. </div>
  350. <a id="aa173423d301fcac2089714659333e460"></a>
  351. <h2 class="memtitle"><span class="permalink"><a href="#aa173423d301fcac2089714659333e460">&#9670;&nbsp;</a></span>grpc_slice_buffer_move_into()</h2>
  352. <div class="memitem">
  353. <div class="memproto">
  354. <table class="memname">
  355. <tr>
  356. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_move_into </td>
  357. <td>(</td>
  358. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  359. <td class="paramname"><em>src</em>, </td>
  360. </tr>
  361. <tr>
  362. <td class="paramkey"></td>
  363. <td></td>
  364. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  365. <td class="paramname"><em>dst</em>&#160;</td>
  366. </tr>
  367. <tr>
  368. <td></td>
  369. <td>)</td>
  370. <td></td><td></td>
  371. </tr>
  372. </table>
  373. </div><div class="memdoc">
  374. <p>move all of the elements of src into dst </p>
  375. </div>
  376. </div>
  377. <a id="a67bfa3c38bffb8aca49f9d0fc01f4441"></a>
  378. <h2 class="memtitle"><span class="permalink"><a href="#a67bfa3c38bffb8aca49f9d0fc01f4441">&#9670;&nbsp;</a></span>grpc_slice_buffer_pop()</h2>
  379. <div class="memitem">
  380. <div class="memproto">
  381. <table class="memname">
  382. <tr>
  383. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_pop </td>
  384. <td>(</td>
  385. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  386. <td class="paramname"><em>sb</em></td><td>)</td>
  387. <td></td>
  388. </tr>
  389. </table>
  390. </div><div class="memdoc">
  391. <p>pop the last buffer, but don't unref it </p>
  392. </div>
  393. </div>
  394. <a id="a250c487f6db5a26977fa416bca797ee7"></a>
  395. <h2 class="memtitle"><span class="permalink"><a href="#a250c487f6db5a26977fa416bca797ee7">&#9670;&nbsp;</a></span>grpc_slice_buffer_reset_and_unref()</h2>
  396. <div class="memitem">
  397. <div class="memproto">
  398. <table class="memname">
  399. <tr>
  400. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_reset_and_unref </td>
  401. <td>(</td>
  402. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  403. <td class="paramname"><em>sb</em></td><td>)</td>
  404. <td></td>
  405. </tr>
  406. </table>
  407. </div><div class="memdoc">
  408. <p>clear a slice buffer, unref all elements </p>
  409. </div>
  410. </div>
  411. <a id="ab800ef0de532e142680e9fcc15c48ea7"></a>
  412. <h2 class="memtitle"><span class="permalink"><a href="#ab800ef0de532e142680e9fcc15c48ea7">&#9670;&nbsp;</a></span>grpc_slice_buffer_swap()</h2>
  413. <div class="memitem">
  414. <div class="memproto">
  415. <table class="memname">
  416. <tr>
  417. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_swap </td>
  418. <td>(</td>
  419. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  420. <td class="paramname"><em>a</em>, </td>
  421. </tr>
  422. <tr>
  423. <td class="paramkey"></td>
  424. <td></td>
  425. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  426. <td class="paramname"><em>b</em>&#160;</td>
  427. </tr>
  428. <tr>
  429. <td></td>
  430. <td>)</td>
  431. <td></td><td></td>
  432. </tr>
  433. </table>
  434. </div><div class="memdoc">
  435. <p>swap the contents of two slice buffers </p>
  436. </div>
  437. </div>
  438. <a id="a677c347c22cfac0aeeefdaebd92e02f7"></a>
  439. <h2 class="memtitle"><span class="permalink"><a href="#a677c347c22cfac0aeeefdaebd92e02f7">&#9670;&nbsp;</a></span>grpc_slice_buffer_take_first()</h2>
  440. <div class="memitem">
  441. <div class="memproto">
  442. <table class="memname">
  443. <tr>
  444. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> <a class="el" href="structgrpc__slice.html">grpc_slice</a> grpc_slice_buffer_take_first </td>
  445. <td>(</td>
  446. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  447. <td class="paramname"><em>sb</em></td><td>)</td>
  448. <td></td>
  449. </tr>
  450. </table>
  451. </div><div class="memdoc">
  452. <p>take the first slice in the slice buffer </p>
  453. </div>
  454. </div>
  455. <a id="ab82975f2bc426f66150a0ab17c25b583"></a>
  456. <h2 class="memtitle"><span class="permalink"><a href="#ab82975f2bc426f66150a0ab17c25b583">&#9670;&nbsp;</a></span>grpc_slice_buffer_tiny_add()</h2>
  457. <div class="memitem">
  458. <div class="memproto">
  459. <table class="memname">
  460. <tr>
  461. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> uint8_t* grpc_slice_buffer_tiny_add </td>
  462. <td>(</td>
  463. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  464. <td class="paramname"><em>sb</em>, </td>
  465. </tr>
  466. <tr>
  467. <td class="paramkey"></td>
  468. <td></td>
  469. <td class="paramtype">size_t&#160;</td>
  470. <td class="paramname"><em>len</em>&#160;</td>
  471. </tr>
  472. <tr>
  473. <td></td>
  474. <td>)</td>
  475. <td></td><td></td>
  476. </tr>
  477. </table>
  478. </div><div class="memdoc">
  479. <p>add a very small (less than 8 bytes) amount of data to the end of a slice buffer: returns a pointer into which to add the data </p>
  480. </div>
  481. </div>
  482. <a id="aaf8d6d9607ecd52d7f41b9b0ef80a53c"></a>
  483. <h2 class="memtitle"><span class="permalink"><a href="#aaf8d6d9607ecd52d7f41b9b0ef80a53c">&#9670;&nbsp;</a></span>grpc_slice_buffer_trim_end()</h2>
  484. <div class="memitem">
  485. <div class="memproto">
  486. <table class="memname">
  487. <tr>
  488. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_trim_end </td>
  489. <td>(</td>
  490. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  491. <td class="paramname"><em>sb</em>, </td>
  492. </tr>
  493. <tr>
  494. <td class="paramkey"></td>
  495. <td></td>
  496. <td class="paramtype">size_t&#160;</td>
  497. <td class="paramname"><em>n</em>, </td>
  498. </tr>
  499. <tr>
  500. <td class="paramkey"></td>
  501. <td></td>
  502. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  503. <td class="paramname"><em>garbage</em>&#160;</td>
  504. </tr>
  505. <tr>
  506. <td></td>
  507. <td>)</td>
  508. <td></td><td></td>
  509. </tr>
  510. </table>
  511. </div><div class="memdoc">
  512. <p>remove n bytes from the end of a slice buffer </p>
  513. </div>
  514. </div>
  515. <a id="ad41c6aef08039f41241da25b66b76b20"></a>
  516. <h2 class="memtitle"><span class="permalink"><a href="#ad41c6aef08039f41241da25b66b76b20">&#9670;&nbsp;</a></span>grpc_slice_buffer_undo_take_first()</h2>
  517. <div class="memitem">
  518. <div class="memproto">
  519. <table class="memname">
  520. <tr>
  521. <td class="memname"><a class="el" href="impl_2codegen_2port__platform_8h.html#af89d3610372fc35178e83e06916aa808">GPRAPI</a> void grpc_slice_buffer_undo_take_first </td>
  522. <td>(</td>
  523. <td class="paramtype"><a class="el" href="structgrpc__slice__buffer.html">grpc_slice_buffer</a> *&#160;</td>
  524. <td class="paramname"><em>sb</em>, </td>
  525. </tr>
  526. <tr>
  527. <td class="paramkey"></td>
  528. <td></td>
  529. <td class="paramtype"><a class="el" href="structgrpc__slice.html">grpc_slice</a>&#160;</td>
  530. <td class="paramname"><em>slice</em>&#160;</td>
  531. </tr>
  532. <tr>
  533. <td></td>
  534. <td>)</td>
  535. <td></td><td></td>
  536. </tr>
  537. </table>
  538. </div><div class="memdoc">
  539. <p>undo the above with (a possibly different) <em>slice</em> </p>
  540. </div>
  541. </div>
  542. </div><!-- contents -->
  543. <!-- start footer part -->
  544. <hr class="footer"/><address class="footer"><small>
  545. Generated on Wed Mar 3 2021 19:17:11 for GRPC Core by &#160;<a href="http://www.doxygen.org/index.html">
  546. <img class="footer" src="doxygen.png" alt="doxygen"/>
  547. </a> 1.8.17
  548. </small></address>
  549. </body>
  550. </html>