<divclass="line"><aname="l00002"></a><spanclass="lineno"> 2</span> <spanclass="comment"> This file is part of Pretty Curved Privacy (pcp1).</span></div>
<divclass="line"><aname="l00006"></a><spanclass="lineno"> 6</span> <spanclass="comment"> This program is free software: you can redistribute it and/or modify</span></div>
<divclass="line"><aname="l00007"></a><spanclass="lineno"> 7</span> <spanclass="comment"> it under the terms of the GNU General Public License as published by</span></div>
<divclass="line"><aname="l00008"></a><spanclass="lineno"> 8</span> <spanclass="comment"> the Free Software Foundation, either version 3 of the License, or</span></div>
<divclass="line"><aname="l00009"></a><spanclass="lineno"> 9</span> <spanclass="comment"> (at your option) any later version.</span></div>
<divclass="line"><aname="l00011"></a><spanclass="lineno"> 11</span> <spanclass="comment"> This program is distributed in the hope that it will be useful,</span></div>
<divclass="line"><aname="l00012"></a><spanclass="lineno"> 12</span> <spanclass="comment"> but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div>
<divclass="line"><aname="l00013"></a><spanclass="lineno"> 13</span> <spanclass="comment"> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div>
<divclass="line"><aname="l00014"></a><spanclass="lineno"> 14</span> <spanclass="comment"> GNU General Public License for more details.</span></div>
<divclass="line"><aname="l00016"></a><spanclass="lineno"> 16</span> <spanclass="comment"> You should have received a copy of the GNU General Public License</span></div>
<divclass="line"><aname="l00017"></a><spanclass="lineno"> 17</span> <spanclass="comment"> along with this program. If not, see <http://www.gnu.org/licenses/>.</span></div>
<divclass="line"><aname="l00019"></a><spanclass="lineno"> 19</span> <spanclass="comment"> You can contact me by mail: <tom AT vondein DOT org>.</span></div>
<divclass="line"><aname="l00058"></a><spanclass="lineno"><aclass="code"href="struct__pcp__stream__t.html"> 58</a></span> <spanclass="keyword">struct </span><aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a> {</div>
<divclass="line"><aname="l00061"></a><spanclass="lineno"><aclass="code"href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa"> 61</a></span>  uint8_t <aclass="code"href="struct__pcp__stream__t.html#a5fc108c71fb18d9835f7083e1b2ff5fa"title="Set to 1 if the backend is a Buffer.">is_buffer</a>; </div>
<divclass="line"><aname="l00062"></a><spanclass="lineno"><aclass="code"href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af"> 62</a></span>  uint8_t <aclass="code"href="struct__pcp__stream__t.html#a4b0242f83eec494ee19ad41e08e924af"title="Set to 1 if EOF reached.">eof</a>; </div>
<divclass="line"><aname="l00063"></a><spanclass="lineno"><aclass="code"href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea"> 63</a></span>  uint8_t <aclass="code"href="struct__pcp__stream__t.html#aaed1bd389ba84b3cd87839088b4057ea"title="Set to 1 if an error occured.">err</a>; </div>
<divclass="line"><aname="l00067"></a><spanclass="lineno"><aclass="code"href="group__Pcpstream.html#gaec72241f86d5391d5cae7477c66cdd73"> 67</a></span> <spanclass="keyword">typedef</span><spanclass="keyword">struct </span><aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">_pcp_stream_t</a><aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a>;</div>
<divclass="line"><aname="l00069"></a><spanclass="lineno"> 69</span> <spanclass="comment">/* initialize a new empty stream */</span></div>
<divclass="line"><aname="l00070"></a><spanclass="lineno"> 70</span> <aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *ps_init(<spanclass="keywordtype">void</span>);</div>
<divclass="line"><aname="l00080"></a><spanclass="lineno"> 80</span> <aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<aclass="code"href="group__Pcpstream.html#ga6733979d79704b2e3ce914662b0cebc8"title="Create a new stream, backed with an open file.">ps_new_file</a>(FILE *backendfd);</div>
<divclass="line"><aname="l00090"></a><spanclass="lineno"> 90</span> <aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<aclass="code"href="group__Pcpstream.html#ga1b50c92fdad290e59317af2404460662"title="Create a new input stream, backed with filled a buffer.">ps_new_inbuffer</a>(<aclass="code"href="struct__pcp__buffer.html"title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<aclass="code"href="struct__pcp__stream__t.html#a320a3c593ebcf0a651700f9263e5d9b4"title="The backend Buffer object.">b</a>);</div>
<divclass="line"><aname="l00099"></a><spanclass="lineno"> 99</span> <aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *<aclass="code"href="group__Pcpstream.html#ga13ec0245b579949e6d586e1817615d2e"title="Create a new output stream, backed with a buffer.">ps_new_outbuffer</a>();</div>
<divclass="line"><aname="l00122"></a><spanclass="lineno"> 122</span> <spanclass="keywordtype">size_t</span><aclass="code"href="group__Pcpstream.html#gacfede4b1e9fa1ce0ccd7a55379ff6f15"title="Read bytes into the given buffer from the current stream.">ps_read</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <spanclass="keywordtype">void</span> *buf, <spanclass="keywordtype">size_t</span> readbytes);</div>
<divclass="line"><aname="l00139"></a><spanclass="lineno"> 139</span> <spanclass="keywordtype">size_t</span><aclass="code"href="group__Pcpstream.html#gab8e98ef81e802a242fbdb788b4387873"title="Write bytes from the given buffer into the current stream.">ps_write</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <spanclass="keywordtype">void</span> *buf, <spanclass="keywordtype">size_t</span> writebytes);</div>
<divclass="line"><aname="l00156"></a><spanclass="lineno"> 156</span> <spanclass="keywordtype">size_t</span><aclass="code"href="group__Pcpstream.html#gafd50eb5e9c8ba399e133b6029eca8856"title="Write a formatted string to the stream.">ps_print</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream, <spanclass="keyword">const</span><spanclass="keywordtype">char</span> * fmt, ...);</div>
<divclass="line"><aname="l00167"></a><spanclass="lineno"> 167</span> <spanclass="keywordtype">size_t</span><aclass="code"href="group__Pcpstream.html#ga72812698d6b6aca964c7289be41eccf8"title="Tell the current read or write offset.">ps_tell</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
<divclass="line"><aname="l00180"></a><spanclass="lineno"> 180</span> <aclass="code"href="struct__pcp__buffer.html"title="A flexible buffer object wich automatically resizes, if neccessary.">Buffer</a> *<aclass="code"href="group__Pcpstream.html#ga64bc34dfbc1b3951c3d62e82a1ae8c34"title="Access the Buffer backend pointer.">ps_buffer</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
<divclass="line"><aname="l00191"></a><spanclass="lineno"> 191</span> <spanclass="keywordtype">void</span><aclass="code"href="group__Pcpstream.html#ga4a68da22eca6e9bd854d54467a071d0a"title="Close the stream and frees allocated memory.">ps_close</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
<divclass="line"><aname="l00204"></a><spanclass="lineno"> 204</span> <spanclass="keywordtype">int</span><aclass="code"href="group__Pcpstream.html#gac845e4dc3677aeef5e4de343d3f8033d"title="Check if EOF have been reached.">ps_end</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>
<divclass="line"><aname="l00212"></a><spanclass="lineno"> 212</span> <spanclass="keywordtype">int</span><aclass="code"href="group__Pcpstream.html#ga97b83164ecda8fd66897863ec7976890"title="Check if an error occurred during a read or write operation.">ps_err</a>(<aclass="code"href="struct__pcp__stream__t.html"title="An I/O wrapper object backed by a file or a buffer.">Pcpstream</a> *stream);</div>