| <!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>Avro C++: api/Stream.hh 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">Avro C++ |
| </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&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&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_0188a3e6da905bc60aceb35bf790b8c9.html">api</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="headertitle"> |
| <div class="title">Stream.hh</div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> |
| <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div> |
| <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div> |
| <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment"> * distributed with this work for additional information</span></div> |
| <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div> |
| <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div> |
| <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> * "License"); you may not use this file except in compliance</span></div> |
| <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment"> * with the License. You may obtain a copy of the License at</span></div> |
| <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment"> *</span></div> |
| <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment"> * https://www.apache.org/licenses/LICENSE-2.0</span></div> |
| <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment"> *</span></div> |
| <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div> |
| <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment"> * distributed under the License is distributed on an "AS IS" BASIS,</span></div> |
| <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div> |
| <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment"> * See the License for the specific language governing permissions and</span></div> |
| <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment"> * limitations under the License.</span></div> |
| <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> */</span></div> |
| <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>  </div> |
| <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#ifndef avro_Stream_hh__</span></div> |
| <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="preprocessor">#define avro_Stream_hh__</span></div> |
| <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>  </div> |
| <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include <cstdint></span></div> |
| <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include <cstring></span></div> |
| <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <memory></span></div> |
| <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>  </div> |
| <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "boost/utility.hpp"</span></div> |
| <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>  </div> |
| <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "Config.hh"</span></div> |
| <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "Exception.hh"</span></div> |
| <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>  </div> |
| <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">namespace </span><a class="code" href="namespaceavro.html">avro</a> {</div> |
| <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>  </div> |
| <div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classavro_1_1InputStream.html"> 36</a></span> <span class="keyword">class </span>AVRO_DECL <a class="code" href="classavro_1_1InputStream.html">InputStream</a> : boost::noncopyable {</div> |
| <div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">protected</span>:</div> |
| <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>  <a class="code" href="classavro_1_1InputStream.html">InputStream</a>() = <span class="keywordflow">default</span>;</div> |
| <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>  </div> |
| <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">virtual</span> ~<a class="code" href="classavro_1_1InputStream.html">InputStream</a>() = <span class="keywordflow">default</span>;</div> |
| <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </div> |
| <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> next(<span class="keyword">const</span> uint8_t **data, <span class="keywordtype">size_t</span> *len) = 0;</div> |
| <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </div> |
| <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> backup(<span class="keywordtype">size_t</span> len) = 0;</div> |
| <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  </div> |
| <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> skip(<span class="keywordtype">size_t</span> len) = 0;</div> |
| <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </div> |
| <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> byteCount() <span class="keyword">const</span> = 0;</div> |
| <div class="line"><a name="l00075"></a><span class="lineno"> 75</span> };</div> |
| <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </div> |
| <div class="line"><a name="l00077"></a><span class="lineno"> 77</span> <span class="keyword">typedef</span> std::unique_ptr<InputStream> InputStreamPtr;</div> |
| <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div> |
| <div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classavro_1_1SeekableInputStream.html"> 82</a></span> <span class="keyword">class </span>AVRO_DECL <a class="code" href="classavro_1_1SeekableInputStream.html">SeekableInputStream</a> : <span class="keyword">public</span> <a class="code" href="classavro_1_1InputStream.html">InputStream</a> {</div> |
| <div class="line"><a name="l00083"></a><span class="lineno"> 83</span> <span class="keyword">protected</span>:</div> |
| <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <a class="code" href="classavro_1_1SeekableInputStream.html">SeekableInputStream</a>() = <span class="keywordflow">default</span>;</div> |
| <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div> |
| <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  ~<a class="code" href="classavro_1_1SeekableInputStream.html">SeekableInputStream</a>() <span class="keyword">override</span> = <span class="keywordflow">default</span>;</div> |
| <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </div> |
| <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> seek(int64_t position) = 0;</div> |
| <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> };</div> |
| <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  </div> |
| <div class="line"><a name="l00103"></a><span class="lineno"> 103</span> <span class="keyword">typedef</span> std::unique_ptr<SeekableInputStream> SeekableInputStreamPtr;</div> |
| <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div> |
| <div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classavro_1_1OutputStream.html"> 108</a></span> <span class="keyword">class </span>AVRO_DECL <a class="code" href="classavro_1_1OutputStream.html">OutputStream</a> : boost::noncopyable {</div> |
| <div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">protected</span>:</div> |
| <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <a class="code" href="classavro_1_1OutputStream.html">OutputStream</a>() = <span class="keywordflow">default</span>;</div> |
| <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  </div> |
| <div class="line"><a name="l00115"></a><span class="lineno"> 115</span> <span class="keyword">public</span>:</div> |
| <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keyword">virtual</span> ~<a class="code" href="classavro_1_1OutputStream.html">OutputStream</a>() = <span class="keywordflow">default</span>;</div> |
| <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div> |
| <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keyword">virtual</span> <span class="keywordtype">bool</span> next(uint8_t **data, <span class="keywordtype">size_t</span> *len) = 0;</div> |
| <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div> |
| <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> backup(<span class="keywordtype">size_t</span> len) = 0;</div> |
| <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  </div> |
| <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">virtual</span> uint64_t byteCount() <span class="keyword">const</span> = 0;</div> |
| <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  </div> |
| <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> flush() = 0;</div> |
| <div class="line"><a name="l00146"></a><span class="lineno"> 146</span> };</div> |
| <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  </div> |
| <div class="line"><a name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">typedef</span> std::unique_ptr<OutputStream> OutputStreamPtr;</div> |
| <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div> |
| <div class="line"><a name="l00153"></a><span class="lineno"> 153</span> AVRO_DECL OutputStreamPtr <a class="code" href="namespaceavro.html#a0e961740e43d3f800220f03de11654e8">memoryOutputStream</a>(<span class="keywordtype">size_t</span> chunkSize = 4 * 1024);</div> |
| <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div> |
| <div class="line"><a name="l00160"></a><span class="lineno"> 160</span> AVRO_DECL InputStreamPtr <a class="code" href="namespaceavro.html#a98b7a8baaef11e477db89699ab27359b">memoryInputStream</a>(<span class="keyword">const</span> uint8_t *data, <span class="keywordtype">size_t</span> len);</div> |
| <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div> |
| <div class="line"><a name="l00169"></a><span class="lineno"> 169</span> AVRO_DECL InputStreamPtr <a class="code" href="namespaceavro.html#a98b7a8baaef11e477db89699ab27359b">memoryInputStream</a>(<span class="keyword">const</span> <a class="code" href="classavro_1_1OutputStream.html">OutputStream</a> &source);</div> |
| <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </div> |
| <div class="line"><a name="l00176"></a><span class="lineno"> 176</span> AVRO_DECL std::shared_ptr<std::vector<uint8_t>> <a class="code" href="namespaceavro.html#a1d938bbd6332e4c247e5a975ca066647">snapshot</a>(<span class="keyword">const</span> <a class="code" href="classavro_1_1OutputStream.html">OutputStream</a> &source);</div> |
| <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div> |
| <div class="line"><a name="l00185"></a><span class="lineno"> 185</span> AVRO_DECL OutputStreamPtr <a class="code" href="namespaceavro.html#a164e34d709ba33d2464c295e7874f784">fileOutputStream</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename,</div> |
| <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordtype">size_t</span> bufferSize = 8 * 1024);</div> |
| <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  </div> |
| <div class="line"><a name="l00192"></a><span class="lineno"> 192</span> AVRO_DECL InputStreamPtr <a class="code" href="namespaceavro.html#a1e5251d2ad9581e353399c1bac90c9fb">fileInputStream</a>(</div> |
| <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keywordtype">size_t</span> bufferSize = 8 * 1024);</div> |
| <div class="line"><a name="l00194"></a><span class="lineno"> 194</span> AVRO_DECL SeekableInputStreamPtr fileSeekableInputStream(</div> |
| <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keywordtype">size_t</span> bufferSize = 8 * 1024);</div> |
| <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div> |
| <div class="line"><a name="l00202"></a><span class="lineno"> 202</span> AVRO_DECL OutputStreamPtr <a class="code" href="namespaceavro.html#acb2ea7a6b8a82014ce7d76abcc171812">ostreamOutputStream</a>(std::ostream &os,</div> |
| <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordtype">size_t</span> bufferSize = 8 * 1024);</div> |
| <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div> |
| <div class="line"><a name="l00210"></a><span class="lineno"> 210</span> AVRO_DECL InputStreamPtr <a class="code" href="namespaceavro.html#aff15582cf7ee211e1b2e0968a0edbd7e">istreamInputStream</a>(</div> |
| <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  std::istream &in, <span class="keywordtype">size_t</span> bufferSize = 8 * 1024);</div> |
| <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  </div> |
| <div class="line"><a name="l00223"></a><span class="lineno"> 223</span> AVRO_DECL InputStreamPtr <a class="code" href="namespaceavro.html#a9033beeae2950b3e73d99482d3936929">nonSeekableIstreamInputStream</a>(</div> |
| <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  std::istream &is, <span class="keywordtype">size_t</span> bufferSize = 8 * 1024);</div> |
| <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  </div> |
| <div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html"> 227</a></span> <span class="keyword">struct </span><a class="code" href="structavro_1_1StreamReader.html">StreamReader</a> {</div> |
| <div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008"> 231</a></span>  <a class="code" href="classavro_1_1InputStream.html">InputStream</a> *<a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a>;</div> |
| <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  </div> |
| <div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94"> 236</a></span>  <span class="keyword">const</span> uint8_t *<a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>;</div> |
| <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div> |
| <div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710"> 241</a></span>  <span class="keyword">const</span> uint8_t *<a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a>;</div> |
| <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  </div> |
| <div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#a1f69076d05b5711cf0695d1a91193737"> 246</a></span>  <a class="code" href="structavro_1_1StreamReader.html#a1f69076d05b5711cf0695d1a91193737">StreamReader</a>() : <a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a>(nullptr), <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>(nullptr), <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a>(nullptr) {}</div> |
| <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div> |
| <div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#ad364f5ec1191462b88d75fdc29ddd639"> 251</a></span>  <span class="keyword">explicit</span> <a class="code" href="structavro_1_1StreamReader.html#ad364f5ec1191462b88d75fdc29ddd639">StreamReader</a>(<a class="code" href="classavro_1_1InputStream.html">InputStream</a> &in) : <a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a>(nullptr), <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>(nullptr), <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a>(nullptr) { <a class="code" href="structavro_1_1StreamReader.html#a293c20163efcc2d0380fab80f3c82058">reset</a>(in); }</div> |
| <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  </div> |
| <div class="line"><a name="l00257"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#a293c20163efcc2d0380fab80f3c82058"> 257</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamReader.html#a293c20163efcc2d0380fab80f3c82058">reset</a>(<a class="code" href="classavro_1_1InputStream.html">InputStream</a> &is) {</div> |
| <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  <span class="keywordflow">if</span> (<a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a> != <span class="keyword">nullptr</span> && <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> != <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>) {</div> |
| <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a>-><a class="code" href="classavro_1_1InputStream.html#a03f9cfac5f7a0141bfe7d6cc4bc7a0d0">backup</a>(<a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> - <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>);</div> |
| <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div> |
| <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a> = &is;</div> |
| <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> = <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> = <span class="keyword">nullptr</span>;</div> |
| <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  }</div> |
| <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div> |
| <div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#ace1b429f51df3702a33d2991031ac2f8"> 269</a></span>  uint8_t <a class="code" href="structavro_1_1StreamReader.html#ace1b429f51df3702a33d2991031ac2f8">read</a>() {</div> |
| <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keywordflow">if</span> (<a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> == <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a>) {</div> |
| <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <a class="code" href="structavro_1_1StreamReader.html#a9501052d3dbbf54070f565bc0f0d644a">more</a>();</div> |
| <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div> |
| <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">return</span> *<a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>++;</div> |
| <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div> |
| <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  </div> |
| <div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#ae2f45670ed6815c76103245665f0ee25"> 280</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamReader.html#ae2f45670ed6815c76103245665f0ee25">readBytes</a>(uint8_t *b, <span class="keywordtype">size_t</span> n) {</div> |
| <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keywordflow">while</span> (n > 0) {</div> |
| <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">if</span> (<a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> == <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a>) {</div> |
| <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="structavro_1_1StreamReader.html#a9501052d3dbbf54070f565bc0f0d644a">more</a>();</div> |
| <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  }</div> |
| <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  <span class="keywordtype">size_t</span> q = <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> - <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>;</div> |
| <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">if</span> (q > n) {</div> |
| <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  q = n;</div> |
| <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  }</div> |
| <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  ::memcpy(b, <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>, q);</div> |
| <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> += q;</div> |
| <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  b += q;</div> |
| <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  n -= q;</div> |
| <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div> |
| <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  }</div> |
| <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  </div> |
| <div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#a25be160ee9e5fd541c0004066376c4ac"> 300</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamReader.html#a25be160ee9e5fd541c0004066376c4ac">skipBytes</a>(<span class="keywordtype">size_t</span> n) {</div> |
| <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">if</span> (n > <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(<a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> - <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>)) {</div> |
| <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  n -= <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> - <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>;</div> |
| <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> = <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a>;</div> |
| <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  <a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a>-><a class="code" href="classavro_1_1InputStream.html#a4ec852f779fc68dea8fef197ec3eef1d">skip</a>(n);</div> |
| <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  } <span class="keywordflow">else</span> {</div> |
| <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> += n;</div> |
| <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  }</div> |
| <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div> |
| <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </div> |
| <div class="line"><a name="l00316"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#af255c4f8690be489a0b623328e1cee76"> 316</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structavro_1_1StreamReader.html#af255c4f8690be489a0b623328e1cee76">fill</a>() {</div> |
| <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordtype">size_t</span> n = 0;</div> |
| <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">while</span> (<a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a>-><a class="code" href="classavro_1_1InputStream.html#a87767c15b0661981d24f7a42bfcef6b5">next</a>(&<a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>, &n)) {</div> |
| <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <span class="keywordflow">if</span> (n != 0) {</div> |
| <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> = <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> + n;</div> |
| <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div> |
| <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  }</div> |
| <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  }</div> |
| <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div> |
| <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  }</div> |
| <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div> |
| <div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#a9501052d3dbbf54070f565bc0f0d644a"> 330</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamReader.html#a9501052d3dbbf54070f565bc0f0d644a">more</a>() {</div> |
| <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordflow">if</span> (!<a class="code" href="structavro_1_1StreamReader.html#af255c4f8690be489a0b623328e1cee76">fill</a>()) {</div> |
| <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">throw</span> <a class="code" href="classavro_1_1Exception.html">Exception</a>(<span class="stringliteral">"EOF reached"</span>);</div> |
| <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  }</div> |
| <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  }</div> |
| <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  </div> |
| <div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#ad87f4fb3d42428965766169da50a7487"> 339</a></span>  <span class="keywordtype">bool</span> <a class="code" href="structavro_1_1StreamReader.html#ad87f4fb3d42428965766169da50a7487">hasMore</a>() {</div> |
| <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">return</span> <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a> != <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> || <a class="code" href="structavro_1_1StreamReader.html#af255c4f8690be489a0b623328e1cee76">fill</a>();</div> |
| <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  }</div> |
| <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div> |
| <div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="structavro_1_1StreamReader.html#a8c31fc602f068368d7a0e91eea71c4de"> 347</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamReader.html#a8c31fc602f068368d7a0e91eea71c4de">drain</a>(<span class="keywordtype">bool</span> unRead) {</div> |
| <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keywordflow">if</span> (unRead) {</div> |
| <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  --<a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>;</div> |
| <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  }</div> |
| <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <a class="code" href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">in_</a>-><a class="code" href="classavro_1_1InputStream.html#a03f9cfac5f7a0141bfe7d6cc4bc7a0d0">backup</a>(<a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> - <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>);</div> |
| <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <a class="code" href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">end_</a> = <a class="code" href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">next_</a>;</div> |
| <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  }</div> |
| <div class="line"><a name="l00354"></a><span class="lineno"> 354</span> };</div> |
| <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  </div> |
| <div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html"> 359</a></span> <span class="keyword">struct </span><a class="code" href="structavro_1_1StreamWriter.html">StreamWriter</a> {</div> |
| <div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7"> 363</a></span>  <a class="code" href="classavro_1_1OutputStream.html">OutputStream</a> *<a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>;</div> |
| <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  </div> |
| <div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986"> 368</a></span>  uint8_t *<a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>;</div> |
| <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div> |
| <div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5"> 373</a></span>  uint8_t *<a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>;</div> |
| <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div> |
| <div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a5e20cd787a15c2941c90b6d077c73d14"> 378</a></span>  <a class="code" href="structavro_1_1StreamWriter.html#a5e20cd787a15c2941c90b6d077c73d14">StreamWriter</a>() : <a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>(nullptr), <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>(nullptr), <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>(nullptr) {}</div> |
| <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div> |
| <div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a9e1685a3f609d96f8da8678ee8036350"> 383</a></span>  <span class="keyword">explicit</span> <a class="code" href="structavro_1_1StreamWriter.html#a9e1685a3f609d96f8da8678ee8036350">StreamWriter</a>(<a class="code" href="classavro_1_1OutputStream.html">OutputStream</a> &out) : <a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>(nullptr), <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>(nullptr), <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>(nullptr) { <a class="code" href="structavro_1_1StreamWriter.html#af3aaff674b77d7f98de86597da26b1f3">reset</a>(out); }</div> |
| <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div> |
| <div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#af3aaff674b77d7f98de86597da26b1f3"> 389</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamWriter.html#af3aaff674b77d7f98de86597da26b1f3">reset</a>(<a class="code" href="classavro_1_1OutputStream.html">OutputStream</a> &os) {</div> |
| <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span> (<a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a> != <span class="keyword">nullptr</span> && <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a> != <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>) {</div> |
| <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>-><a class="code" href="classavro_1_1OutputStream.html#a81881efd901311b1fc6610f77791adfe">backup</a>(<a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a> - <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>);</div> |
| <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div> |
| <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a> = &os;</div> |
| <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a> = <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>;</div> |
| <div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div> |
| <div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  </div> |
| <div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a8edff3e28052978180a42b2f792eb28d"> 400</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamWriter.html#a8edff3e28052978180a42b2f792eb28d">write</a>(uint8_t c) {</div> |
| <div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">if</span> (<a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a> == <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>) {</div> |
| <div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <a class="code" href="structavro_1_1StreamWriter.html#a93740c70becb0f206a05c5dd1f2a7880">more</a>();</div> |
| <div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div> |
| <div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  *<a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>++ = c;</div> |
| <div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  }</div> |
| <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  </div> |
| <div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a803e4adca5c39eeeb2fb179cdd26123a"> 410</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamWriter.html#a803e4adca5c39eeeb2fb179cdd26123a">writeBytes</a>(<span class="keyword">const</span> uint8_t *b, <span class="keywordtype">size_t</span> n) {</div> |
| <div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">while</span> (n > 0) {</div> |
| <div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">if</span> (<a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a> == <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>) {</div> |
| <div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  <a class="code" href="structavro_1_1StreamWriter.html#a93740c70becb0f206a05c5dd1f2a7880">more</a>();</div> |
| <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  }</div> |
| <div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordtype">size_t</span> q = <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a> - <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>;</div> |
| <div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  <span class="keywordflow">if</span> (q > n) {</div> |
| <div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  q = n;</div> |
| <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  }</div> |
| <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  ::memcpy(<a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>, b, q);</div> |
| <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a> += q;</div> |
| <div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  b += q;</div> |
| <div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  n -= q;</div> |
| <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  }</div> |
| <div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  }</div> |
| <div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  </div> |
| <div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a8163904c80aca61a9a1c35d9b1b4604d"> 430</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamWriter.html#a8163904c80aca61a9a1c35d9b1b4604d">flush</a>() {</div> |
| <div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">if</span> (<a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a> != <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>) {</div> |
| <div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>-><a class="code" href="classavro_1_1OutputStream.html#a81881efd901311b1fc6610f77791adfe">backup</a>(<a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a> - <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>);</div> |
| <div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a> = <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a>;</div> |
| <div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  }</div> |
| <div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>-><a class="code" href="classavro_1_1OutputStream.html#a4eba4b0bca41a7174460e2672782273d">flush</a>();</div> |
| <div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  }</div> |
| <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  </div> |
| <div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a2fbdd9e896bdfb7f704b52243b4f1661"> 442</a></span>  int64_t <a class="code" href="structavro_1_1StreamWriter.html#a2fbdd9e896bdfb7f704b52243b4f1661">byteCount</a>()<span class="keyword"> const </span>{</div> |
| <div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">return</span> <a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>-><a class="code" href="classavro_1_1OutputStream.html#ab799b7bad4c75b5ade65fa6fd117a4b4">byteCount</a>();</div> |
| <div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  }</div> |
| <div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div> |
| <div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="structavro_1_1StreamWriter.html#a93740c70becb0f206a05c5dd1f2a7880"> 449</a></span>  <span class="keywordtype">void</span> <a class="code" href="structavro_1_1StreamWriter.html#a93740c70becb0f206a05c5dd1f2a7880">more</a>() {</div> |
| <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordtype">size_t</span> n = 0;</div> |
| <div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  <span class="keywordflow">while</span> (<a class="code" href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">out_</a>-><a class="code" href="classavro_1_1OutputStream.html#a257177c7b0f2e98c523cb2ae68737e18">next</a>(&<a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a>, &n)) {</div> |
| <div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keywordflow">if</span> (n != 0) {</div> |
| <div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <a class="code" href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">end_</a> = <a class="code" href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">next_</a> + n;</div> |
| <div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">return</span>;</div> |
| <div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div> |
| <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  }</div> |
| <div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  <span class="keywordflow">throw</span> <a class="code" href="classavro_1_1Exception.html">Exception</a>(<span class="stringliteral">"EOF reached"</span>);</div> |
| <div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  }</div> |
| <div class="line"><a name="l00459"></a><span class="lineno"> 459</span> };</div> |
| <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  </div> |
| <div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="namespaceavro.html#adeab3d9f5f2a4a4f96d3ffb8ba27e523"> 465</a></span> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="namespaceavro.html#adeab3d9f5f2a4a4f96d3ffb8ba27e523">copy</a>(<a class="code" href="classavro_1_1InputStream.html">InputStream</a> &in, <a class="code" href="classavro_1_1OutputStream.html">OutputStream</a> &out) {</div> |
| <div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keyword">const</span> uint8_t *p = <span class="keyword">nullptr</span>;</div> |
| <div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  <span class="keywordtype">size_t</span> n = 0;</div> |
| <div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <a class="code" href="structavro_1_1StreamWriter.html">StreamWriter</a> w(out);</div> |
| <div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="keywordflow">while</span> (in.<a class="code" href="classavro_1_1InputStream.html#a87767c15b0661981d24f7a42bfcef6b5">next</a>(&p, &n)) {</div> |
| <div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  w.<a class="code" href="structavro_1_1StreamWriter.html#a803e4adca5c39eeeb2fb179cdd26123a">writeBytes</a>(p, n);</div> |
| <div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div> |
| <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  w.<a class="code" href="structavro_1_1StreamWriter.html#a8163904c80aca61a9a1c35d9b1b4604d">flush</a>();</div> |
| <div class="line"><a name="l00473"></a><span class="lineno"> 473</span> }</div> |
| <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  </div> |
| <div class="line"><a name="l00475"></a><span class="lineno"> 475</span> } <span class="comment">// namespace avro</span></div> |
| <div class="line"><a name="l00476"></a><span class="lineno"> 476</span> <span class="preprocessor">#endif</span></div> |
| </div><!-- fragment --></div><!-- contents --> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_ad87f4fb3d42428965766169da50a7487"><div class="ttname"><a href="structavro_1_1StreamReader.html#ad87f4fb3d42428965766169da50a7487">avro::StreamReader::hasMore</a></div><div class="ttdeci">bool hasMore()</div><div class="ttdoc">Returns true if and only if the end of stream is not reached.</div><div class="ttdef"><b>Definition:</b> Stream.hh:339</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_af3aaff674b77d7f98de86597da26b1f3"><div class="ttname"><a href="structavro_1_1StreamWriter.html#af3aaff674b77d7f98de86597da26b1f3">avro::StreamWriter::reset</a></div><div class="ttdeci">void reset(OutputStream &os)</div><div class="ttdoc">Replaces the current underlying stream with a new one.</div><div class="ttdef"><b>Definition:</b> Stream.hh:389</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a803e4adca5c39eeeb2fb179cdd26123a"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a803e4adca5c39eeeb2fb179cdd26123a">avro::StreamWriter::writeBytes</a></div><div class="ttdeci">void writeBytes(const uint8_t *b, size_t n)</div><div class="ttdoc">Writes the specified number of bytes starting at b.</div><div class="ttdef"><b>Definition:</b> Stream.hh:410</div></div> |
| <div class="ttc" id="aclassavro_1_1OutputStream_html"><div class="ttname"><a href="classavro_1_1OutputStream.html">avro::OutputStream</a></div><div class="ttdoc">A no-copy output stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:108</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_af255c4f8690be489a0b623328e1cee76"><div class="ttname"><a href="structavro_1_1StreamReader.html#af255c4f8690be489a0b623328e1cee76">avro::StreamReader::fill</a></div><div class="ttdeci">bool fill()</div><div class="ttdoc">Get as many byes from the underlying stream as possible in a single chunk.</div><div class="ttdef"><b>Definition:</b> Stream.hh:316</div></div> |
| <div class="ttc" id="aclassavro_1_1SeekableInputStream_html"><div class="ttname"><a href="classavro_1_1SeekableInputStream.html">avro::SeekableInputStream</a></div><div class="ttdoc">An InputStream which also supports seeking to a specific offset.</div><div class="ttdef"><b>Definition:</b> Stream.hh:82</div></div> |
| <div class="ttc" id="aclassavro_1_1OutputStream_html_a4eba4b0bca41a7174460e2672782273d"><div class="ttname"><a href="classavro_1_1OutputStream.html#a4eba4b0bca41a7174460e2672782273d">avro::OutputStream::flush</a></div><div class="ttdeci">virtual void flush()=0</div><div class="ttdoc">Flushes any data remaining in the buffer to the stream's underlying store, if any.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_ac496ab63c9b3d68c60e8e5697cdd3008"><div class="ttname"><a href="structavro_1_1StreamReader.html#ac496ab63c9b3d68c60e8e5697cdd3008">avro::StreamReader::in_</a></div><div class="ttdeci">InputStream * in_</div><div class="ttdoc">The underlying input stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:231</div></div> |
| <div class="ttc" id="anamespaceavro_html_a164e34d709ba33d2464c295e7874f784"><div class="ttname"><a href="namespaceavro.html#a164e34d709ba33d2464c295e7874f784">avro::fileOutputStream</a></div><div class="ttdeci">AVRO_DECL OutputStreamPtr fileOutputStream(const char *filename, size_t bufferSize=8 *1024)</div><div class="ttdoc">Returns a new OutputStream whose contents would be stored in a file.</div></div> |
| <div class="ttc" id="anamespaceavro_html_a9033beeae2950b3e73d99482d3936929"><div class="ttname"><a href="namespaceavro.html#a9033beeae2950b3e73d99482d3936929">avro::nonSeekableIstreamInputStream</a></div><div class="ttdeci">AVRO_DECL InputStreamPtr nonSeekableIstreamInputStream(std::istream &is, size_t bufferSize=8 *1024)</div><div class="ttdoc">Returns a new InputStream whose contents come from the given std::istream.</div></div> |
| <div class="ttc" id="anamespaceavro_html_a98b7a8baaef11e477db89699ab27359b"><div class="ttname"><a href="namespaceavro.html#a98b7a8baaef11e477db89699ab27359b">avro::memoryInputStream</a></div><div class="ttdeci">AVRO_DECL InputStreamPtr memoryInputStream(const uint8_t *data, size_t len)</div><div class="ttdoc">Returns a new InputStream, with the data from the given byte array.</div></div> |
| <div class="ttc" id="anamespaceavro_html_acb2ea7a6b8a82014ce7d76abcc171812"><div class="ttname"><a href="namespaceavro.html#acb2ea7a6b8a82014ce7d76abcc171812">avro::ostreamOutputStream</a></div><div class="ttdeci">AVRO_DECL OutputStreamPtr ostreamOutputStream(std::ostream &os, size_t bufferSize=8 *1024)</div><div class="ttdoc">Returns a new OutputStream whose contents will be sent to the given std::ostream.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a8163904c80aca61a9a1c35d9b1b4604d"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a8163904c80aca61a9a1c35d9b1b4604d">avro::StreamWriter::flush</a></div><div class="ttdeci">void flush()</div><div class="ttdoc">backs up upto the currently written data and flushes the underlying stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:430</div></div> |
| <div class="ttc" id="anamespaceavro_html_a0e961740e43d3f800220f03de11654e8"><div class="ttname"><a href="namespaceavro.html#a0e961740e43d3f800220f03de11654e8">avro::memoryOutputStream</a></div><div class="ttdeci">AVRO_DECL OutputStreamPtr memoryOutputStream(size_t chunkSize=4 *1024)</div><div class="ttdoc">Returns a new OutputStream, which grows in memory chunks of specified size.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_a25be160ee9e5fd541c0004066376c4ac"><div class="ttname"><a href="structavro_1_1StreamReader.html#a25be160ee9e5fd541c0004066376c4ac">avro::StreamReader::skipBytes</a></div><div class="ttdeci">void skipBytes(size_t n)</div><div class="ttdoc">Skips the given number of bytes.</div><div class="ttdef"><b>Definition:</b> Stream.hh:300</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_a293c20163efcc2d0380fab80f3c82058"><div class="ttname"><a href="structavro_1_1StreamReader.html#a293c20163efcc2d0380fab80f3c82058">avro::StreamReader::reset</a></div><div class="ttdeci">void reset(InputStream &is)</div><div class="ttdoc">Replaces the current input stream with the given one after backing up the original one if required.</div><div class="ttdef"><b>Definition:</b> Stream.hh:257</div></div> |
| <div class="ttc" id="aclassavro_1_1InputStream_html"><div class="ttname"><a href="classavro_1_1InputStream.html">avro::InputStream</a></div><div class="ttdoc">A no-copy input stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:36</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a4f7275c5b1eb184a154760c1cbb192a5"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a4f7275c5b1eb184a154760c1cbb192a5">avro::StreamWriter::end_</a></div><div class="ttdeci">uint8_t * end_</div><div class="ttdoc">One past the last location one can write to.</div><div class="ttdef"><b>Definition:</b> Stream.hh:373</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a8c0e8d18a3dd81d77dbefe7cf5783986"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a8c0e8d18a3dd81d77dbefe7cf5783986">avro::StreamWriter::next_</a></div><div class="ttdeci">uint8_t * next_</div><div class="ttdoc">The next location to write to.</div><div class="ttdef"><b>Definition:</b> Stream.hh:368</div></div> |
| <div class="ttc" id="aclassavro_1_1InputStream_html_a4ec852f779fc68dea8fef197ec3eef1d"><div class="ttname"><a href="classavro_1_1InputStream.html#a4ec852f779fc68dea8fef197ec3eef1d">avro::InputStream::skip</a></div><div class="ttdeci">virtual void skip(size_t len)=0</div><div class="ttdoc">Skips number of bytes specified by len.</div></div> |
| <div class="ttc" id="aclassavro_1_1InputStream_html_a87767c15b0661981d24f7a42bfcef6b5"><div class="ttname"><a href="classavro_1_1InputStream.html#a87767c15b0661981d24f7a42bfcef6b5">avro::InputStream::next</a></div><div class="ttdeci">virtual bool next(const uint8_t **data, size_t *len)=0</div><div class="ttdoc">Returns some of available data.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html"><div class="ttname"><a href="structavro_1_1StreamReader.html">avro::StreamReader</a></div><div class="ttdoc">A convenience class for reading from an InputStream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:227</div></div> |
| <div class="ttc" id="anamespaceavro_html"><div class="ttname"><a href="namespaceavro.html">avro</a></div><div class="ttdoc">A bunch of templates and specializations for encoding and decoding specific types.</div><div class="ttdef"><b>Definition:</b> AvroParse.hh:30</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a2fbdd9e896bdfb7f704b52243b4f1661"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a2fbdd9e896bdfb7f704b52243b4f1661">avro::StreamWriter::byteCount</a></div><div class="ttdeci">int64_t byteCount() const</div><div class="ttdoc">Return the number of bytes written so far.</div><div class="ttdef"><b>Definition:</b> Stream.hh:442</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_a9501052d3dbbf54070f565bc0f0d644a"><div class="ttname"><a href="structavro_1_1StreamReader.html#a9501052d3dbbf54070f565bc0f0d644a">avro::StreamReader::more</a></div><div class="ttdeci">void more()</div><div class="ttdoc">Tries to get more data and if it cannot, throws an exception.</div><div class="ttdef"><b>Definition:</b> Stream.hh:330</div></div> |
| <div class="ttc" id="anamespaceavro_html_a1e5251d2ad9581e353399c1bac90c9fb"><div class="ttname"><a href="namespaceavro.html#a1e5251d2ad9581e353399c1bac90c9fb">avro::fileInputStream</a></div><div class="ttdeci">AVRO_DECL InputStreamPtr fileInputStream(const char *filename, size_t bufferSize=8 *1024)</div><div class="ttdoc">Returns a new InputStream whose contents come from the given file.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a5e20cd787a15c2941c90b6d077c73d14"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a5e20cd787a15c2941c90b6d077c73d14">avro::StreamWriter::StreamWriter</a></div><div class="ttdeci">StreamWriter()</div><div class="ttdoc">Constructs a writer with no underlying stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:378</div></div> |
| <div class="ttc" id="anamespaceavro_html_a1d938bbd6332e4c247e5a975ca066647"><div class="ttname"><a href="namespaceavro.html#a1d938bbd6332e4c247e5a975ca066647">avro::snapshot</a></div><div class="ttdeci">AVRO_DECL std::shared_ptr< std::vector< uint8_t > > snapshot(const OutputStream &source)</div><div class="ttdoc">Returns the contents written so far into the output stream, which should be a memory output stream.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_a8c31fc602f068368d7a0e91eea71c4de"><div class="ttname"><a href="structavro_1_1StreamReader.html#a8c31fc602f068368d7a0e91eea71c4de">avro::StreamReader::drain</a></div><div class="ttdeci">void drain(bool unRead)</div><div class="ttdoc">Returns unused bytes back to the underlying stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:347</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_ac404aa90132b520e7c45cec577d18d94"><div class="ttname"><a href="structavro_1_1StreamReader.html#ac404aa90132b520e7c45cec577d18d94">avro::StreamReader::next_</a></div><div class="ttdeci">const uint8_t * next_</div><div class="ttdoc">The next location to read from.</div><div class="ttdef"><b>Definition:</b> Stream.hh:236</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_a463de69a6b09caa9cb8467b75ecfd710"><div class="ttname"><a href="structavro_1_1StreamReader.html#a463de69a6b09caa9cb8467b75ecfd710">avro::StreamReader::end_</a></div><div class="ttdeci">const uint8_t * end_</div><div class="ttdoc">One past the last valid location.</div><div class="ttdef"><b>Definition:</b> Stream.hh:241</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a93740c70becb0f206a05c5dd1f2a7880"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a93740c70becb0f206a05c5dd1f2a7880">avro::StreamWriter::more</a></div><div class="ttdeci">void more()</div><div class="ttdoc">Gets more space to write to.</div><div class="ttdef"><b>Definition:</b> Stream.hh:449</div></div> |
| <div class="ttc" id="anamespaceavro_html_aff15582cf7ee211e1b2e0968a0edbd7e"><div class="ttname"><a href="namespaceavro.html#aff15582cf7ee211e1b2e0968a0edbd7e">avro::istreamInputStream</a></div><div class="ttdeci">AVRO_DECL InputStreamPtr istreamInputStream(std::istream &in, size_t bufferSize=8 *1024)</div><div class="ttdoc">Returns a new InputStream whose contents come from the given std::istream.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_ae2f45670ed6815c76103245665f0ee25"><div class="ttname"><a href="structavro_1_1StreamReader.html#ae2f45670ed6815c76103245665f0ee25">avro::StreamReader::readBytes</a></div><div class="ttdeci">void readBytes(uint8_t *b, size_t n)</div><div class="ttdoc">Reads the given number of bytes from the underlying stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:280</div></div> |
| <div class="ttc" id="aclassavro_1_1OutputStream_html_a81881efd901311b1fc6610f77791adfe"><div class="ttname"><a href="classavro_1_1OutputStream.html#a81881efd901311b1fc6610f77791adfe">avro::OutputStream::backup</a></div><div class="ttdeci">virtual void backup(size_t len)=0</div><div class="ttdoc">"Returns" back to the stream some of the buffer obtained from in the last call to next().</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_ad364f5ec1191462b88d75fdc29ddd639"><div class="ttname"><a href="structavro_1_1StreamReader.html#ad364f5ec1191462b88d75fdc29ddd639">avro::StreamReader::StreamReader</a></div><div class="ttdeci">StreamReader(InputStream &in)</div><div class="ttdoc">Constructs a reader with the given underlying stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:251</div></div> |
| <div class="ttc" id="anamespaceavro_html_adeab3d9f5f2a4a4f96d3ffb8ba27e523"><div class="ttname"><a href="namespaceavro.html#adeab3d9f5f2a4a4f96d3ffb8ba27e523">avro::copy</a></div><div class="ttdeci">void copy(InputStream &in, OutputStream &out)</div><div class="ttdoc">A convenience function to copy all the contents of an input stream into an output stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:465</div></div> |
| <div class="ttc" id="aclassavro_1_1OutputStream_html_a257177c7b0f2e98c523cb2ae68737e18"><div class="ttname"><a href="classavro_1_1OutputStream.html#a257177c7b0f2e98c523cb2ae68737e18">avro::OutputStream::next</a></div><div class="ttdeci">virtual bool next(uint8_t **data, size_t *len)=0</div><div class="ttdoc">Returns a buffer that can be written into.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html"><div class="ttname"><a href="structavro_1_1StreamWriter.html">avro::StreamWriter</a></div><div class="ttdoc">A convenience class to write data into an OutputStream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:359</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a18f69b15f00ea780ee61f50c9467e0a7"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a18f69b15f00ea780ee61f50c9467e0a7">avro::StreamWriter::out_</a></div><div class="ttdeci">OutputStream * out_</div><div class="ttdoc">The underlying output stream for this writer.</div><div class="ttdef"><b>Definition:</b> Stream.hh:363</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_a1f69076d05b5711cf0695d1a91193737"><div class="ttname"><a href="structavro_1_1StreamReader.html#a1f69076d05b5711cf0695d1a91193737">avro::StreamReader::StreamReader</a></div><div class="ttdeci">StreamReader()</div><div class="ttdoc">Constructs an empty reader.</div><div class="ttdef"><b>Definition:</b> Stream.hh:246</div></div> |
| <div class="ttc" id="aclassavro_1_1InputStream_html_a03f9cfac5f7a0141bfe7d6cc4bc7a0d0"><div class="ttname"><a href="classavro_1_1InputStream.html#a03f9cfac5f7a0141bfe7d6cc4bc7a0d0">avro::InputStream::backup</a></div><div class="ttdeci">virtual void backup(size_t len)=0</div><div class="ttdoc">"Returns" back some of the data to the stream.</div></div> |
| <div class="ttc" id="aclassavro_1_1OutputStream_html_ab799b7bad4c75b5ade65fa6fd117a4b4"><div class="ttname"><a href="classavro_1_1OutputStream.html#ab799b7bad4c75b5ade65fa6fd117a4b4">avro::OutputStream::byteCount</a></div><div class="ttdeci">virtual uint64_t byteCount() const =0</div><div class="ttdoc">Number of bytes written so far into this stream.</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a8edff3e28052978180a42b2f792eb28d"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a8edff3e28052978180a42b2f792eb28d">avro::StreamWriter::write</a></div><div class="ttdeci">void write(uint8_t c)</div><div class="ttdoc">Writes a single byte.</div><div class="ttdef"><b>Definition:</b> Stream.hh:400</div></div> |
| <div class="ttc" id="astructavro_1_1StreamWriter_html_a9e1685a3f609d96f8da8678ee8036350"><div class="ttname"><a href="structavro_1_1StreamWriter.html#a9e1685a3f609d96f8da8678ee8036350">avro::StreamWriter::StreamWriter</a></div><div class="ttdeci">StreamWriter(OutputStream &out)</div><div class="ttdoc">Constructs a new writer with the given underlying stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:383</div></div> |
| <div class="ttc" id="aclassavro_1_1Exception_html"><div class="ttname"><a href="classavro_1_1Exception.html">avro::Exception</a></div><div class="ttdoc">Wrapper for std::runtime_error that provides convenience constructor for boost::format objects.</div><div class="ttdef"><b>Definition:</b> Exception.hh:31</div></div> |
| <div class="ttc" id="astructavro_1_1StreamReader_html_ace1b429f51df3702a33d2991031ac2f8"><div class="ttname"><a href="structavro_1_1StreamReader.html#ace1b429f51df3702a33d2991031ac2f8">avro::StreamReader::read</a></div><div class="ttdeci">uint8_t read()</div><div class="ttdoc">Read just one byte from the underlying stream.</div><div class="ttdef"><b>Definition:</b> Stream.hh:269</div></div> |
| <!-- start footer part --> |
| <hr class="footer"/><address class="footer"><small> |
| Generated by  <a href="http://www.doxygen.org/index.html"> |
| <img class="footer" src="doxygen.png" alt="doxygen"/> |
| </a> 1.8.17 |
| </small></address> |
| </body> |
| </html> |