<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/> <title>HTML Tidy: buffio.h File Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="contents"> <h1>buffio.h File Reference</h1> <p><a href="buffio_8h_source.html">Go to the source code of this file.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="struct__TidyBuffer.html">_TidyBuffer</a></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a3cf251a96f69f05495744af6c9d0339b">tidyBufInit</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#aff43ddd9fc78532617d88db55b164f5e">tidyBufInitWithAllocator</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, <a class="el" href="struct__TidyAllocator.html">TidyAllocator</a> *allocator)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a896654bd99113bfe5e86b924836aacc3">tidyBufAlloc</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, uint allocSize)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a57c832b4ddbc19a329a5ab9936eb5826">tidyBufAllocWithAllocator</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, <a class="el" href="struct__TidyAllocator.html">TidyAllocator</a> *allocator, uint allocSize)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a7a66ba1f574955d1fc1de57476e849f2">tidyBufCheckAlloc</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, uint allocSize, uint chunkSize)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a65aae9ae4b499e62038700f4792849fc">tidyBufFree</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#aa94e59f613a495b17e90c1c4778c3911">tidyBufClear</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#ac5909e78d98583cb245dd2004469bb93">tidyBufAttach</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, byte *bp, uint size)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a8da2bf473b14e6bdd5cd40fc47c29903">tidyBufDetach</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#ad59b32f81789b634758274f34be4d25b">tidyBufAppend</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, void *vp, uint size)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#af48af586ada5ff264501fe9ef4c67dd1">tidyBufPutByte</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, byte bv)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">int TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#af8b1e8fbe3c29d08250794d7e4925ea6">tidyBufPopByte</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">int TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a5a2e0c47b4b14b5beb17ac982fa21eeb">tidyBufGetByte</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">Bool TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a7e7d8e58623c8bde00d66141edb2cae0">tidyBufEndOfInput</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a1d1f2039b769381d418ac1187b50b292">tidyBufUngetByte</a> (<a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf, byte bv)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a73da3182aea89939af1d98504a3b2df0">tidyInitInputBuffer</a> (<a class="el" href="group__IO.html#ga86fcc3c86bd63b26a559938bc38d34bb">TidyInputSource</a> *inp, <a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void TIDY_CALL </td><td class="memItemRight" valign="bottom"><a class="el" href="buffio_8h.html#a882a92590a9e6ecce16d5b8e8db19fbb">tidyInitOutputBuffer</a> (<a class="el" href="group__IO.html#ga6bdd15de48364d2b5dbf2141109d3f98">TidyOutputSink</a> *outp, <a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> *buf)</td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <ul> <li>Treat buffer as an I/O stream.</li> </ul> <p>(c) 1998-2007 (W3C) MIT, ERCIM, Keio University See <a class="el" href="tidy_8h.html">tidy.h</a> for the copyright notice.</p> <p>CVS Info :</p> <dl class="rcs"><dt><b>Author</b></dt><dd>arnaud02 </dd></dl> <dl class="rcs"><dt><b>Date</b></dt><dd>2007/01/23 11:17:45 </dd></dl> <dl class="rcs"><dt><b>Revision</b></dt><dd>1.9 </dd></dl> <p>Requires buffer to automatically grow as bytes are added. Must keep track of current read and write points. </p> <hr/><h2>Function Documentation</h2> <a class="anchor" id="a3cf251a96f69f05495744af6c9d0339b"></a><!-- doxytag: member="buffio.h::tidyBufInit" ref="a3cf251a96f69f05495744af6c9d0339b" args="(TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufInit </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize data structure using the default allocator </p> </div> </div> <a class="anchor" id="aff43ddd9fc78532617d88db55b164f5e"></a><!-- doxytag: member="buffio.h::tidyBufInitWithAllocator" ref="aff43ddd9fc78532617d88db55b164f5e" args="(TidyBuffer *buf, TidyAllocator *allocator)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufInitWithAllocator </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__TidyAllocator.html">TidyAllocator</a> * </td> <td class="paramname"> <em>allocator</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize data structure using the given custom allocator </p> </div> </div> <a class="anchor" id="a896654bd99113bfe5e86b924836aacc3"></a><!-- doxytag: member="buffio.h::tidyBufAlloc" ref="a896654bd99113bfe5e86b924836aacc3" args="(TidyBuffer *buf, uint allocSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufAlloc </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"> <em>allocSize</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Free current buffer, allocate given amount, reset input pointer, use the default allocator </p> </div> </div> <a class="anchor" id="a57c832b4ddbc19a329a5ab9936eb5826"></a><!-- doxytag: member="buffio.h::tidyBufAllocWithAllocator" ref="a57c832b4ddbc19a329a5ab9936eb5826" args="(TidyBuffer *buf, TidyAllocator *allocator, uint allocSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufAllocWithAllocator </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__TidyAllocator.html">TidyAllocator</a> * </td> <td class="paramname"> <em>allocator</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"> <em>allocSize</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Free current buffer, allocate given amount, reset input pointer, use the given custom allocator </p> </div> </div> <a class="anchor" id="a7a66ba1f574955d1fc1de57476e849f2"></a><!-- doxytag: member="buffio.h::tidyBufCheckAlloc" ref="a7a66ba1f574955d1fc1de57476e849f2" args="(TidyBuffer *buf, uint allocSize, uint chunkSize)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufCheckAlloc </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"> <em>allocSize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"> <em>chunkSize</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Expand buffer to given size. Chunk size is minimum growth. Pass 0 for default of 256 bytes. </p> </div> </div> <a class="anchor" id="a65aae9ae4b499e62038700f4792849fc"></a><!-- doxytag: member="buffio.h::tidyBufFree" ref="a65aae9ae4b499e62038700f4792849fc" args="(TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufFree </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Free current contents and zero out </p> </div> </div> <a class="anchor" id="aa94e59f613a495b17e90c1c4778c3911"></a><!-- doxytag: member="buffio.h::tidyBufClear" ref="aa94e59f613a495b17e90c1c4778c3911" args="(TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufClear </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Set buffer bytes to 0 </p> </div> </div> <a class="anchor" id="ac5909e78d98583cb245dd2004469bb93"></a><!-- doxytag: member="buffio.h::tidyBufAttach" ref="ac5909e78d98583cb245dd2004469bb93" args="(TidyBuffer *buf, byte *bp, uint size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufAttach </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte * </td> <td class="paramname"> <em>bp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"> <em>size</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Attach to existing buffer </p> </div> </div> <a class="anchor" id="a8da2bf473b14e6bdd5cd40fc47c29903"></a><!-- doxytag: member="buffio.h::tidyBufDetach" ref="a8da2bf473b14e6bdd5cd40fc47c29903" args="(TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufDetach </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Detach from buffer. Caller must free. </p> </div> </div> <a class="anchor" id="ad59b32f81789b634758274f34be4d25b"></a><!-- doxytag: member="buffio.h::tidyBufAppend" ref="ad59b32f81789b634758274f34be4d25b" args="(TidyBuffer *buf, void *vp, uint size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufAppend </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"> <em>vp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">uint </td> <td class="paramname"> <em>size</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Append bytes to buffer. Expand if necessary. </p> </div> </div> <a class="anchor" id="af48af586ada5ff264501fe9ef4c67dd1"></a><!-- doxytag: member="buffio.h::tidyBufPutByte" ref="af48af586ada5ff264501fe9ef4c67dd1" args="(TidyBuffer *buf, byte bv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufPutByte </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte </td> <td class="paramname"> <em>bv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Append one byte to buffer. Expand if necessary. </p> </div> </div> <a class="anchor" id="af8b1e8fbe3c29d08250794d7e4925ea6"></a><!-- doxytag: member="buffio.h::tidyBufPopByte" ref="af8b1e8fbe3c29d08250794d7e4925ea6" args="(TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int TIDY_CALL tidyBufPopByte </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get byte from end of buffer </p> </div> </div> <a class="anchor" id="a5a2e0c47b4b14b5beb17ac982fa21eeb"></a><!-- doxytag: member="buffio.h::tidyBufGetByte" ref="a5a2e0c47b4b14b5beb17ac982fa21eeb" args="(TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int TIDY_CALL tidyBufGetByte </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get byte from front of buffer. Increment input offset. </p> </div> </div> <a class="anchor" id="a7e7d8e58623c8bde00d66141edb2cae0"></a><!-- doxytag: member="buffio.h::tidyBufEndOfInput" ref="a7e7d8e58623c8bde00d66141edb2cae0" args="(TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Bool TIDY_CALL tidyBufEndOfInput </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>At end of buffer? </p> </div> </div> <a class="anchor" id="a1d1f2039b769381d418ac1187b50b292"></a><!-- doxytag: member="buffio.h::tidyBufUngetByte" ref="a1d1f2039b769381d418ac1187b50b292" args="(TidyBuffer *buf, byte bv)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyBufUngetByte </td> <td>(</td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">byte </td> <td class="paramname"> <em>bv</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Put a byte back into the buffer. Decrement input offset. </p> </div> </div> <a class="anchor" id="a73da3182aea89939af1d98504a3b2df0"></a><!-- doxytag: member="buffio.h::tidyInitInputBuffer" ref="a73da3182aea89939af1d98504a3b2df0" args="(TidyInputSource *inp, TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyInitInputBuffer </td> <td>(</td> <td class="paramtype"><a class="el" href="group__IO.html#ga86fcc3c86bd63b26a559938bc38d34bb">TidyInputSource</a> * </td> <td class="paramname"> <em>inp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize a buffer input source </p> </div> </div> <a class="anchor" id="a882a92590a9e6ecce16d5b8e8db19fbb"></a><!-- doxytag: member="buffio.h::tidyInitOutputBuffer" ref="a882a92590a9e6ecce16d5b8e8db19fbb" args="(TidyOutputSink *outp, TidyBuffer *buf)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void TIDY_CALL tidyInitOutputBuffer </td> <td>(</td> <td class="paramtype"><a class="el" href="group__IO.html#ga6bdd15de48364d2b5dbf2141109d3f98">TidyOutputSink</a> * </td> <td class="paramname"> <em>outp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="struct__TidyBuffer.html">TidyBuffer</a> * </td> <td class="paramname"> <em>buf</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Initialize a buffer output sink </p> </div> </div> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on 3 Dec 2009 for HTML Tidy by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>