Rudiments
/home/dmuse/src/rudiments/include/rudiments/stringbuffer.h
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