1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3<title>buffio.h File Reference</title>
4<link href="doxygen.css" rel="stylesheet" type="text/css">
5</head><body>
6<!-- Generated by Doxygen 1.2.17 -->
7<h1>buffio.h File Reference</h1>
8<p>
9<a href="buffio_8h-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
10<tr><td></td></tr>
11<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
12<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="struct__TidyBuffer.html">_TidyBuffer</a></td></tr>
13<tr><td colspan=2><br><h2>Functions</h2></td></tr>
14<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a0">tidyBufInit</a> (TidyBuffer *buf)</td></tr>
15<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a1">tidyBufAlloc</a> (TidyBuffer *buf, uint allocSize)</td></tr>
16<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a2">tidyBufCheckAlloc</a> (TidyBuffer *buf, uint allocSize, uint chunkSize)</td></tr>
17<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a3">tidyBufFree</a> (TidyBuffer *buf)</td></tr>
18<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a4">tidyBufClear</a> (TidyBuffer *buf)</td></tr>
19<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a5">tidyBufAttach</a> (TidyBuffer *buf, void *bp, uint size)</td></tr>
20<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a6">tidyBufDetach</a> (TidyBuffer *buf)</td></tr>
21<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a7">tidyBufAppend</a> (TidyBuffer *buf, void *vp, uint size)</td></tr>
22<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a8">tidyBufPutByte</a> (TidyBuffer *buf, byte bv)</td></tr>
23<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a9">tidyBufPopByte</a> (TidyBuffer *buf)</td></tr>
24<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a10">tidyBufGetByte</a> (TidyBuffer *buf)</td></tr>
25<tr><td nowrap align=right valign=top>Bool&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a11">tidyBufEndOfInput</a> (TidyBuffer *buf)</td></tr>
26<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a12">tidyBufUngetByte</a> (TidyBuffer *buf, byte bv)</td></tr>
27<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a13">initInputBuffer</a> (<a class="el" href="group__IO.html#a3">TidyInputSource</a> *inp, TidyBuffer *buf)</td></tr>
28<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="buffio_8h.html#a14">initOutputBuffer</a> (<a class="el" href="group__IO.html#a5">TidyOutputSink</a> *outp, TidyBuffer *buf)</td></tr>
29</table>
30<hr><a name="_details"></a><h2>Detailed Description</h2>
31<ul>
32<li>Treat buffer as an I/O stream.</ul>
33(c) 1998-2002 (W3C) MIT, INRIA, Keio University See <a class="el" href="tidy_8h.html">tidy.h</a> for the copyright notice.
34<p>
35CVS Info :
36<p>
37<dl compact><dt><b>Author: </b></dt><dd>
38 creitzel </dl>  <dl compact><dt><b>Date: </b></dt><dd>
39 2002/10/15 19:46:52 </dl>  <dl compact><dt><b>Revision: </b></dt><dd>
40 1.1.2.3 </dl>
41<p>
42Requires buffer to automatically grow as bytes are added. Must keep track of current read and write points.
43<p>
44<hr><h2>Function Documentation</h2>
45<a name="a0" doxytag="buffio.h::tidyBufInit"></a><p>
46<table width="100%" cellpadding="2" cellspacing="0" border="0">
47  <tr>
48    <td class="md">
49      <table cellpadding="0" cellspacing="0" border="0">
50        <tr>
51          <td class="md" nowrap valign="top"> void tidyBufInit </td>
52          <td class="md" valign="top">(&nbsp;</td>
53          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
54          <td class="mdname1" valign="top" nowrap>&nbsp; <em>buf</em>          </td>
55          <td class="md" valign="top">)&nbsp;</td>
56          <td class="md" nowrap></td>
57        </tr>
58
59      </table>
60    </td>
61  </tr>
62</table>
63<table cellspacing=5 cellpadding=0 border=0>
64  <tr>
65    <td>
66      &nbsp;
67    </td>
68    <td>
69
70<p>
71Zero out data structure     </td>
72  </tr>
73</table>
74<a name="a1" doxytag="buffio.h::tidyBufAlloc"></a><p>
75<table width="100%" cellpadding="2" cellspacing="0" border="0">
76  <tr>
77    <td class="md">
78      <table cellpadding="0" cellspacing="0" border="0">
79        <tr>
80          <td class="md" nowrap valign="top"> void tidyBufAlloc </td>
81          <td class="md" valign="top">(&nbsp;</td>
82          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
83          <td class="mdname" nowrap>&nbsp; <em>buf</em>, </td>
84        </tr>
85        <tr>
86          <td></td>
87          <td></td>
88          <td class="md" nowrap>uint&nbsp;</td>
89          <td class="mdname" nowrap>&nbsp; <em>allocSize</em></td>
90        </tr>
91        <tr>
92          <td></td>
93          <td class="md">)&nbsp;</td>
94          <td class="md" colspan="2"></td>
95        </tr>
96
97      </table>
98    </td>
99  </tr>
100</table>
101<table cellspacing=5 cellpadding=0 border=0>
102  <tr>
103    <td>
104      &nbsp;
105    </td>
106    <td>
107
108<p>
109Free current buffer, allocate given amount, reset input pointer     </td>
110  </tr>
111</table>
112<a name="a2" doxytag="buffio.h::tidyBufCheckAlloc"></a><p>
113<table width="100%" cellpadding="2" cellspacing="0" border="0">
114  <tr>
115    <td class="md">
116      <table cellpadding="0" cellspacing="0" border="0">
117        <tr>
118          <td class="md" nowrap valign="top"> void tidyBufCheckAlloc </td>
119          <td class="md" valign="top">(&nbsp;</td>
120          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
121          <td class="mdname" nowrap>&nbsp; <em>buf</em>, </td>
122        </tr>
123        <tr>
124          <td></td>
125          <td></td>
126          <td class="md" nowrap>uint&nbsp;</td>
127          <td class="mdname" nowrap>&nbsp; <em>allocSize</em>, </td>
128        </tr>
129        <tr>
130          <td></td>
131          <td></td>
132          <td class="md" nowrap>uint&nbsp;</td>
133          <td class="mdname" nowrap>&nbsp; <em>chunkSize</em></td>
134        </tr>
135        <tr>
136          <td></td>
137          <td class="md">)&nbsp;</td>
138          <td class="md" colspan="2"></td>
139        </tr>
140
141      </table>
142    </td>
143  </tr>
144</table>
145<table cellspacing=5 cellpadding=0 border=0>
146  <tr>
147    <td>
148      &nbsp;
149    </td>
150    <td>
151
152<p>
153Expand buffer to given size.  Chunk size is minimum growth. Pass 0 for default of 256 bytes.     </td>
154  </tr>
155</table>
156<a name="a3" doxytag="buffio.h::tidyBufFree"></a><p>
157<table width="100%" cellpadding="2" cellspacing="0" border="0">
158  <tr>
159    <td class="md">
160      <table cellpadding="0" cellspacing="0" border="0">
161        <tr>
162          <td class="md" nowrap valign="top"> void tidyBufFree </td>
163          <td class="md" valign="top">(&nbsp;</td>
164          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
165          <td class="mdname1" valign="top" nowrap>&nbsp; <em>buf</em>          </td>
166          <td class="md" valign="top">)&nbsp;</td>
167          <td class="md" nowrap></td>
168        </tr>
169
170      </table>
171    </td>
172  </tr>
173</table>
174<table cellspacing=5 cellpadding=0 border=0>
175  <tr>
176    <td>
177      &nbsp;
178    </td>
179    <td>
180
181<p>
182Free current contents and zero out     </td>
183  </tr>
184</table>
185<a name="a4" doxytag="buffio.h::tidyBufClear"></a><p>
186<table width="100%" cellpadding="2" cellspacing="0" border="0">
187  <tr>
188    <td class="md">
189      <table cellpadding="0" cellspacing="0" border="0">
190        <tr>
191          <td class="md" nowrap valign="top"> void tidyBufClear </td>
192          <td class="md" valign="top">(&nbsp;</td>
193          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
194          <td class="mdname1" valign="top" nowrap>&nbsp; <em>buf</em>          </td>
195          <td class="md" valign="top">)&nbsp;</td>
196          <td class="md" nowrap></td>
197        </tr>
198
199      </table>
200    </td>
201  </tr>
202</table>
203<table cellspacing=5 cellpadding=0 border=0>
204  <tr>
205    <td>
206      &nbsp;
207    </td>
208    <td>
209
210<p>
211Set buffer bytes to 0     </td>
212  </tr>
213</table>
214<a name="a5" doxytag="buffio.h::tidyBufAttach"></a><p>
215<table width="100%" cellpadding="2" cellspacing="0" border="0">
216  <tr>
217    <td class="md">
218      <table cellpadding="0" cellspacing="0" border="0">
219        <tr>
220          <td class="md" nowrap valign="top"> void tidyBufAttach </td>
221          <td class="md" valign="top">(&nbsp;</td>
222          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
223          <td class="mdname" nowrap>&nbsp; <em>buf</em>, </td>
224        </tr>
225        <tr>
226          <td></td>
227          <td></td>
228          <td class="md" nowrap>void *&nbsp;</td>
229          <td class="mdname" nowrap>&nbsp; <em>bp</em>, </td>
230        </tr>
231        <tr>
232          <td></td>
233          <td></td>
234          <td class="md" nowrap>uint&nbsp;</td>
235          <td class="mdname" nowrap>&nbsp; <em>size</em></td>
236        </tr>
237        <tr>
238          <td></td>
239          <td class="md">)&nbsp;</td>
240          <td class="md" colspan="2"></td>
241        </tr>
242
243      </table>
244    </td>
245  </tr>
246</table>
247<table cellspacing=5 cellpadding=0 border=0>
248  <tr>
249    <td>
250      &nbsp;
251    </td>
252    <td>
253
254<p>
255Attach to existing buffer     </td>
256  </tr>
257</table>
258<a name="a6" doxytag="buffio.h::tidyBufDetach"></a><p>
259<table width="100%" cellpadding="2" cellspacing="0" border="0">
260  <tr>
261    <td class="md">
262      <table cellpadding="0" cellspacing="0" border="0">
263        <tr>
264          <td class="md" nowrap valign="top"> void tidyBufDetach </td>
265          <td class="md" valign="top">(&nbsp;</td>
266          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
267          <td class="mdname1" valign="top" nowrap>&nbsp; <em>buf</em>          </td>
268          <td class="md" valign="top">)&nbsp;</td>
269          <td class="md" nowrap></td>
270        </tr>
271
272      </table>
273    </td>
274  </tr>
275</table>
276<table cellspacing=5 cellpadding=0 border=0>
277  <tr>
278    <td>
279      &nbsp;
280    </td>
281    <td>
282
283<p>
284Detach from buffer. Caller must free.     </td>
285  </tr>
286</table>
287<a name="a7" doxytag="buffio.h::tidyBufAppend"></a><p>
288<table width="100%" cellpadding="2" cellspacing="0" border="0">
289  <tr>
290    <td class="md">
291      <table cellpadding="0" cellspacing="0" border="0">
292        <tr>
293          <td class="md" nowrap valign="top"> void tidyBufAppend </td>
294          <td class="md" valign="top">(&nbsp;</td>
295          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
296          <td class="mdname" nowrap>&nbsp; <em>buf</em>, </td>
297        </tr>
298        <tr>
299          <td></td>
300          <td></td>
301          <td class="md" nowrap>void *&nbsp;</td>
302          <td class="mdname" nowrap>&nbsp; <em>vp</em>, </td>
303        </tr>
304        <tr>
305          <td></td>
306          <td></td>
307          <td class="md" nowrap>uint&nbsp;</td>
308          <td class="mdname" nowrap>&nbsp; <em>size</em></td>
309        </tr>
310        <tr>
311          <td></td>
312          <td class="md">)&nbsp;</td>
313          <td class="md" colspan="2"></td>
314        </tr>
315
316      </table>
317    </td>
318  </tr>
319</table>
320<table cellspacing=5 cellpadding=0 border=0>
321  <tr>
322    <td>
323      &nbsp;
324    </td>
325    <td>
326
327<p>
328Append bytes to buffer. Expand if necessary.     </td>
329  </tr>
330</table>
331<a name="a8" doxytag="buffio.h::tidyBufPutByte"></a><p>
332<table width="100%" cellpadding="2" cellspacing="0" border="0">
333  <tr>
334    <td class="md">
335      <table cellpadding="0" cellspacing="0" border="0">
336        <tr>
337          <td class="md" nowrap valign="top"> void tidyBufPutByte </td>
338          <td class="md" valign="top">(&nbsp;</td>
339          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
340          <td class="mdname" nowrap>&nbsp; <em>buf</em>, </td>
341        </tr>
342        <tr>
343          <td></td>
344          <td></td>
345          <td class="md" nowrap>byte&nbsp;</td>
346          <td class="mdname" nowrap>&nbsp; <em>bv</em></td>
347        </tr>
348        <tr>
349          <td></td>
350          <td class="md">)&nbsp;</td>
351          <td class="md" colspan="2"></td>
352        </tr>
353
354      </table>
355    </td>
356  </tr>
357</table>
358<table cellspacing=5 cellpadding=0 border=0>
359  <tr>
360    <td>
361      &nbsp;
362    </td>
363    <td>
364
365<p>
366Append one byte to buffer. Expand if necessary.     </td>
367  </tr>
368</table>
369<a name="a9" doxytag="buffio.h::tidyBufPopByte"></a><p>
370<table width="100%" cellpadding="2" cellspacing="0" border="0">
371  <tr>
372    <td class="md">
373      <table cellpadding="0" cellspacing="0" border="0">
374        <tr>
375          <td class="md" nowrap valign="top"> int tidyBufPopByte </td>
376          <td class="md" valign="top">(&nbsp;</td>
377          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
378          <td class="mdname1" valign="top" nowrap>&nbsp; <em>buf</em>          </td>
379          <td class="md" valign="top">)&nbsp;</td>
380          <td class="md" nowrap></td>
381        </tr>
382
383      </table>
384    </td>
385  </tr>
386</table>
387<table cellspacing=5 cellpadding=0 border=0>
388  <tr>
389    <td>
390      &nbsp;
391    </td>
392    <td>
393
394<p>
395Get byte from end of buffer     </td>
396  </tr>
397</table>
398<a name="a10" doxytag="buffio.h::tidyBufGetByte"></a><p>
399<table width="100%" cellpadding="2" cellspacing="0" border="0">
400  <tr>
401    <td class="md">
402      <table cellpadding="0" cellspacing="0" border="0">
403        <tr>
404          <td class="md" nowrap valign="top"> int tidyBufGetByte </td>
405          <td class="md" valign="top">(&nbsp;</td>
406          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
407          <td class="mdname1" valign="top" nowrap>&nbsp; <em>buf</em>          </td>
408          <td class="md" valign="top">)&nbsp;</td>
409          <td class="md" nowrap></td>
410        </tr>
411
412      </table>
413    </td>
414  </tr>
415</table>
416<table cellspacing=5 cellpadding=0 border=0>
417  <tr>
418    <td>
419      &nbsp;
420    </td>
421    <td>
422
423<p>
424Get byte from front of buffer. Increment input offset.     </td>
425  </tr>
426</table>
427<a name="a11" doxytag="buffio.h::tidyBufEndOfInput"></a><p>
428<table width="100%" cellpadding="2" cellspacing="0" border="0">
429  <tr>
430    <td class="md">
431      <table cellpadding="0" cellspacing="0" border="0">
432        <tr>
433          <td class="md" nowrap valign="top"> Bool tidyBufEndOfInput </td>
434          <td class="md" valign="top">(&nbsp;</td>
435          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
436          <td class="mdname1" valign="top" nowrap>&nbsp; <em>buf</em>          </td>
437          <td class="md" valign="top">)&nbsp;</td>
438          <td class="md" nowrap></td>
439        </tr>
440
441      </table>
442    </td>
443  </tr>
444</table>
445<table cellspacing=5 cellpadding=0 border=0>
446  <tr>
447    <td>
448      &nbsp;
449    </td>
450    <td>
451
452<p>
453At end of buffer?     </td>
454  </tr>
455</table>
456<a name="a12" doxytag="buffio.h::tidyBufUngetByte"></a><p>
457<table width="100%" cellpadding="2" cellspacing="0" border="0">
458  <tr>
459    <td class="md">
460      <table cellpadding="0" cellspacing="0" border="0">
461        <tr>
462          <td class="md" nowrap valign="top"> void tidyBufUngetByte </td>
463          <td class="md" valign="top">(&nbsp;</td>
464          <td class="md" nowrap valign="top">TidyBuffer *&nbsp;</td>
465          <td class="mdname" nowrap>&nbsp; <em>buf</em>, </td>
466        </tr>
467        <tr>
468          <td></td>
469          <td></td>
470          <td class="md" nowrap>byte&nbsp;</td>
471          <td class="mdname" nowrap>&nbsp; <em>bv</em></td>
472        </tr>
473        <tr>
474          <td></td>
475          <td class="md">)&nbsp;</td>
476          <td class="md" colspan="2"></td>
477        </tr>
478
479      </table>
480    </td>
481  </tr>
482</table>
483<table cellspacing=5 cellpadding=0 border=0>
484  <tr>
485    <td>
486      &nbsp;
487    </td>
488    <td>
489
490<p>
491Put a byte back into the buffer. Decrement input offset.     </td>
492  </tr>
493</table>
494<a name="a13" doxytag="buffio.h::initInputBuffer"></a><p>
495<table width="100%" cellpadding="2" cellspacing="0" border="0">
496  <tr>
497    <td class="md">
498      <table cellpadding="0" cellspacing="0" border="0">
499        <tr>
500          <td class="md" nowrap valign="top"> void initInputBuffer </td>
501          <td class="md" valign="top">(&nbsp;</td>
502          <td class="md" nowrap valign="top"><a class="el" href="group__IO.html#a3">TidyInputSource</a> *&nbsp;</td>
503          <td class="mdname" nowrap>&nbsp; <em>inp</em>, </td>
504        </tr>
505        <tr>
506          <td></td>
507          <td></td>
508          <td class="md" nowrap>TidyBuffer *&nbsp;</td>
509          <td class="mdname" nowrap>&nbsp; <em>buf</em></td>
510        </tr>
511        <tr>
512          <td></td>
513          <td class="md">)&nbsp;</td>
514          <td class="md" colspan="2"></td>
515        </tr>
516
517      </table>
518    </td>
519  </tr>
520</table>
521<table cellspacing=5 cellpadding=0 border=0>
522  <tr>
523    <td>
524      &nbsp;
525    </td>
526    <td>
527
528<p>
529Initialize a buffer input source     </td>
530  </tr>
531</table>
532<a name="a14" doxytag="buffio.h::initOutputBuffer"></a><p>
533<table width="100%" cellpadding="2" cellspacing="0" border="0">
534  <tr>
535    <td class="md">
536      <table cellpadding="0" cellspacing="0" border="0">
537        <tr>
538          <td class="md" nowrap valign="top"> void initOutputBuffer </td>
539          <td class="md" valign="top">(&nbsp;</td>
540          <td class="md" nowrap valign="top"><a class="el" href="group__IO.html#a5">TidyOutputSink</a> *&nbsp;</td>
541          <td class="mdname" nowrap>&nbsp; <em>outp</em>, </td>
542        </tr>
543        <tr>
544          <td></td>
545          <td></td>
546          <td class="md" nowrap>TidyBuffer *&nbsp;</td>
547          <td class="mdname" nowrap>&nbsp; <em>buf</em></td>
548        </tr>
549        <tr>
550          <td></td>
551          <td class="md">)&nbsp;</td>
552          <td class="md" colspan="2"></td>
553        </tr>
554
555      </table>
556    </td>
557  </tr>
558</table>
559<table cellspacing=5 cellpadding=0 border=0>
560  <tr>
561    <td>
562      &nbsp;
563    </td>
564    <td>
565
566<p>
567Initialize a buffer output sink     </td>
568  </tr>
569</table>
570<hr><address style="align: right;"><small>Generated on Fri Dec 13 18:27:08 2002 for HTML Tidy by
571<a href="http://www.doxygen.org/index.html">
572<img src="doxygen.png" alt="doxygen" align="middle" border=0 
573width=110 height=53></a>1.2.17 </small></address>
574</body>
575</html>
576