Rudiments
Public Member Functions
stringbuffer Class Reference

Inherits variablebuffer.

List of all members.

Public Member Functions

 stringbuffer ()
 stringbuffer (char *initialcontents, size_t initialsize, size_t increment)
 stringbuffer (const stringbuffer &s)
stringbufferoperator= (const stringbuffer &s)
 ~stringbuffer ()
void setPosition (size_t pos)
size_t getPosition ()
stringbufferwrite (const unsigned char *string)
stringbufferwrite (const unsigned char *string, size_t size)
stringbufferwrite (const char *string)
stringbufferwrite (const char *string, size_t size)
stringbufferwrite (char character)
stringbufferwrite (int16_t number)
stringbufferwrite (int32_t number)
stringbufferwrite (int64_t number)
stringbufferwrite (unsigned char character)
stringbufferwrite (uint16_t number)
stringbufferwrite (uint32_t number)
stringbufferwrite (uint64_t number)
stringbufferwrite (float number)
stringbufferwrite (float number, uint16_t scale)
stringbufferwrite (float number, uint16_t precision, uint16_t scale)
stringbufferwrite (double number)
stringbufferwrite (double number, uint16_t scale)
stringbufferwrite (double number, uint16_t precision, uint16_t scale)
stringbufferappend (const unsigned char *string)
stringbufferappend (const unsigned char *string, size_t size)
stringbufferappend (const char *string)
stringbufferappend (const char *string, size_t size)
stringbufferappend (char character)
stringbufferappend (int16_t number)
stringbufferappend (int32_t number)
stringbufferappend (int64_t number)
stringbufferappend (unsigned char character)
stringbufferappend (uint16_t number)
stringbufferappend (uint32_t number)
stringbufferappend (uint64_t number)
stringbufferappend (int16_t number, uint16_t zeropadding)
stringbufferappend (int32_t number, uint16_t zeropadding)
stringbufferappend (int64_t number, uint16_t zeropadding)
stringbufferappend (uint16_t number, uint16_t zeropadding)
stringbufferappend (uint32_t number, uint16_t zeropadding)
stringbufferappend (uint64_t number, uint16_t zeropadding)
stringbufferappend (float number)
stringbufferappend (float number, uint16_t scale)
stringbufferappend (float number, uint16_t precision, uint16_t scale)
stringbufferappend (double number)
stringbufferappend (double number, uint16_t scale)
stringbufferappend (double number, uint16_t precision, uint16_t scale)
void clear ()
const char * getString ()
char * detachString ()
size_t getStringLength ()

Detailed Description

The stringbuffer class can be used to store strings of arbitrary length.

The stringbuffer is a child of variablebuffer. See the variablebuffer class for details on how this is achieved.


Constructor & Destructor Documentation

stringbuffer::stringbuffer ( )

Creates an instance of the stringbuffer class with default initial size and increment parameters.

stringbuffer::stringbuffer ( char *  initialcontents,
size_t  initialsize,
size_t  increment 
)

Creates an instance of the stringbuffer class. The buffer "initialcontents" will be attached to the instance and used as the initial contents. This buffer should not be freed by the calling program. The initial size and increment may be specified respectively by the "initialsize" and "increment" parameters.

stringbuffer::stringbuffer ( const stringbuffer s)

Creates an instance of the stringbuffer class that is a copy of "s".

stringbuffer::~stringbuffer ( )

Deletes this instance of the stringbuffer class.


Member Function Documentation

stringbuffer* stringbuffer::append ( const unsigned char *  string)

Appends "string" to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( const unsigned char *  string,
size_t  size 
)

Appends the first "size" bytes of "string" to the stringbuffer, growing the internall buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( uint32_t  number)

Converts "number" to a string and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( uint64_t  number)

Converts "number" to a string and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( int16_t  number,
uint16_t  zeropadding 
)

Converts "number" to a string with the specified amount of zeropadding and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( int32_t  number,
uint16_t  zeropadding 
)

Converts "number" to a string with the specified amount of zeropadding and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( int64_t  number,
uint16_t  zeropadding 
)

Converts "number" to a string with the specified amount of zeropadding and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( double  number)

Converts "number" to a string (using a default scale of 4) and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( uint16_t  number,
uint16_t  zeropadding 
)

Converts "number" to a string with the specified amount of zeropadding and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( uint32_t  number,
uint16_t  zeropadding 
)

Converts "number" to a string with the specified amount of zeropadding and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( uint64_t  number,
uint16_t  zeropadding 
)

Converts "number" to a string with the specified amount of zeropadding and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( float  number)

Converts "number" to a string (using a default scale of 4) and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( float  number,
uint16_t  scale 
)

Converts "number" to a string using the specified "scale" and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( float  number,
uint16_t  precision,
uint16_t  scale 
)

Converts "number" to a string using the specified "precision" and "scale" and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( double  number,
uint16_t  scale 
)

Converts "number" to a string using the specified "scale" and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( double  number,
uint16_t  precision,
uint16_t  scale 
)

Converts "number" to a string using the specified "precision" and "scale" and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

stringbuffer* stringbuffer::append ( const char *  string)

Appends "string" to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( const char *  string,
size_t  size 
)

Appends the first "size" bytes of "string" to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( char  character)

Appends "character" to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( uint16_t  number)

Converts "number" to a string and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( int16_t  number)

Converts "number" to a string and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( int32_t  number)

Converts "number" to a string and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( int64_t  number)

Converts "number" to a string and appends it to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::append ( unsigned char  character)

Appends "character" to the stringbuffer, growing the internal buffer as necessary to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->append("numbers: ")->append(5)->append(5.5);

Reimplemented from variablebuffer.

void stringbuffer::clear ( )

Empties the stringbuffer.

Reimplemented from variablebuffer.

char* stringbuffer::detachString ( )

Returns a pointer to the string currently stored in the stringbuffer, then resets the stringbuffer such that it will no longer use that string.

The calling program must deallocate the string returned from this method.

size_t stringbuffer::getPosition ( )

Returns the position in the internal buffer at which the next write will occur.

Reimplemented from variablebuffer.

const char* stringbuffer::getString ( )

Returns the string currently stored in the stringbuffer.

size_t stringbuffer::getStringLength ( )

Returns the length of the string currently stored in the stringbuffer.

stringbuffer& stringbuffer::operator= ( const stringbuffer s)

Makes this instance of the stringbuffer class identical to "s".

void stringbuffer::setPosition ( size_t  pos)

Sets the position in the internal buffer at which the next write will occur to "pos". If the position is set beyond the end of the buffer, the buffer will grow but the data between the current end of the buffer and the new position will be undefined.

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( double  number,
uint16_t  precision,
uint16_t  scale 
)

Converts "number" to a string using the specified "precision" and "scale" and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

stringbuffer* stringbuffer::write ( const unsigned char *  string,
size_t  size 
)

Writes the first "size" bytes of "string" to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( int32_t  number)

Converts "number" to a string and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( const unsigned char *  string)

Writes "string" to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

stringbuffer* stringbuffer::write ( const char *  string,
size_t  size 
)

Writes the first "size" bytes of "string" to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( uint64_t  number)

Converts "number" to a string and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( char  character)

Writes "character" to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( float  number,
uint16_t  scale 
)

Converts "number" to a string using the specified "scale" and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

stringbuffer* stringbuffer::write ( float  number,
uint16_t  precision,
uint16_t  scale 
)

Converts "number" to a string using the specified "precision" and "scale" and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

stringbuffer* stringbuffer::write ( unsigned char  character)

Writes "character" to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( int16_t  number)

Converts "number" to a string and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( float  number)

Converts "number" to a string (using a default scale of 4) and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the interna buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( uint32_t  number)

Converts "number" to a string and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( const char *  string)

Writes "string" to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( uint16_t  number)

Converts "number" to a string and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( double  number,
uint16_t  scale 
)

Converts "number" to a string using the specified "scale" and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

stringbuffer* stringbuffer::write ( double  number)

Converts "number" to a string (using a default scale of 4) and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the internal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.

stringbuffer* stringbuffer::write ( int64_t  number)

Converts "number" to a string and writes it to the stringbuffer at the current position and increments the current position to the next byte after the data that was written. If necessary, the inernal buffer will grow to accommodate the new data.

Returns a pointer to "this" to enable chaining such as: sb->write("numbers: ")->write(5)->write(5.5);

Reimplemented from variablebuffer.