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 #ifdef RUDIMENTS_NAMESPACE
10 namespace rudiments {
11 #endif
12 
13 class variablebufferprivate;
14 
31 class RUDIMENTS_DLLSPEC variablebuffer {
32  public:
33 
36  variablebuffer(size_t initialsize, size_t increment);
37 
44  variablebuffer(unsigned char *initialcontents,
45  size_t initialsize, size_t increment);
46 
50 
53  variablebuffer &operator=(const variablebuffer &v);
54 
56  virtual ~variablebuffer();
57 
63  void setPosition(size_t pos);
64 
67  size_t getPosition();
68 
77  variablebuffer *write(const unsigned char *data, size_t size);
78 
86  variablebuffer *write(const char *string);
87 
96  variablebuffer *write(const char *string, size_t size);
97 
105  variablebuffer *write(char character);
106 
114  variablebuffer *write(int16_t number);
115 
123  variablebuffer *write(int32_t number);
124 
132  variablebuffer *write(int64_t number);
133 
141  variablebuffer *write(unsigned char character);
142 
150  variablebuffer *write(uint16_t number);
151 
159  variablebuffer *write(uint32_t number);
160 
168  variablebuffer *write(uint64_t number);
169 
177  variablebuffer *write(float number);
178 
186  variablebuffer *write(double number);
187 
194  variablebuffer *append(const unsigned char *data, size_t size);
195 
201  variablebuffer *append(const char *string);
202 
209  variablebuffer *append(const char *string, size_t size);
210 
216  variablebuffer *append(char character);
217 
223  variablebuffer *append(int16_t number);
224 
230  variablebuffer *append(int32_t number);
231 
237  variablebuffer *append(int64_t number);
238 
244  variablebuffer *append(unsigned char character);
245 
251  variablebuffer *append(uint16_t number);
252 
258  variablebuffer *append(uint32_t number);
259 
265  variablebuffer *append(uint64_t number);
266 
272  variablebuffer *append(float number);
273 
279  variablebuffer *append(double number);
280 
284  ssize_t read(unsigned char *data, size_t size);
285 
287  void clear();
288 
290  const unsigned char *getBuffer();
291 
294  size_t getSize();
295 
298  size_t getEnd();
299 
303  size_t getActualSize();
304 
312  unsigned char *detachBuffer();
313 
314  #include <rudiments/private/variablebuffer.h>
315 };
316 
317 #ifdef RUDIMENTS_NAMESPACE
318 }
319 #endif
320 
321 #endif