libcsdbg
1.28
C++ exception (and generic) stack trace debug library
|
Lightweight string buffer class (for ISO-8859-1 text) More...
#include <string.hpp>
Public Member Functions | |
string (u32=0) | |
Object constructor. More... | |
string (const i8 *,...) | |
Object constructor. More... | |
string (const string &) | |
Object copy constructor. More... | |
virtual | ~string () |
Object destructor. More... | |
virtual string * | clone () const |
Object virtual copy constructor. More... | |
virtual const i8 * | cstr () const |
Get the C-string equivalent. More... | |
virtual u32 | length () const |
Get the character count. More... | |
virtual u32 | bufsize () const |
Get the buffer size. More... | |
virtual i8 & | at (u32) |
Get/set the character at an offset. More... | |
virtual string & | set (const i8 *,...) |
Fill with a printf-style format C-string expanded with the values of a variable argument list. More... | |
virtual string & | set (const string &) |
Copy a string. More... | |
virtual string & | operator= (const string &) |
Assignment operator. More... | |
virtual string & | operator+= (const string &) |
Compound addition-assignment operator (append) More... | |
virtual i8 & | operator[] (u32) |
Subscript operator. More... | |
virtual u32 | available () const |
Get the available buffer size, the number of characters that can be appended without reallocation. More... | |
virtual string & | shred (u8=0) |
Fill the whole buffer with a constant byte. More... | |
virtual string & | clear () |
Clear contents. More... | |
virtual string & | append (const string &) |
Append a string. More... | |
virtual string & | append (const i8 *,...) |
Append a printf-style format C-string expanded with the values of a variable argument list. More... | |
virtual string & | append (i8) |
Append a character. More... | |
virtual i32 | cmp (const string &, bool=false) const |
Compare to another string. More... | |
virtual bool | match (const string &, bool=false) const |
Match against a POSIX extended regular expression. More... | |
virtual string & | trim (i32=0) |
Remove leading and/or trailing whitespace characters. More... | |
virtual string & | insert (u32, const string &) |
Insert a string at a specified position. More... | |
virtual string & | insert (u32, const i8 *,...) |
Insert a printf-style format C-string expanded with the values of a variable argument list, at a specified position. More... | |
virtual chain< string > * | split (const string &, bool=true, bool=false) const |
Tokenize using a POSIX extended regular expression. More... | |
Public Member Functions inherited from csdbg::object | |
virtual | ~object ()=0 |
To be implemented. More... | |
virtual const i8 * | class_name () const |
Query the class name of an object descending from csdbg::object. More... | |
Protected Member Functions | |
virtual string & | memalign (u32, bool=false) |
Allocate aligned memory, mandate a minimum buffer size. More... | |
virtual string & | format (const i8 *, va_list) |
Fill with a printf-style format C-string expanded with the values of a variable argument list. More... | |
Protected Attributes | |
i8 * | m_data |
String data. More... | |
u32 | m_length |
Character count. More... | |
u32 | m_size |
Buffer size. More... | |
Friends | |
std::ostream & | operator<< (std::ostream &, const string &) |
Stream insertion operator for csdbg::string objects. More... | |
Lightweight string buffer class (for ISO-8859-1 text)
A string object is mainly used to create trace text. Text is easily appended using printf-style format strings and variable argument lists. Memory can be allocated in blocks (aligning) to reduce overhead when appending multiple small strings. It is comparable against POSIX extended regular expressions. By creating traces in string buffers it is easy to direct library output to any kind of stream (console, file, serial, network, plugin, device e.t.c). Apart from traces a string can be used for generic dynamic text manipulation. If the library is compiled with plugin support (CSDBG_WITH_PLUGIN) or with support for stack trace syntax highlighting (CSDBG_WITH_HIGHLIGHT) a string object gets equipped with a method to tokenize it using POSIX extended regular expressions and other advanced text processing methods. This class is not thread safe, the caller must implement thread sychronization
Definition at line 36 of file string.hpp.