String buffer

String buffer — Append-only strings.

Synopsis




typedef     raptor_stringbuffer;
raptor_stringbuffer* raptor_new_stringbuffer
                                            (void);
void        raptor_free_stringbuffer        (raptor_stringbuffer *stringbuffer);
int         raptor_stringbuffer_append_counted_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             size_t length,
                                             int do_copy);
int         raptor_stringbuffer_append_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             int do_copy);
int         raptor_stringbuffer_append_decimal
                                            (raptor_stringbuffer *stringbuffer,
                                             int integer);
int         raptor_stringbuffer_append_stringbuffer
                                            (raptor_stringbuffer *stringbuffer,
                                             raptor_stringbuffer *append);
int         raptor_stringbuffer_prepend_counted_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             size_t length,
                                             int do_copy);
int         raptor_stringbuffer_prepend_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             int do_copy);
unsigned char* raptor_stringbuffer_as_string
                                            (raptor_stringbuffer *stringbuffer);
size_t      raptor_stringbuffer_length      (raptor_stringbuffer *stringbuffer);
int         raptor_stringbuffer_copy_to_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             size_t length);

Description

A utility class that allows easy construction of strings that grow at the end by appending new strings. Primarily used for constructing/serializing syntaxes into strings by the raptor_iostream and raptor_serializer classes.

Details

raptor_stringbuffer

raptor_stringbuffer* raptor_stringbuffer;

Raptor string buffer class


raptor_new_stringbuffer ()

raptor_stringbuffer* raptor_new_stringbuffer
                                            (void);

Create a new stringbuffer.

Returns : non 0 on failure

raptor_free_stringbuffer ()

void        raptor_free_stringbuffer        (raptor_stringbuffer *stringbuffer);

Destroy a stringbuffer.

stringbuffer : stringbuffer object to destroy.

raptor_stringbuffer_append_counted_string ()

int         raptor_stringbuffer_append_counted_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             size_t length,
                                             int do_copy);

If string is NULL or length is 0, no work is performed.

If do_copy is non-0, the passed-in string is copied into new memory otherwise the stringbuffer becomes the owner of the string pointer and will free it when the stringbuffer is destroyed.

Add a string to the stringbuffer.

stringbuffer : raptor stringbuffer
string : string
length : length of string
do_copy : non-0 to copy the string
Returns : non-0 on failure

raptor_stringbuffer_append_string ()

int         raptor_stringbuffer_append_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             int do_copy);

Add a string to the stringbuffer.

If string is NULL, no work is performed.

If do_copy is non-0, the passed-in string is copied into new memory otherwise the stringbuffer becomes the owner of the string pointer and will free it when the stringbuffer is destroyed.

stringbuffer : raptor stringbuffer
string : string
do_copy : non-0 to copy the string
Returns : non-0 on failure

raptor_stringbuffer_append_decimal ()

int         raptor_stringbuffer_append_decimal
                                            (raptor_stringbuffer *stringbuffer,
                                             int integer);

Add an integer in decimal to the stringbuffer.

stringbuffer : raptor stringbuffer
integer : integer to format as decimal and add
Returns : non-0 on failure

raptor_stringbuffer_append_stringbuffer ()

int         raptor_stringbuffer_append_stringbuffer
                                            (raptor_stringbuffer *stringbuffer,
                                             raptor_stringbuffer *append);

Add a stringbuffer to the stringbuffer.

This function removes the content from the appending stringbuffer, making it empty and appends it to the supplied stringbuffer.

stringbuffer : raptor_stringbuffer
append : raptor_stringbuffer to append
Returns : non-0 on failure

raptor_stringbuffer_prepend_counted_string ()

int         raptor_stringbuffer_prepend_counted_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             size_t length,
                                             int do_copy);

If do_copy is non-0, the passed-in string is copied into new memory otherwise the stringbuffer becomes the owner of the string pointer and will free it when the stringbuffer is destroyed.

Add a string to the start of the stringbuffer.

stringbuffer : raptor stringbuffer
string : string
length : length of string
do_copy : non-0 to copy the string
Returns : non-0 on failure

raptor_stringbuffer_prepend_string ()

int         raptor_stringbuffer_prepend_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             int do_copy);

Add a string to the start of the stringbuffer.

If do_copy is non-0, the passed-in string is copied into new memory otherwise the stringbuffer becomes the owner of the string pointer and will free it when the stringbuffer is destroyed.

stringbuffer : raptor stringbuffer
string : string
do_copy : non-0 to copy the string
Returns : non-0 on failure

raptor_stringbuffer_as_string ()

unsigned char* raptor_stringbuffer_as_string
                                            (raptor_stringbuffer *stringbuffer);

Return the stringbuffer as a C string.

Note: the return value is a to a shared string that the stringbuffer allocates and manages.

stringbuffer : raptor stringbuffer
Returns : NULL on failure or stringbuffer is empty, otherwise a pointer to a shared copy of the string.

raptor_stringbuffer_length ()

size_t      raptor_stringbuffer_length      (raptor_stringbuffer *stringbuffer);

Return the stringbuffer length.

stringbuffer : raptor stringbuffer
Returns : size of stringbuffer

raptor_stringbuffer_copy_to_string ()

int         raptor_stringbuffer_copy_to_string
                                            (raptor_stringbuffer *stringbuffer,
                                             unsigned char *string,
                                             size_t length);

Copy the stringbuffer into a string.

Copies the underlying string to a pre-allocated buffer. The output string is always '\0' terminated.

stringbuffer : raptor stringbuffer
string : output string
length : size of output string
Returns : non-0 on failure such as stringbuffer is empty, buffer is too small