HTML Tidy
0.1
buffio.h
Go to the documentation of this file.
1
#ifndef __TIDY_BUFFIO_H__
2
#define __TIDY_BUFFIO_H__
3
4
/** @file buffio.h - Treat buffer as an I/O stream.
5
6
(c) 1998-2007 (W3C) MIT, ERCIM, Keio University
7
See tidy.h for the copyright notice.
8
9
CVS Info :
10
11
$Author: arnaud02 $
12
$Date: 2007/01/23 11:17:45 $
13
$Revision: 1.9 $
14
15
Requires buffer to automatically grow as bytes are added.
16
Must keep track of current read and write points.
17
18
*/
19
20
#include "platform.h"
21
#include "
tidy.h
"
22
23
#ifdef __cplusplus
24
extern
"C"
{
25
#endif
26
27
/** TidyBuffer - A chunk of memory */
28
TIDY_STRUCT
29
struct
_TidyBuffer
30
{
31
TidyAllocator
*
allocator
;
/**< Memory allocator */
32
byte*
bp
;
/**< Pointer to bytes */
33
uint
size
;
/**< # bytes currently in use */
34
uint
allocated
;
/**< # bytes allocated */
35
uint
next
;
/**< Offset of current input position */
36
};
37
38
/** Initialize data structure using the default allocator */
39
TIDY_EXPORT
void
TIDY_CALL
tidyBufInit
(
TidyBuffer
* buf );
40
41
/** Initialize data structure using the given custom allocator */
42
TIDY_EXPORT
void
TIDY_CALL
tidyBufInitWithAllocator
(
TidyBuffer
* buf,
TidyAllocator
* allocator );
43
44
/** Free current buffer, allocate given amount, reset input pointer,
45
use the default allocator */
46
TIDY_EXPORT
void
TIDY_CALL
tidyBufAlloc
(
TidyBuffer
* buf, uint allocSize );
47
48
/** Free current buffer, allocate given amount, reset input pointer,
49
use the given custom allocator */
50
TIDY_EXPORT
void
TIDY_CALL
tidyBufAllocWithAllocator
(
TidyBuffer
* buf,
51
TidyAllocator
* allocator,
52
uint allocSize );
53
54
/** Expand buffer to given size.
55
** Chunk size is minimum growth. Pass 0 for default of 256 bytes.
56
*/
57
TIDY_EXPORT
void
TIDY_CALL
tidyBufCheckAlloc
(
TidyBuffer
* buf,
58
uint allocSize, uint chunkSize );
59
60
/** Free current contents and zero out */
61
TIDY_EXPORT
void
TIDY_CALL
tidyBufFree
(
TidyBuffer
* buf );
62
63
/** Set buffer bytes to 0 */
64
TIDY_EXPORT
void
TIDY_CALL
tidyBufClear
(
TidyBuffer
* buf );
65
66
/** Attach to existing buffer */
67
TIDY_EXPORT
void
TIDY_CALL
tidyBufAttach
(
TidyBuffer
* buf, byte* bp, uint size );
68
69
/** Detach from buffer. Caller must free. */
70
TIDY_EXPORT
void
TIDY_CALL
tidyBufDetach
(
TidyBuffer
* buf );
71
72
73
/** Append bytes to buffer. Expand if necessary. */
74
TIDY_EXPORT
void
TIDY_CALL
tidyBufAppend
(
TidyBuffer
* buf,
void
* vp, uint size );
75
76
/** Append one byte to buffer. Expand if necessary. */
77
TIDY_EXPORT
void
TIDY_CALL
tidyBufPutByte
(
TidyBuffer
* buf, byte bv );
78
79
/** Get byte from end of buffer */
80
TIDY_EXPORT
int
TIDY_CALL
tidyBufPopByte
(
TidyBuffer
* buf );
81
82
83
/** Get byte from front of buffer. Increment input offset. */
84
TIDY_EXPORT
int
TIDY_CALL
tidyBufGetByte
(
TidyBuffer
* buf );
85
86
/** At end of buffer? */
87
TIDY_EXPORT Bool TIDY_CALL
tidyBufEndOfInput
(
TidyBuffer
* buf );
88
89
/** Put a byte back into the buffer. Decrement input offset. */
90
TIDY_EXPORT
void
TIDY_CALL
tidyBufUngetByte
(
TidyBuffer
* buf, byte bv );
91
92
93
/**************
94
TIDY
95
**************/
96
97
/* Forward declarations
98
*/
99
100
/** Initialize a buffer input source */
101
TIDY_EXPORT
void
TIDY_CALL
tidyInitInputBuffer
(
TidyInputSource
* inp,
TidyBuffer
* buf );
102
103
/** Initialize a buffer output sink */
104
TIDY_EXPORT
void
TIDY_CALL
tidyInitOutputBuffer
(
TidyOutputSink
* outp,
TidyBuffer
* buf );
105
106
#ifdef __cplusplus
107
}
108
#endif
109
#endif
/* __TIDY_BUFFIO_H__ */
110
111
/*
112
* local variables:
113
* mode: c
114
* indent-tabs-mode: nil
115
* c-basic-offset: 4
116
* eval: (c-set-offset 'substatement-open 0)
117
* end:
118
*/
include
buffio.h
Generated on Fri Aug 8 2014 12:09:48 for HTML Tidy by
1.8.3.1