UCommon
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions
ucommon::memstring Class Reference

A string class that uses a cstring buffer that is fixed in memory. More...

#include <string.h>

Inheritance diagram for ucommon::memstring:
Inheritance graph
[legend]
Collaboration diagram for ucommon::memstring:
Collaboration graph
[legend]

Public Member Functions

 memstring (void *memory, strsize_t size, char fill=0)
 Create an instance of a memory string.
void operator= (string &object)
 Assign the text of a string to our object.
void operator= (char *text)
 Assign null terminated text to our object.
 ~memstring ()
 Destroy memory string.
- Public Member Functions inherited from ucommon::string
int __isoc99_scanf (char *format,...)
 Scan input items from a string object.
int __isoc99_vscanf (char *format, va_list args)
 Scan input items from a string object.
void add (char *text)
 Append null terminated text to our string buffer.
void add (char character)
 Append a single character to our string buffer.
char at (int position)
 Return character found at a specific position in the string.
char * begin (void)
 Get pointer to first character in string for iteration.
char * c_mem (void)
 Get memory text buffer of string object.
char * c_str (void)
 Get character text buffer of string object.
strsize_t ccount (char *list)
 Count number of occurrences of characters in string.
void chop (char *list)
 Chop trailing characters from the string.
char * chr (char character)
 Find pointer in string where specified character appears.
void clear (strsize_t offset, strsize_t size=0)
 Clear a field of a filled string with filler.
void clear (void)
 Clear string by setting to empty.
strsize_t count (void)
 Count all characters in the string (strlen).
void cut (strsize_t offset, strsize_t size=0)
 Cut (remove) text from string.
char * end (void)
 Get pointer to last character in string for iteration.
char fill (void)
 Get filler character used for field array strings.
char * find (char *list, strsize_t offset=0)
 Find a character in the string.
char * first (char *list)
 Find first occurrence of a character in the string.
bool full (void)
 Test if the string's allocated space is all used up.
string get (strsize_t offset, strsize_t size=0)
 Get a new string object as a substring of the current object.
char * last (char *list)
 Find last occurrence of a character in the string.
strsize_t len (void)
 Get length of string.
void lower (void)
 Convert string to lower case.
strsize_t offset (char *pointer)
 Find offset of a pointer into our string buffer.
 operator bool ()
 Test if string has data.
 operator char * ()
 Casting reference to raw text string.
bool operator! ()
 Test if string is empty.
bool operator!= (char *text)
 Compare our object with null terminated text.
stringoperator% (short &value)
 Parse short integer value from a string.
stringoperator% (unsigned short &value)
 Parse long integer value from a string.
stringoperator% (long &value)
 Parse long integer value from a string.
stringoperator% (unsigned long &value)
 Parse long integer value from a string.
stringoperator% (double &value)
 Parse double value from a string.
stringoperator% (char *text)
 Parse text from a string in a scan expression.
stringoperator& (char *text)
 Concatenate null terminated text to our object.
string operator() (int offset, strsize_t size)
 Get a new substring through object expression.
char * operator() (int offset)
 Reference a string in the object by relative offset.
char * operator* ()
 Reference raw text buffer by pointer operator.
stringoperator+ (char *text)
 Concatenate null terminated text to our object.
stringoperator++ (void)
 Delete first character from string.
stringoperator+= (char *text)
 Concatenate text to an existing string object.
stringoperator+= (strsize_t number)
 Delete a specified number of characters from start of string.
stringoperator-- (void)
 Delete last character from string.
stringoperator-= (strsize_t number)
 Delete a specified number of characters from end of string.
bool operator< (char *text)
 Compare our object with null terminated text.
bool operator<= (char *text)
 Compare our object with null terminated text.
bool operator== (char *text)
 Compare our object with null terminated text.
bool operator> (char *text)
 Compare our object with null terminated text.
bool operator>= (char *text)
 Compare our object with null terminated text.
char operator[] (int offset)
 Reference a single character in string object by array offset.
stringoperator^= (string &object)
 Create new cow instance and assign value from another string object.
stringoperator^= (char *text)
 Create new cow instance and assign value from null terminated text.
strsize_t printf (char *format,...)
 Print items into a string object.
char * rchr (char character)
 Find pointer in string where specified character last appears.
char * rfind (char *list, strsize_t offset=npos)
 Find last occurrence of character in the string.
void rset (char *text, char overflow, strsize_t offset, strsize_t size=0)
 Set a text field within our string object offset from the end of buffer.
char * rskip (char *list, strsize_t offset=npos)
 Skip trailing characters in the string.
void rsplit (char *pointer)
 Split the string by a pointer position.
void rsplit (strsize_t offset)
 Split the string at a specific offset.
void set (char *text)
 Set string object to text of a null terminated string.
void set (strsize_t offset, char *text, strsize_t size=0)
 Set a portion of the string object at a specified offset to a text string.
void set (char *text, char overflow, strsize_t offset, strsize_t size=0)
 Set a text field within our string object.
strsize_t size (void)
 Get the size of currently allocated space for string.
char * skip (char *list, strsize_t offset=0)
 Skip lead characters in the string.
void split (char *pointer)
 Split the string by a pointer position.
void split (strsize_t offset)
 Split the string at a specific offset.
 string ()
 Create a new empty string object.
 string (long value)
 Create a string from a long integer.
 string (double value)
 Create a string from a floating point.
 string (strsize_t size)
 Create an empty string with a buffer pre-allocated to a specified size.
 string (strsize_t size, char fill)
 Create a filled string with a buffer pre-allocated to a specified size.
 string (strsize_t size, char *format,...)
 Create a string by printf-like formating into a pre-allocated space of a specified size.
 string (char *text)
 Create a string from null terminated text.
 string (char *text, strsize_t size)
 Create a string from null terminated text up to a maximum specified size.
 string (char *text, char *end)
 Create a string for a substring.
 string (string &existing)
 Construct a copy of a string object.
void strip (char *list)
 Strip lead and trailing characters from the string.
void trim (char *list)
 Trim lead characters from the string.
bool unquote (char *quote)
 Unquote a quoted string.
void upper (void)
 Convert string to upper case.
strsize_t vprintf (char *format, va_list args)
 Print items into a string object.
virtual ~string ()
 Destroy string.
- Public Member Functions inherited from ucommon::ObjectProtocol
ObjectProtocolcopy (void)
 Retain (increase retention of) object when copying.
virtual ~ObjectProtocol ()
 Required virtual destructor.

Static Public Member Functions

static memstringcreate (strsize_t size, char fill=0)
 Create a memory string with memory allocated from the heap.
static memstringcreate (MemoryProtocol *pager, strsize_t size, char fill=0)
 Create a memory string with memory allocated from a pager.
- Static Public Member Functions inherited from ucommon::string
static int __isoc99_scanf (string &object, char *format,...)
 Scan input items from a string object.
static int __isoc99_vscanf (string &object, char *format, va_list args)
 Scan input items from a string object.
static char * add (char *buffer, size_t size, char *text)
 Safely append a null terminated string into an existing string in memory.
static char * add (char *buffer, size_t size, char *text, size_t max)
 Safely append a null terminated string into an existing string in memory.
static size_t b64decode (uint8_t *binary, char *string, size_t size)
 Standard radix 64 decoding.
static size_t b64encode (char *string, uint8_t *binary, size_t size, size_t width=0)
 Standard radix 64 encoding.
static int case_compare (char *text1, char *text2)
 Depreciated case insensitive string comparison function.
static int case_compare (char *text1, char *text2, size_t size)
 Depreciated case insensitive string comparison function.
static bool case_equal (char *text1, char *text2)
 Simple case insensitive equal test for strings.
static bool case_equal (char *text1, char *text2, size_t size)
 Simple case insensitive equal test for strings.
static unsigned ccount (char *text, char *list)
 Count instances of characters in a list in a text buffer.
static unsigned ccount (string &object, char *list)
 Count number of occurrences of characters in string object.
static char * chop (char *text, char *list)
 Strip trailing characters from the text string.
static void chop (string &object, char *list)
 Chop trailing characters from the string.
static void clear (string &object)
 Clear a string object.
static int collate (char *text1, char *text2)
static int compare (char *text1, char *text2)
 Safe string collation function.
static int compare (char *text1, char *text2, size_t size)
 Depreciated string comparison function.
static size_t count (char *text)
 Safe version of strlen function.
static size_t count (string &object)
 Count all characters in the string object (strlen).
static uint16_t crc16 (uint8_t *binary, size_t size)
 ccitt 16 bit crc for binary data.
static uint32_t crc24 (uint8_t *binary, size_t size)
 24 bit crc as used in openpgp.
static char * dup (char *text)
 Duplicate null terminated text into the heap.
static bool equal (char *text1, char *text2)
 Simple equal test for strings.
static bool equal (char *text1, char *text2, size_t size)
 Simple equal test for strings.
static char * fill (char *text, size_t size, char character)
 Fill a section of memory with a fixed text character.
static char * find (char *text, char *key, char *optional)
 Find position of substring within a string.
static char * find (char *text, char *list)
 Find the first occurrence of a character in a text buffer.
static char * find (string &object, char *list)
 Find a character in the string.
static char * first (char *text, char *list)
 Get pointer to first character past character requested.
static char * first (string &object, char *list)
 Get pointer to first character past character requested.
static void fix (string &object)
 Fix and reset string object filler.
static unsigned hexdump (unsigned char *binary, char *string, char *format)
 Dump hex data to a string buffer.
static unsigned hexpack (unsigned char *binary, char *string, char *format)
 Pack hex data from a string buffer.
static unsigned hexsize (char *format)
static char * ifind (char *text, char *key, char *optional)
 Find position of case insensitive substring within a string.
static char * last (char *text, char *list)
 Get pointer to last character before character requested.
static char * last (string &object, char *list)
 Get pointer to last character past character requested.
static strsize_t len (string &object)
 Count all characters in the string object (strlen).
static void lower (char *text)
 Convert null terminated text to lower case.
static void lower (string &object)
 Convert string object to lower case.
static char * mem (string &object)
 Get memory text buffer of string object.
static strsize_t printf (string &object, char *format,...)
 Print formatted items into a string object.
static char * rfind (char *text, char *list)
 Find the last occurrence of a character in a text buffer.
static char * rfind (string &object, char *list)
 Find last character in the string.
static char * rset (char *buffer, size_t size, char *text)
 Set a field in a null terminated string relative to the end of text.
static char * rskip (char *text, char *list)
 Skip before trailing characters in a null terminated string.
static char * set (char *buffer, size_t size, char *text)
 Safely set a null terminated string buffer in memory.
static char * set (char *buffer, size_t size, char *text, size_t max)
 Safely set a null terminated string buffer in memory.
static strsize_t size (string &object)
 Get the size of currently allocated space for string.
static char * skip (char *text, char *list)
 Skip after lead characters in a null terminated string.
static char * strip (char *text, char *list)
 Skip lead and remove trailing characters from a text string.
static void strip (string &object, char *list)
 Strip lead and trailing characters from the string.
static void swap (string &object1, string &object2)
 Swap the cstring references between two strings.
static double tod (string &object, char **pointer=((void *) 0))
 Convert string to a double value.
static double tod (char *text, char **pointer=((void *) 0))
 Convert text to a double value.
static char * token (char *text, char **last, char *list, char *quote=((void *) 0), char *end=((void *) 0))
 A thread-safe token parsing routine for null terminated strings.
static char * token (string &object, char **last, char *list, char *quote=((void *) 0), char *end=((void *) 0))
 A thread-safe token parsing routine for strings objects.
static long tol (string &object, char **pointer=((void *) 0))
 Convert string to a long value.
static long tol (char *text, char **pointer=((void *) 0))
 Convert text to a long value.
static char * trim (char *text, char *list)
 Return start of string after characters to trim from beginning.
static void trim (string &object, char *list)
 Trim lead characters from the string.
static char * unquote (char *text, char *quote)
 Unquote a quoted null terminated string.
static bool unquote (string &object, char *quote)
 Unquote a quoted string.
static void upper (char *text)
 Convert null terminated text to upper case.
static void upper (string &object)
 Convert string object to upper case.
static strsize_t vprintf (string &object, char *format, va_list args)
 Print items into a string object.

Static Public Attributes

static size_t header
- Static Public Attributes inherited from ucommon::string
static strsize_t npos
 A constant for an invalid position value.

Protected Member Functions

cstringc_copy (void)
 Return cstring to use in copy constructors.
- Protected Member Functions inherited from ucommon::string
int collate (char *string)
virtual int compare (char *string)
 Compare the values of two string.
bool equal (char *string)
 Test if two string values are equal.
strsize_t getStringSize (void)
virtual void retain (void)
 Increase retention of our reference counted cstring.

Additional Inherited Members

- Protected Attributes inherited from ucommon::string
cstringstr
 cstring instance our object references.

Detailed Description

A string class that uses a cstring buffer that is fixed in memory.

This allows one to manipulate a fixed buffer of text in memory through the string class. The size of the memory used must include space for the overhead() size needed for the cstring object control data.

Author:
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 1427 of file string.h.


Constructor & Destructor Documentation

ucommon::memstring::memstring ( void *  memory,
strsize_t  size,
char  fill = 0 
)

Create an instance of a memory string.

Parameters:
memoryto use for cstring object.
sizeof string. Total size must include space for overhead.
fillcharacter for fixed character fields.

Member Function Documentation

cstring* ucommon::memstring::c_copy ( void  )
protectedvirtual

Return cstring to use in copy constructors.

Is virtual for memstring.

Returns:
cstring for copy constructor.

Reimplemented from ucommon::string.

static memstring* ucommon::memstring::create ( strsize_t  size,
char  fill = 0 
)
static

Create a memory string with memory allocated from the heap.

Parameters:
sizeof string to allocate. Automatically adds control size.
fillcharacter for fixed field strings.

Reimplemented from ucommon::string.

static memstring* ucommon::memstring::create ( MemoryProtocol *  pager,
strsize_t  size,
char  fill = 0 
)
static

Create a memory string with memory allocated from a pager.

Parameters:
pagerto allocate memory from.
sizeof string to allocate. Automatically adds control size.
fillcharacter for fixed field strings.
void ucommon::memstring::operator= ( string object)
inline

Assign the text of a string to our object.

Parameters:
objectto copy text from.

Reimplemented from ucommon::string.

Reimplemented in ucommon::stringbuf< S >.

Definition at line 1449 of file string.h.

void ucommon::memstring::operator= ( char *  text)
inline

Assign null terminated text to our object.

Parameters:
textto copy.

Reimplemented from ucommon::string.

Reimplemented in ucommon::stringbuf< S >.

Definition at line 1456 of file string.h.


The documentation for this class was generated from the following file: