Rudiments
stringbuffer.h
1 // Copyright (c) 2002 David Muse
2 // See the COPYING file for more information.
3 
4 #ifndef RUDIMENTS_STRINGBUFFER_H
5 #define RUDIMENTS_STRINGBUFFER_H
6 
7 #include <rudiments/private/stringbufferincludes.h>
8 
9 #ifdef RUDIMENTS_NAMESPACE
10 namespace rudiments {
11 #endif
12 
13 class stringbufferprivate;
14 
19 class RUDIMENTS_DLLSPEC stringbuffer : public variablebuffer {
20  public:
21 
24  stringbuffer();
25 
32  stringbuffer(char *initialcontents,
33  size_t initialsize,
34  size_t increment);
35 
38  stringbuffer(const stringbuffer &s);
39 
42  stringbuffer &operator=(const stringbuffer &s);
43 
45  ~stringbuffer();
46 
52  void setPosition(size_t pos);
53 
56  size_t getPosition();
57 
65  stringbuffer *write(const unsigned char *string);
66 
75  stringbuffer *write(const unsigned char *string,
76  size_t size);
77 
85  stringbuffer *write(const char *string);
86 
95  stringbuffer *write(const char *string, size_t size);
96 
104  stringbuffer *write(char character);
105 
114  stringbuffer *write(int16_t number);
115 
124  stringbuffer *write(int32_t number);
125 
134  stringbuffer *write(int64_t number);
135 
143  stringbuffer *write(unsigned char character);
144 
153  stringbuffer *write(uint16_t number);
154 
163  stringbuffer *write(uint32_t number);
164 
173  stringbuffer *write(uint64_t number);
174 
183  stringbuffer *write(float number);
184 
193  stringbuffer *write(float number, uint16_t scale);
194 
204  stringbuffer *write(float number, uint16_t precision,
205  uint16_t scale);
206 
215  stringbuffer *write(double number);
216 
225  stringbuffer *write(double number, uint16_t scale);
226 
236  stringbuffer *write(double number, uint16_t precision,
237  uint16_t scale);
238 
239 
245  stringbuffer *append(const unsigned char *string);
246 
253  stringbuffer *append(const unsigned char *string,
254  size_t size);
255 
261  stringbuffer *append(const char *string);
262 
269  stringbuffer *append(const char *string, size_t size);
270 
276  stringbuffer *append(char character);
277 
284  stringbuffer *append(int16_t number);
285 
292  stringbuffer *append(int32_t number);
293 
300  stringbuffer *append(int64_t number);
301 
307  stringbuffer *append(unsigned char character);
308 
315  stringbuffer *append(uint16_t number);
316 
323  stringbuffer *append(uint32_t number);
324 
331  stringbuffer *append(uint64_t number);
332 
339  stringbuffer *append(int16_t number, uint16_t zeropadding);
340 
347  stringbuffer *append(int32_t number, uint16_t zeropadding);
348 
355  stringbuffer *append(int64_t number, uint16_t zeropadding);
356 
363  stringbuffer *append(uint16_t number, uint16_t zeropadding);
364 
371  stringbuffer *append(uint32_t number, uint16_t zeropadding);
372 
379  stringbuffer *append(uint64_t number, uint16_t zeropadding);
380 
387  stringbuffer *append(float number);
388 
395  stringbuffer *append(float number, uint16_t scale);
396 
404  stringbuffer *append(float number, uint16_t precision,
405  uint16_t scale);
406 
413  stringbuffer *append(double number);
414 
421  stringbuffer *append(double number, uint16_t scale);
422 
430  stringbuffer *append(double number, uint16_t precision,
431  uint16_t scale);
432 
434  void clear();
435 
437  const char *getString();
438 
445  char *detachString();
446 
449  size_t getStringLength();
450 
451  #include <rudiments/private/stringbuffer.h>
452 };
453 
454 #ifdef RUDIMENTS_NAMESPACE
455 }
456 #endif
457 
458 #endif