Rudiments
variablebuffer.h
1 // Copyright (c) 2002 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_VARIABLEBUFFER_H
5 #define RUDIMENTS_VARIABLEBUFFER_H
6 
7 #include <rudiments/private/variablebufferincludes.h>
8 
9 class variablebufferprivate;
10 
27 class RUDIMENTS_DLLSPEC variablebuffer {
28  public:
29 
32  variablebuffer(size_t initialsize, size_t increment);
33 
40  variablebuffer(unsigned char *initialcontents,
41  size_t initialsize, size_t increment);
42 
46 
49  variablebuffer &operator=(const variablebuffer &v);
50 
52  virtual ~variablebuffer();
53 
59  void setPosition(size_t pos);
60 
63  size_t getPosition();
64 
73  variablebuffer *write(const unsigned char *data, size_t size);
74 
82  variablebuffer *write(const char *string);
83 
92  variablebuffer *write(const char *string, size_t size);
93 
101  variablebuffer *write(char character);
102 
110  variablebuffer *write(int16_t number);
111 
119  variablebuffer *write(int32_t number);
120 
128  variablebuffer *write(int64_t number);
129 
137  variablebuffer *write(unsigned char character);
138 
146  variablebuffer *write(uint16_t number);
147 
155  variablebuffer *write(uint32_t number);
156 
164  variablebuffer *write(uint64_t number);
165 
173  variablebuffer *write(float number);
174 
182  variablebuffer *write(double number);
183 
187  variablebuffer *writeFormatted(const char *format, ...);
188 
195  variablebuffer *writeFormatted(const char *format,
196  va_list *argp);
197 
198 
205  variablebuffer *append(const unsigned char *data, size_t size);
206 
212  variablebuffer *append(const char *string);
213 
220  variablebuffer *append(const char *string, size_t size);
221 
227  variablebuffer *append(char character);
228 
234  variablebuffer *append(int16_t number);
235 
241  variablebuffer *append(int32_t number);
242 
248  variablebuffer *append(int64_t number);
249 
255  variablebuffer *append(unsigned char character);
256 
262  variablebuffer *append(uint16_t number);
263 
269  variablebuffer *append(uint32_t number);
270 
276  variablebuffer *append(uint64_t number);
277 
283  variablebuffer *append(float number);
284 
290  variablebuffer *append(double number);
291 
295  variablebuffer *appendFormatted(const char *format, ...);
296 
303  variablebuffer *appendFormatted(const char *format,
304  va_list *argp);
305 
307  virtual void truncate(size_t pos);
308 
310  virtual void truncate();
311 
312 
316  ssize_t read(unsigned char *data, size_t size);
317 
319  void clear();
320 
322  const unsigned char *getBuffer();
323 
326  size_t getSize();
327 
330  size_t getEnd();
331 
335  size_t getActualSize();
336 
344  unsigned char *detachBuffer();
345 
346  #include <rudiments/private/variablebuffer.h>
347 };
348 
349 #endif