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 class stringbufferprivate;
10 
15 class RUDIMENTS_DLLSPEC stringbuffer : public variablebuffer {
16  public:
17 
20  stringbuffer();
21 
28  stringbuffer(char *initialcontents,
29  size_t initialsize,
30  size_t increment);
31 
34  stringbuffer(const stringbuffer &s);
35 
39 
41  ~stringbuffer();
42 
48  void setPosition(size_t pos);
49 
52  size_t getPosition();
53 
61  stringbuffer *write(const unsigned char *string);
62 
71  stringbuffer *write(const unsigned char *string,
72  size_t size);
73 
81  stringbuffer *write(const char *string);
82 
91  stringbuffer *write(const char *string, size_t size);
92 
101 
110  stringbuffer *write(int16_t number);
111 
120  stringbuffer *write(int32_t number);
121 
130  stringbuffer *write(int64_t number);
131 
139  stringbuffer *write(unsigned char character);
140 
149  stringbuffer *write(uint16_t number);
150 
159  stringbuffer *write(uint32_t number);
160 
169  stringbuffer *write(uint64_t number);
170 
179  stringbuffer *write(float number);
180 
189  stringbuffer *write(float number, uint16_t scale);
190 
200  stringbuffer *write(float number, uint16_t precision,
201  uint16_t scale);
202 
211  stringbuffer *write(double number);
212 
221  stringbuffer *write(double number, uint16_t scale);
222 
232  stringbuffer *write(double number, uint16_t precision,
233  uint16_t scale);
234 
235 
241  stringbuffer *append(const unsigned char *string);
242 
249  stringbuffer *append(const unsigned char *string,
250  size_t size);
251 
257  stringbuffer *append(const char *string);
258 
265  stringbuffer *append(const char *string, size_t size);
266 
272  stringbuffer *append(char character);
273 
280  stringbuffer *append(int16_t number);
281 
288  stringbuffer *append(int32_t number);
289 
296  stringbuffer *append(int64_t number);
297 
303  stringbuffer *append(unsigned char character);
304 
311  stringbuffer *append(uint16_t number);
312 
319  stringbuffer *append(uint32_t number);
320 
327  stringbuffer *append(uint64_t number);
328 
335  stringbuffer *append(int16_t number, uint16_t zeropadding);
336 
343  stringbuffer *append(int32_t number, uint16_t zeropadding);
344 
351  stringbuffer *append(int64_t number, uint16_t zeropadding);
352 
359  stringbuffer *append(uint16_t number, uint16_t zeropadding);
360 
367  stringbuffer *append(uint32_t number, uint16_t zeropadding);
368 
375  stringbuffer *append(uint64_t number, uint16_t zeropadding);
376 
383  stringbuffer *append(float number);
384 
391  stringbuffer *append(float number, uint16_t scale);
392 
400  stringbuffer *append(float number, uint16_t precision,
401  uint16_t scale);
402 
409  stringbuffer *append(double number);
410 
417  stringbuffer *append(double number, uint16_t scale);
418 
426  stringbuffer *append(double number, uint16_t precision,
427  uint16_t scale);
428 
430  void truncate(size_t pos);
431 
433  void truncate();
434 
436  void clear();
437 
439  const char *getString();
440 
447  char *detachString();
448 
451  size_t getStringLength();
452 
453  #include <rudiments/private/stringbuffer.h>
454 };
455 
456 #endif