Rudiments
stringbuffer.h
1 // Copyright (c) 1999-2018 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 
13 class RUDIMENTS_DLLSPEC stringbuffer : public bytebuffer {
14  public:
15 
18  stringbuffer();
19 
22  stringbuffer(size_t initialsize);
23 
29  stringbuffer(char *initialcontents, size_t initialsize);
30 
33  stringbuffer(const stringbuffer &s);
34 
38 
40  ~stringbuffer();
41 
47  void setPosition(size_t pos);
48 
51  size_t getPosition();
52 
60  ssize_t write(const unsigned char *string);
61 
70  ssize_t write(const unsigned char *string,
71  size_t size);
72 
80  ssize_t write(const char *string);
81 
90  ssize_t write(const char *string, size_t size);
91 
99  ssize_t write(char character);
100 
109  ssize_t write(int16_t number);
110 
119  ssize_t write(int32_t number);
120 
129  ssize_t write(int64_t number);
130 
138  ssize_t write(unsigned char character);
139 
148  ssize_t write(uint16_t number);
149 
158  ssize_t write(uint32_t number);
159 
168  ssize_t write(uint64_t number);
169 
178  ssize_t write(float number);
179 
188  ssize_t write(float number, uint16_t scale);
189 
199  ssize_t write(float number, uint16_t precision,
200  uint16_t scale);
201 
210  ssize_t write(double number);
211 
220  ssize_t write(double number, uint16_t scale);
221 
231  ssize_t write(double number, uint16_t precision,
232  uint16_t scale);
233 
234 
240  stringbuffer *append(const unsigned char *string);
241 
248  stringbuffer *append(const unsigned char *string,
249  size_t size);
250 
256  stringbuffer *append(const char *string);
257 
264  stringbuffer *append(const char *string, size_t size);
265 
272 
279  stringbuffer *append(int16_t number);
280 
287  stringbuffer *append(int32_t number);
288 
295  stringbuffer *append(int64_t number);
296 
302  stringbuffer *append(unsigned char character);
303 
310  stringbuffer *append(uint16_t number);
311 
318  stringbuffer *append(uint32_t number);
319 
326  stringbuffer *append(uint64_t number);
327 
334  stringbuffer *append(int16_t number, uint16_t zeropadding);
335 
342  stringbuffer *append(int32_t number, uint16_t zeropadding);
343 
350  stringbuffer *append(int64_t number, uint16_t zeropadding);
351 
358  stringbuffer *append(uint16_t number, uint16_t zeropadding);
359 
366  stringbuffer *append(uint32_t number, uint16_t zeropadding);
367 
374  stringbuffer *append(uint64_t number, uint16_t zeropadding);
375 
382  stringbuffer *append(float number);
383 
390  stringbuffer *append(float number, uint16_t scale);
391 
399  stringbuffer *append(float number, uint16_t precision,
400  uint16_t scale);
401 
408  stringbuffer *append(double number);
409 
416  stringbuffer *append(double number, uint16_t scale);
417 
425  stringbuffer *append(double number, uint16_t precision,
426  uint16_t scale);
427 
429  void truncate(size_t pos);
430 
432  void truncate();
433 
435  void clear();
436 
439  void clear(size_t initialsize);
440 
445  void clear(char *initialcontents, size_t initialsize);
446 
448  const char *getString();
449 
456  char *detachString();
457 
460  size_t getStringLength();
461 };
462 
463 #include <rudiments/private/stringbufferinlines.h>
464 
465 #endif
void setPosition(size_t pos)
virtual void truncate()
bytebuffer * append(const unsigned char *data, size_t size)
Definition: character.h:11
Definition: stringbuffer.h:13
Definition: bytebuffer.h:13
ssize_t write(const unsigned char *data, size_t size)
size_t getPosition()
void clear()
bytebuffer & operator=(const bytebuffer &v)