UCommon
|
A copy-on-write string class that operates by reference count. More...
#include <string.h>
Data Structures | |
class | cstring |
This is an internal class which contains the actual string data along with some control fields. More... | |
Public Member Functions | |
void | add (const 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) const |
Return character found at a specific position in the string. | |
const char * | begin (void) const |
Get pointer to first character in string for iteration. | |
char * | c_mem (void) const |
Get memory text buffer of string object. | |
const char * | c_str (void) const |
Get character text buffer of string object. | |
strsize_t | ccount (const char *list) const |
Count number of occurrences of characters in string. | |
void | chop (const char *list) |
Chop trailing characters from the string. | |
const char * | chr (char character) const |
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) const |
Count all characters in the string (strlen). | |
void | cut (strsize_t offset, strsize_t size=0) |
Cut (remove) text from string. | |
const char * | end (void) const |
Get pointer to last character in string for iteration. | |
char | fill (void) |
Get filler character used for field array strings. | |
const char * | find (const char *list, strsize_t offset=0) const |
Find a character in the string. | |
const char * | first (const char *list) const |
Find first occurrence of a character in the string. | |
bool | full (void) const |
Test if the string's allocated space is all used up. | |
string | get (strsize_t offset, strsize_t size=0) const |
Get a new string object as a substring of the current object. | |
const char * | last (const char *list) const |
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 (const char *pointer) const |
Find offset of a pointer into our string buffer. | |
operator bool () const | |
Test if string has data. | |
operator const char * () const | |
Casting reference to raw text string. | |
bool | operator! () const |
Test if string is empty. | |
bool | operator!= (const char *text) const |
Compare our object with null terminated text. | |
string & | operator% (short &value) |
Parse short integer value from a string. | |
string & | operator% (unsigned short &value) |
Parse long integer value from a string. | |
string & | operator% (long &value) |
Parse long integer value from a string. | |
string & | operator% (unsigned long &value) |
Parse long integer value from a string. | |
string & | operator% (double &value) |
Parse double value from a string. | |
string & | operator% (const char *text) |
Parse text from a string in a scan expression. | |
string & | operator& (const char *text) |
Concatenate null terminated text to our object. | |
string | operator() (int offset, strsize_t size) const |
Get a new substring through object expression. | |
const char * | operator() (int offset) const |
Reference a string in the object by relative offset. | |
const char * | operator* () const |
Reference raw text buffer by pointer operator. | |
string & | operator+ (const char *text) |
Concatenate null terminated text to our object. | |
string & | operator++ (void) |
Delete first character from string. | |
string & | operator+= (const char *text) |
Concatenate text to an existing string object. | |
string & | operator+= (strsize_t number) |
Delete a specified number of characters from start of string. | |
string & | operator-- (void) |
Delete last character from string. | |
string & | operator-= (strsize_t number) |
Delete a specified number of characters from end of string. | |
bool | operator< (const char *text) const |
Compare our object with null terminated text. | |
bool | operator<= (const char *text) const |
Compare our object with null terminated text. | |
string & | operator= (const string &object) |
Assign our string with the cstring of another object. | |
string & | operator= (const char *text) |
Assign text to our existing buffer. | |
bool | operator== (const char *text) const |
Compare our object with null terminated text. | |
bool | operator> (const char *text) const |
Compare our object with null terminated text. | |
bool | operator>= (const char *text) const |
Compare our object with null terminated text. | |
const char | operator[] (int offset) const |
Reference a single character in string object by array offset. | |
string & | operator^= (const string &object) |
Create new cow instance and assign value from another string object. | |
string & | operator^= (const char *text) |
Create new cow instance and assign value from null terminated text. | |
strsize_t | printf (const char *format,...) |
Print items into a string object. | |
const char * | rchr (char character) const |
Find pointer in string where specified character last appears. | |
virtual bool | resize (strsize_t size) |
Resize and re-allocate string memory. | |
const char * | rfind (const char *list, strsize_t offset=npos) const |
Find last occurrence of character in the string. | |
void | rset (const 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. | |
const char * | rskip (const char *list, strsize_t offset=npos) const |
Skip trailing characters in the string. | |
void | rsplit (const char *pointer) |
Split the string by a pointer position. | |
void | rsplit (strsize_t offset) |
Split the string at a specific offset. | |
int | scanf (const char *format,...) |
Scan input items from a string object. | |
void | set (const char *text) |
Set string object to text of a null terminated string. | |
void | set (strsize_t offset, const char *text, strsize_t size=0) |
Set a portion of the string object at a specified offset to a text string. | |
void | set (const char *text, char overflow, strsize_t offset, strsize_t size=0) |
Set a text field within our string object. | |
strsize_t | size (void) const |
Get the size of currently allocated space for string. | |
const char * | skip (const char *list, strsize_t offset=0) const |
Skip lead characters in the string. | |
void | split (const 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, const char *format,...) | |
Create a string by printf-like formating into a pre-allocated space of a specified size. | |
string (const char *text) | |
Create a string from null terminated text. | |
string (const char *text, strsize_t size) | |
Create a string from null terminated text up to a maximum specified size. | |
string (const char *text, const char *end) | |
Create a string for a substring. | |
string (const string &existing) | |
Construct a copy of a string object. | |
void | strip (const char *list) |
Strip lead and trailing characters from the string. | |
void | trim (const char *list) |
Trim lead characters from the string. | |
bool | unquote (const char *quote) |
Unquote a quoted string. | |
void | upper (void) |
Convert string to upper case. | |
strsize_t | vprintf (const char *format, va_list args) |
Print items into a string object. | |
int | vscanf (const char *format, va_list args) |
Scan input items from a string object. | |
virtual | ~string () |
Destroy string. | |
Static Public Member Functions | |
static char * | add (char *buffer, size_t size, const char *text) |
Safely append a null terminated string into an existing string in memory. | |
static char * | add (char *buffer, size_t size, const char *text, size_t max) |
Safely append a null terminated string into an existing string in memory. | |
static size_t | b64decode (uint8_t *binary, const char *string, size_t size) |
Standard radix 64 decoding. | |
static size_t | b64encode (char *string, const uint8_t *binary, size_t size, size_t width=0) |
Standard radix 64 encoding. | |
static int | case_compare (const char *text1, const char *text2) |
Safe case insensitive string comparison function. | |
static int | case_compare (const char *text1, const char *text2, size_t size) |
Safe case insensitive string comparison function. | |
static bool | case_equal (const char *text1, const char *text2) |
Simple case insensitive equal test for strings. | |
static bool | case_equal (const char *text1, const char *text2, size_t size) |
Simple case insensitive equal test for strings. | |
static unsigned | ccount (const char *text, const char *list) |
Count instances of characters in a list in a text buffer. | |
static unsigned | ccount (string &object, const char *list) |
Count number of occurrences of characters in string object. | |
static char * | chop (char *text, const char *list) |
Strip trailing characters from the text string. | |
static void | chop (string &object, const char *list) |
Chop trailing characters from the string. | |
static void | clear (string &object) |
Clear a string object. | |
static int | compare (const char *text1, const char *text2) |
Safe string comparison function. | |
static int | compare (const char *text1, const char *text2, size_t size) |
Safe string comparison function. | |
static size_t | count (const 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 (const char *text) |
Duplicate null terminated text into the heap. | |
static bool | equal (const char *text1, const char *text2) |
Simple equal test for strings. | |
static bool | equal (const char *text1, const 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 const char * | find (const char *text, const char *key, const char *optional) |
Find position of substring within a string. | |
static char * | find (char *text, const char *list) |
Find the first occurrence of a character in a text buffer. | |
static const char * | find (string &object, const char *list) |
Find a character in the string. | |
static char * | first (char *text, const char *list) |
Get pointer to first character past character requested. | |
static const char * | first (string &object, const char *list) |
Get pointer to first character past character requested. | |
static void | fix (string &object) |
Fix and reset string object filler. | |
static unsigned | hexdump (const unsigned char *binary, char *string, const char *format) |
Dump hex data to a string buffer. | |
static unsigned | hexpack (unsigned char *binary, const char *string, const char *format) |
Pack hex data from a string buffer. | |
static unsigned | hexsize (const char *format) |
static const char * | ifind (const char *text, const char *key, const char *optional) |
Find position of case insensitive substring within a string. | |
static char * | last (char *text, const char *list) |
Get pointer to last character before character requested. | |
static const char * | last (string &object, const 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, const char *format,...) |
Print formatted items into a string object. | |
static char * | rfind (char *text, const char *list) |
Find the last occurrence of a character in a text buffer. | |
static const char * | rfind (string &object, const char *list) |
Find last character in the string. | |
static char * | rset (char *buffer, size_t size, const char *text) |
Set a field in a null terminated string relative to the end of text. | |
static char * | rskip (char *text, const char *list) |
Skip before trailing characters in a null terminated string. | |
static int | scanf (string &object, const char *format,...) |
Scan input items from a string object. | |
static char * | set (char *buffer, size_t size, const char *text) |
Safely set a null terminated string buffer in memory. | |
static char * | set (char *buffer, size_t size, const 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, const char *list) |
Skip after lead characters in a null terminated string. | |
static char * | strip (char *text, const char *list) |
Skip lead and remove trailing characters from a text string. | |
static void | strip (string &object, const 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=NULL) |
Convert string to a double value. | |
static double | tod (const char *text, char **pointer=NULL) |
Convert text to a double value. | |
static char * | token (char *text, char **last, const char *list, const char *quote=NULL, const char *end=NULL) |
A thread-safe token parsing routine for null terminated strings. | |
static char * | token (string &object, char **last, const char *list, const char *quote=NULL, const char *end=NULL) |
A thread-safe token parsing routine for strings objects. | |
static long | tol (string &object, char **pointer=NULL) |
Convert string to a long value. | |
static long | tol (const char *text, char **pointer=NULL) |
Convert text to a long value. | |
static char * | trim (char *text, const char *list) |
Return start of string after characters to trim from beginning. | |
static void | trim (string &object, const char *list) |
Trim lead characters from the string. | |
static char * | unquote (char *text, const char *quote) |
Unquote a quoted null terminated string. | |
static bool | unquote (string &object, const 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, const char *format, va_list args) |
Print items into a string object. | |
static int | vscanf (string &object, const char *format, va_list args) |
Scan input items from a string object. | |
Static Public Attributes | |
static const strsize_t | npos |
A constant for an invalid position value. | |
Protected Member Functions | |
virtual cstring * | c_copy (void) const |
Return cstring to use in copy constructors. | |
virtual int | compare (const char *string) const |
Compare the values of two string. | |
virtual void | cow (strsize_t size=0) |
Copy on write operation for cstring. | |
cstring * | create (strsize_t size, char fill=0) const |
Factory create a cstring object of specified size. | |
bool | equal (const char *string) const |
Test if two string values are equal. | |
strsize_t | getStringSize (void) |
virtual void | release (void) |
Decrease retention of our reference counted cstring. | |
virtual void | retain (void) |
Increase retention of our reference counted cstring. | |
Protected Attributes | |
cstring * | str |
cstring instance our object references. |
A copy-on-write string class that operates by reference count.
This string class anchors a counted object that is managed as a copy-on-write instance of the string data. This means that multiple instances of the string class can refer to the same string in memory if it has not been modifed, which reduces heap allocation. The string class offers functions to manipulate both the string object, and generic safe string functions to manipulate ordinary null terminated character arrays directly in memory.
ucommon::string::string | ( | long | value | ) |
Create a string from a long integer.
value | to convert to string. |
ucommon::string::string | ( | double | value | ) |
Create a string from a floating point.
value | to convert to string. |
ucommon::string::string | ( | strsize_t | size | ) |
Create an empty string with a buffer pre-allocated to a specified size.
size | of buffer to allocate. |
ucommon::string::string | ( | strsize_t | size, |
char | fill | ||
) |
Create a filled string with a buffer pre-allocated to a specified size.
size | of buffer to allocate. |
fill | character to use. |
ucommon::string::string | ( | strsize_t | size, |
const char * | format, | ||
... | |||
) |
Create a string by printf-like formating into a pre-allocated space of a specified size.
A typical use might be in a concat function like String x = (String)something + (String){10, "%ud", var}.
size | of buffer to allocate. |
format | control for string. |
ucommon::string::string | ( | const char * | text | ) |
Create a string from null terminated text.
text | to use for string. |
ucommon::string::string | ( | const char * | text, |
strsize_t | size | ||
) |
Create a string from null terminated text up to a maximum specified size.
text | to use for string. |
size | limit of new string. |
ucommon::string::string | ( | const char * | text, |
const char * | end | ||
) |
Create a string for a substring.
The end of the substring is a pointer within the substring itself.
text | to use for string. |
end | of text in substring. |
ucommon::string::string | ( | const string & | existing | ) |
Construct a copy of a string object.
Our copy inherets the same reference counted instance of cstring as in the original.
existing | string to copy from. |
virtual ucommon::string::~string | ( | ) | [virtual] |
Destroy string.
De-reference cstring. If last reference to cstring, then also remove cstring from heap.
void ucommon::string::add | ( | const char * | text | ) |
Append null terminated text to our string buffer.
text | to append. |
void ucommon::string::add | ( | char | character | ) |
Append a single character to our string buffer.
character | to append. |
static char* ucommon::string::add | ( | char * | buffer, |
size_t | size, | ||
const char * | text | ||
) | [static] |
Safely append a null terminated string into an existing string in memory.
If the resulting string is too large to fit into the buffer, it is truncated to the size.
buffer | to set. |
size | of buffer. Includes null byte at end of string. |
text | to set in buffer. |
static char* ucommon::string::add | ( | char * | buffer, |
size_t | size, | ||
const char * | text, | ||
size_t | max | ||
) | [static] |
Safely append a null terminated string into an existing string in memory.
If the resulting string is too large to fit into the buffer, it is truncated to the size.
buffer | to set. |
size | of buffer. Includes null byte at end of string. |
text | to set in buffer. |
max | size of text to append. |
char ucommon::string::at | ( | int | position | ) | const |
Return character found at a specific position in the string.
position | in string, negative values computed from end. |
Reimplemented in ucommon::UString.
static size_t ucommon::string::b64decode | ( | uint8_t * | binary, |
const char * | string, | ||
size_t | size | ||
) | [static] |
Standard radix 64 decoding.
binary | data to save. |
string | of encoded text. |
size | of destination buffer. |
static size_t ucommon::string::b64encode | ( | char * | string, |
const uint8_t * | binary, | ||
size_t | size, | ||
size_t | width = 0 |
||
) | [static] |
Standard radix 64 encoding.
string | of encoded text save into. |
binary | data to encode. |
size | of binary data to encode. |
width | of string buffer for data if partial supported. |
const char* ucommon::string::begin | ( | void | ) | const |
Get pointer to first character in string for iteration.
virtual cstring* ucommon::string::c_copy | ( | void | ) | const [protected, virtual] |
Return cstring to use in copy constructors.
Is virtual for memstring.
Reimplemented in ucommon::memstring.
char* ucommon::string::c_mem | ( | void | ) | const |
Get memory text buffer of string object.
const char* ucommon::string::c_str | ( | void | ) | const |
Get character text buffer of string object.
static int ucommon::string::case_compare | ( | const char * | text1, |
const char * | text2 | ||
) | [static] |
Safe case insensitive string comparison function.
text1 | to compare. |
text2 | to compare. |
static int ucommon::string::case_compare | ( | const char * | text1, |
const char * | text2, | ||
size_t | size | ||
) | [static] |
Safe case insensitive string comparison function.
text1 | to compare. |
text2 | to compare. |
size | limit of strings to compare. |
static bool ucommon::string::case_equal | ( | const char * | text1, |
const char * | text2 | ||
) | [static] |
Simple case insensitive equal test for strings.
text1 | to test. |
text2 | to test. |
static bool ucommon::string::case_equal | ( | const char * | text1, |
const char * | text2, | ||
size_t | size | ||
) | [static] |
Simple case insensitive equal test for strings.
text1 | to test. |
text2 | to test. |
size | limit of strings to compare. |
strsize_t ucommon::string::ccount | ( | const char * | list | ) | const |
Count number of occurrences of characters in string.
list | of characters to find. |
static unsigned ucommon::string::ccount | ( | const char * | text, |
const char * | list | ||
) | [static] |
Count instances of characters in a list in a text buffer.
text | buffer to examine. |
list | of characters to count in buffer. |
static unsigned ucommon::string::ccount | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
void ucommon::string::chop | ( | const char * | list | ) |
Chop trailing characters from the string.
list | of characters to remove. |
static char* ucommon::string::chop | ( | char * | text, |
const char * | list | ||
) | [static] |
Strip trailing characters from the text string.
This function will modify memory.
text | buffer to examine. |
list | of characters to chop from trailing end of string. |
static void ucommon::string::chop | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
const char* ucommon::string::chr | ( | char | character | ) | const |
Find pointer in string where specified character appears.
character | to find. |
Clear a field of a filled string with filler.
offset | to start of field to clear. |
size | of field to fill or 0 to fill to end of string. |
static void ucommon::string::clear | ( | string & | object | ) | [inline, static] |
virtual int ucommon::string::compare | ( | const char * | string | ) | const [protected, virtual] |
Compare the values of two string.
This is a virtual so that it can be overridden for example if we want to create strings which ignore case, or which have special ordering rules.
string | to compare with. |
static int ucommon::string::compare | ( | const char * | text1, |
const char * | text2 | ||
) | [static] |
Safe string comparison function.
text1 | to compare. |
text2 | to compare. |
static int ucommon::string::compare | ( | const char * | text1, |
const char * | text2, | ||
size_t | size | ||
) | [static] |
Safe string comparison function.
text1 | to compare. |
text2 | to compare. |
size | limit of strings to compare. |
strsize_t ucommon::string::count | ( | void | ) | const |
Count all characters in the string (strlen).
Reimplemented in ucommon::UString.
static size_t ucommon::string::count | ( | const char * | text | ) | [static] |
Safe version of strlen function.
Accepts NULL as 0 length strings.
text | string. |
static size_t ucommon::string::count | ( | string & | object | ) | [inline, static] |
virtual void ucommon::string::cow | ( | strsize_t | size = 0 | ) | [protected, virtual] |
Copy on write operation for cstring.
This always creates a new unique copy for write/modify operations and is a virtual for memstring to disable.
size | to add to allocated space when creating new cstring. |
static uint16_t ucommon::string::crc16 | ( | uint8_t * | binary, |
size_t | size | ||
) | [static] |
ccitt 16 bit crc for binary data.
binary | data to sum. |
size | of binary data to sum. |
static uint32_t ucommon::string::crc24 | ( | uint8_t * | binary, |
size_t | size | ||
) | [static] |
24 bit crc as used in openpgp.
binary | data to sum. |
size | of binary data to sum. |
Factory create a cstring object of specified size.
size | of allocated space for string buffer. |
fill | character to use or 0 if null. |
Cut (remove) text from string.
offset | to start of text field to remove. |
size | of text field to remove or 0 to remove to end of string. |
static char* ucommon::string::dup | ( | const char * | text | ) | [static] |
Duplicate null terminated text into the heap.
text | to duplicate. |
const char* ucommon::string::end | ( | void | ) | const |
Get pointer to last character in string for iteration.
bool ucommon::string::equal | ( | const char * | string | ) | const [protected] |
Test if two string values are equal.
string | to compare with. |
static bool ucommon::string::equal | ( | const char * | text1, |
const char * | text2 | ||
) | [static] |
Simple equal test for strings.
text1 | to test. |
text2 | to test. |
static bool ucommon::string::equal | ( | const char * | text1, |
const char * | text2, | ||
size_t | size | ||
) | [static] |
Simple equal test for strings.
text1 | to test. |
text2 | to test. |
size | limit of strings to compare. |
char ucommon::string::fill | ( | void | ) |
Get filler character used for field array strings.
static char* ucommon::string::fill | ( | char * | text, |
size_t | size, | ||
char | character | ||
) | [static] |
Fill a section of memory with a fixed text character.
Adds a null byte at the end.
text | buffer to fill. |
size | of text buffer with null terminated byte. |
character | to fill with. |
const char* ucommon::string::find | ( | const char * | list, |
strsize_t | offset = 0 |
||
) | const |
Find a character in the string.
list | of characters to search for. |
offset | to start of search. |
static const char* ucommon::string::find | ( | const char * | text, |
const char * | key, | ||
const char * | optional | ||
) | [static] |
Find position of substring within a string.
text | to search in. |
key | string to locate. |
optional | separator chars if formatted as list of keys. |
static char* ucommon::string::find | ( | char * | text, |
const char * | list | ||
) | [static] |
Find the first occurrence of a character in a text buffer.
text | buffer to examine. |
list | of characters to search for. |
static const char* ucommon::string::find | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
const char* ucommon::string::first | ( | const char * | list | ) | const |
Find first occurrence of a character in the string.
list | of characters to search for. |
static char* ucommon::string::first | ( | char * | text, |
const char * | list | ||
) | [static] |
Get pointer to first character past character requested.
text | buffer to examine. |
list | of characters. |
static const char* ucommon::string::first | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
static void ucommon::string::fix | ( | string & | object | ) | [static] |
Fix and reset string object filler.
object | to fix. |
bool ucommon::string::full | ( | void | ) | const |
Test if the string's allocated space is all used up.
Get a new string object as a substring of the current object.
offset | of substring. |
size | of substring or 0 if to end. |
Reimplemented in ucommon::UString.
static unsigned ucommon::string::hexdump | ( | const unsigned char * | binary, |
char * | string, | ||
const char * | format | ||
) | [static] |
Dump hex data to a string buffer.
binary | memory to dump. |
string | to save into. |
format | string to convert with. |
static unsigned ucommon::string::hexpack | ( | unsigned char * | binary, |
const char * | string, | ||
const char * | format | ||
) | [static] |
Pack hex data from a string buffer.
binary | memory to pack. |
string | to save into. |
format | string to convert with. |
static const char* ucommon::string::ifind | ( | const char * | text, |
const char * | key, | ||
const char * | optional | ||
) | [static] |
Find position of case insensitive substring within a string.
text | to search in. |
key | string to locate. |
optional | separator chars if formatted as list of keys. |
const char* ucommon::string::last | ( | const char * | list | ) | const |
Find last occurrence of a character in the string.
list | of characters to search for. |
static char* ucommon::string::last | ( | char * | text, |
const char * | list | ||
) | [static] |
Get pointer to last character before character requested.
text | buffer to examine. |
list | of characters. |
static const char* ucommon::string::last | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
strsize_t ucommon::string::len | ( | void | ) |
Get length of string.
static void ucommon::string::lower | ( | char * | text | ) | [static] |
Convert null terminated text to lower case.
text | to convert. |
static void ucommon::string::lower | ( | string & | object | ) | [inline, static] |
static char* ucommon::string::mem | ( | string & | object | ) | [inline, static] |
strsize_t ucommon::string::offset | ( | const char * | pointer | ) | const |
Find offset of a pointer into our string buffer.
This can be used to find the offset position of a pointer returned by find, for example. This is used when one needs to convert a member function that returns a pointer to call a member function that operates by a offset value. If the pointer is outside the range of the string then npos is returned.
pointer | into our object's string buffer. |
ucommon::string::operator bool | ( | ) | const |
Test if string has data.
ucommon::string::operator const char * | ( | ) | const [inline] |
bool ucommon::string::operator! | ( | ) | const |
Test if string is empty.
bool ucommon::string::operator!= | ( | const char * | text | ) | const |
Compare our object with null terminated text.
Compare method is used.
text | to compare with. |
string& ucommon::string::operator% | ( | short & | value | ) |
Parse short integer value from a string.
value | to store. |
string& ucommon::string::operator% | ( | unsigned short & | value | ) |
Parse long integer value from a string.
value | to store. |
string& ucommon::string::operator% | ( | long & | value | ) |
Parse long integer value from a string.
value | to store. |
string& ucommon::string::operator% | ( | unsigned long & | value | ) |
Parse long integer value from a string.
value | to store. |
string& ucommon::string::operator% | ( | double & | value | ) |
Parse double value from a string.
value | to store. |
string& ucommon::string::operator% | ( | const char * | text | ) |
Parse text from a string in a scan expression.
text | to scan and bypass. |
string& ucommon::string::operator& | ( | const char * | text | ) |
Concatenate null terminated text to our object.
This directly appends the text to the string buffer and does not resize the object if the existing cstring allocation space is fully used.
text | to concatenate. |
Get a new substring through object expression.
offset | of substring. |
size | of substring or 0 if to end. |
Reimplemented in ucommon::UString.
const char* ucommon::string::operator() | ( | int | offset | ) | const |
Reference a string in the object by relative offset.
Positive offsets are from the start of the string, negative from the end.
offset | to string position. |
Reimplemented in ucommon::UString.
const char* ucommon::string::operator* | ( | ) | const [inline] |
string& ucommon::string::operator+ | ( | const char * | text | ) |
Concatenate null terminated text to our object.
This creates a new copy-on-write instance to hold the concatenated string.
text | to concatenate. |
string& ucommon::string::operator+= | ( | const char * | text | ) |
Concatenate text to an existing string object.
text | to add. |
Delete a specified number of characters from start of string.
number | of characters to delete. |
Delete a specified number of characters from end of string.
number | of characters to delete. |
bool ucommon::string::operator< | ( | const char * | text | ) | const |
Compare our object with null terminated text.
Compare method is used.
text | to compare with. |
bool ucommon::string::operator<= | ( | const char * | text | ) | const |
Compare our object with null terminated text.
Compare method is used.
text | to compare with. |
Assign our string with the cstring of another object.
If we had an active string reference, it is released. The object now has a duplicate reference to the cstring of the other object.
object | to assign from. |
string& ucommon::string::operator= | ( | const char * | text | ) |
Assign text to our existing buffer.
This performs a set method.
text | to assign from. |
Reimplemented in ucommon::stringbuf, and ucommon::memstring.
bool ucommon::string::operator== | ( | const char * | text | ) | const |
Compare our object with null terminated text.
text | to compare with. |
bool ucommon::string::operator> | ( | const char * | text | ) | const |
Compare our object with null terminated text.
Compare method is used.
text | to compare with. |
bool ucommon::string::operator>= | ( | const char * | text | ) | const |
Compare our object with null terminated text.
Compare method is used.
text | to compare with. |
const char ucommon::string::operator[] | ( | int | offset | ) | const |
Reference a single character in string object by array offset.
offset | to character. |
Reimplemented in ucommon::UString.
Create new cow instance and assign value from another string object.
object | to assign from. |
string& ucommon::string::operator^= | ( | const char * | text | ) |
Create new cow instance and assign value from null terminated text.
text | to assign from. |
strsize_t ucommon::string::printf | ( | const char * | format, |
... | |||
) |
Print items into a string object.
format | string of print format. |
Print formatted items into a string object.
object | to print into. |
format | string to print with. |
const char* ucommon::string::rchr | ( | char | character | ) | const |
Find pointer in string where specified character last appears.
character | to find. |
virtual void ucommon::string::release | ( | void | ) | [protected, virtual] |
Decrease retention of our reference counted cstring.
May be overridden for memstring which has fixed cstring object.
Implements ucommon::ObjectProtocol.
virtual bool ucommon::string::resize | ( | strsize_t | size | ) | [virtual] |
Resize and re-allocate string memory.
size | to allocate for string. |
virtual void ucommon::string::retain | ( | void | ) | [protected, virtual] |
Increase retention of our reference counted cstring.
May be overridden for memstring which has fixed cstring object.
Implements ucommon::ObjectProtocol.
Find last occurrence of character in the string.
list | of characters to search for. |
offset | to start of search. Default is end of string. |
static char* ucommon::string::rfind | ( | char * | text, |
const char * | list | ||
) | [static] |
Find the last occurrence of a character in a text buffer.
text | buffer to examine. |
list | of characters to search for. |
static const char* ucommon::string::rfind | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
void ucommon::string::rset | ( | const 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.
text | to set. |
overflow | character to use as filler if text is too short. |
offset | from end of object string buffer to set text at. |
size | of part of buffer to set with text and overflow. |
static char* ucommon::string::rset | ( | char * | buffer, |
size_t | size, | ||
const char * | text | ||
) | [static] |
Set a field in a null terminated string relative to the end of text.
buffer | to modify. |
size | of field to set. |
text | to replace end of string with. |
Skip trailing characters in the string.
This searches the string in reverse order.
list | of characters to skip when found. |
offset | to start of scan. Default is end of string. |
static char* ucommon::string::rskip | ( | char * | text, |
const char * | list | ||
) | [static] |
Skip before trailing characters in a null terminated string.
text | pointer to start at. |
list | of characters to skip when found. |
void ucommon::string::rsplit | ( | const char * | pointer | ) |
Split the string by a pointer position.
Everything before the pointer is removed.
pointer | to split position in string. |
void ucommon::string::rsplit | ( | strsize_t | offset | ) |
Split the string at a specific offset.
Everything before the offset is removed.
offset | to split position in string. |
int ucommon::string::scanf | ( | const char * | format, |
... | |||
) |
Scan input items from a string object.
format | string of input to scan. |
static int ucommon::string::scanf | ( | string & | object, |
const char * | format, | ||
... | |||
) | [static] |
Scan input items from a string object.
object | to scan from. |
format | string of input to scan. |
void ucommon::string::set | ( | const char * | text | ) |
Set string object to text of a null terminated string.
text | string to set. |
Set a portion of the string object at a specified offset to a text string.
offset | in object string buffer. |
text | to set at offset. |
size | of text area to set or 0 until end of text. |
void ucommon::string::set | ( | const char * | text, |
char | overflow, | ||
strsize_t | offset, | ||
strsize_t | size = 0 |
||
) |
Set a text field within our string object.
text | to set. |
overflow | character to use as filler if text is too short. |
offset | in object string buffer to set text at. |
size | of part of buffer to set with text and overflow. |
static char* ucommon::string::set | ( | char * | buffer, |
size_t | size, | ||
const char * | text | ||
) | [static] |
Safely set a null terminated string buffer in memory.
If the text is too large to fit into the buffer, it is truncated to the size.
buffer | to set. |
size | of buffer. Includes null byte at end of string. |
text | to set in buffer. |
static char* ucommon::string::set | ( | char * | buffer, |
size_t | size, | ||
const char * | text, | ||
size_t | max | ||
) | [static] |
Safely set a null terminated string buffer in memory.
If the text is too large to fit into the buffer, it is truncated to the size.
buffer | to set. |
size | of buffer. Includes null byte at end of string. |
text | to set in buffer. |
max | size of text to set. |
strsize_t ucommon::string::size | ( | void | ) | const |
Get the size of currently allocated space for string.
const char* ucommon::string::skip | ( | const char * | list, |
strsize_t | offset = 0 |
||
) | const |
Skip lead characters in the string.
list | of characters to skip when found. |
offset | to start of scan. |
static char* ucommon::string::skip | ( | char * | text, |
const char * | list | ||
) | [static] |
Skip after lead characters in a null terminated string.
text | pointer to start at. |
list | of characters to skip when found. |
void ucommon::string::split | ( | const char * | pointer | ) |
Split the string by a pointer position.
Everything after the pointer is removed.
pointer | to split position in string. |
void ucommon::string::split | ( | strsize_t | offset | ) |
Split the string at a specific offset.
Everything after the offset is removed.
offset | to split position in string. |
void ucommon::string::strip | ( | const char * | list | ) |
Strip lead and trailing characters from the string.
list | of characters to remove. |
static char* ucommon::string::strip | ( | char * | text, |
const char * | list | ||
) | [static] |
Skip lead and remove trailing characters from a text string.
This function will modify memory.
text | buffer to examine. |
list | of characters to trim and chop. |
static void ucommon::string::strip | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
Swap the cstring references between two strings.
object1 | to swap. |
object2 | to swap. |
static double ucommon::string::tod | ( | string & | object, |
char ** | pointer = NULL |
||
) | [inline, static] |
static double ucommon::string::tod | ( | const char * | text, |
char ** | pointer = NULL |
||
) | [inline, static] |
static char* ucommon::string::token | ( | char * | text, |
char ** | last, | ||
const char * | list, | ||
const char * | quote = NULL , |
||
const char * | end = NULL |
||
) | [static] |
A thread-safe token parsing routine for null terminated strings.
This is related to strtok, but with safety checks for NULL values and a number of enhancements including support for quoted text that may contain token separators within quotes. The text string is modified as it is parsed.
text | string to examine for tokens. |
last | token position or set to NULL for start of string. |
list | of characters to use as token separators. |
quote | pairs of characters for quoted text or NULL if not used. |
end | of line marker characters or NULL if not used. |
static char* ucommon::string::token | ( | string & | object, |
char ** | last, | ||
const char * | list, | ||
const char * | quote = NULL , |
||
const char * | end = NULL |
||
) | [inline, static] |
A thread-safe token parsing routine for strings objects.
This is related to strtok, but with safety checks for NULL values and a number of enhancements including support for quoted text that may contain token separators within quotes. The object is modified as it is parsed.
object | to examine for tokens. |
last | token position or set to NULL for start of string. |
list | of characters to use as token separators. |
quote | pairs of characters for quoted text or NULL if not used. |
end | of line marker characters or NULL if not used. |
Definition at line 1168 of file string.h.
static long ucommon::string::tol | ( | string & | object, |
char ** | pointer = NULL |
||
) | [inline, static] |
static long ucommon::string::tol | ( | const char * | text, |
char ** | pointer = NULL |
||
) | [inline, static] |
void ucommon::string::trim | ( | const char * | list | ) |
Trim lead characters from the string.
list | of characters to remove. |
static char* ucommon::string::trim | ( | char * | text, |
const char * | list | ||
) | [static] |
Return start of string after characters to trim from beginning.
This function does not modify memory.
text | buffer to examine. |
list | of characters to skip from start. |
static void ucommon::string::trim | ( | string & | object, |
const char * | list | ||
) | [inline, static] |
bool ucommon::string::unquote | ( | const char * | quote | ) |
Unquote a quoted string.
Removes lead and trailing quote marks.
quote | pairs of characters for open and close quote. |
static char* ucommon::string::unquote | ( | char * | text, |
const char * | quote | ||
) | [static] |
Unquote a quoted null terminated string.
Returns updated string position and replaces trailing quote with null byte if quoted.
text | to examine. |
quote | pairs of character for open and close quote. |
static bool ucommon::string::unquote | ( | string & | object, |
const char * | quote | ||
) | [inline, static] |
static void ucommon::string::upper | ( | char * | text | ) | [static] |
Convert null terminated text to upper case.
text | to convert. |
static void ucommon::string::upper | ( | string & | object | ) | [inline, static] |
strsize_t ucommon::string::vprintf | ( | const char * | format, |
va_list | args | ||
) |
Print items into a string object.
format | string of print format. |
args | list to print. |
int ucommon::string::vscanf | ( | const char * | format, |
va_list | args | ||
) |
Scan input items from a string object.
format | string of input to scan. |
args | list to scan into. |
static int ucommon::string::vscanf | ( | string & | object, |
const char * | format, | ||
va_list | args | ||
) | [inline, static] |
cstring* ucommon::string::str [protected] |