Rudiments
|
00001 // Copyright (c) 2002 David Muse 00002 // See the COPYING file for more information. 00003 00004 #ifndef RUDIMENTS_STRINGBUFFER_H 00005 #define RUDIMENTS_STRINGBUFFER_H 00006 00007 #include <rudiments/private/stringbufferincludes.h> 00008 00009 #ifdef RUDIMENTS_NAMESPACE 00010 namespace rudiments { 00011 #endif 00012 00013 class stringbufferprivate; 00014 00019 class RUDIMENTS_DLLSPEC stringbuffer : public variablebuffer { 00020 public: 00021 00024 stringbuffer(); 00025 00032 stringbuffer(char *initialcontents, 00033 size_t initialsize, 00034 size_t increment); 00035 00038 stringbuffer(const stringbuffer &s); 00039 00042 stringbuffer &operator=(const stringbuffer &s); 00043 00045 ~stringbuffer(); 00046 00052 void setPosition(size_t pos); 00053 00056 size_t getPosition(); 00057 00065 stringbuffer *write(const unsigned char *string); 00066 00075 stringbuffer *write(const unsigned char *string, 00076 size_t size); 00077 00085 stringbuffer *write(const char *string); 00086 00095 stringbuffer *write(const char *string, size_t size); 00096 00104 stringbuffer *write(char character); 00105 00114 stringbuffer *write(int16_t number); 00115 00124 stringbuffer *write(int32_t number); 00125 00134 stringbuffer *write(int64_t number); 00135 00143 stringbuffer *write(unsigned char character); 00144 00153 stringbuffer *write(uint16_t number); 00154 00163 stringbuffer *write(uint32_t number); 00164 00173 stringbuffer *write(uint64_t number); 00174 00183 stringbuffer *write(float number); 00184 00193 stringbuffer *write(float number, uint16_t scale); 00194 00204 stringbuffer *write(float number, uint16_t precision, 00205 uint16_t scale); 00206 00215 stringbuffer *write(double number); 00216 00225 stringbuffer *write(double number, uint16_t scale); 00226 00236 stringbuffer *write(double number, uint16_t precision, 00237 uint16_t scale); 00238 00239 00245 stringbuffer *append(const unsigned char *string); 00246 00253 stringbuffer *append(const unsigned char *string, 00254 size_t size); 00255 00261 stringbuffer *append(const char *string); 00262 00269 stringbuffer *append(const char *string, size_t size); 00270 00276 stringbuffer *append(char character); 00277 00284 stringbuffer *append(int16_t number); 00285 00292 stringbuffer *append(int32_t number); 00293 00300 stringbuffer *append(int64_t number); 00301 00307 stringbuffer *append(unsigned char character); 00308 00315 stringbuffer *append(uint16_t number); 00316 00323 stringbuffer *append(uint32_t number); 00324 00331 stringbuffer *append(uint64_t number); 00332 00339 stringbuffer *append(int16_t number, uint16_t zeropadding); 00340 00347 stringbuffer *append(int32_t number, uint16_t zeropadding); 00348 00355 stringbuffer *append(int64_t number, uint16_t zeropadding); 00356 00363 stringbuffer *append(uint16_t number, uint16_t zeropadding); 00364 00371 stringbuffer *append(uint32_t number, uint16_t zeropadding); 00372 00379 stringbuffer *append(uint64_t number, uint16_t zeropadding); 00380 00387 stringbuffer *append(float number); 00388 00395 stringbuffer *append(float number, uint16_t scale); 00396 00404 stringbuffer *append(float number, uint16_t precision, 00405 uint16_t scale); 00406 00413 stringbuffer *append(double number); 00414 00421 stringbuffer *append(double number, uint16_t scale); 00422 00430 stringbuffer *append(double number, uint16_t precision, 00431 uint16_t scale); 00432 00434 void clear(); 00435 00437 const char *getString(); 00438 00445 char *detachString(); 00446 00449 size_t getStringLength(); 00450 00451 #include <rudiments/private/stringbuffer.h> 00452 }; 00453 00454 #ifdef RUDIMENTS_NAMESPACE 00455 } 00456 #endif 00457 00458 #endif