ost::String(3) | Library Functions Manual | ost::String(3) |
NAME¶
ost::String - This is a generic and portable string class.SYNOPSIS¶
#include <string.h> Inherited by ost::SString.Public Types¶
typedef size_t size_type
Public Member Functions¶
String ()
Static Public Attributes¶
static const size_t npos
Protected Member Functions¶
bool isBig (void) const
Static Protected Member Functions¶
static char * getSpace (size_t size)
Static Protected Attributes¶
static const unsigned minsize
Friends¶
class StringObject
Detailed Description¶
This is a generic and portable string class. It uses optimized memory allocation strategies to efficiently handle smaller string content by grouping strings into 32 byte aligned slots that can be re-allocated from a free list directly. While meant to cover the basic functionality of the ANSI C++ string class in form and function, this class offers some important enhancements, including the ability to derive class type specific versions of itself. The latter might be used to derive a unicode string, a string for data and time data types, or to add case insensitive comparisons, for example. Author:David Sugar dyfet@ostel.com Generic string class.
Member Typedef Documentation¶
typedef size_t ost::String::size_type¶
Constructor & Destructor Documentation¶
ost::String::String ()¶
Construct an empty string.ost::String::String (const String &original)¶
Copy constructor. Parameters:original string to copy from.
ost::String::String (const char *str)¶
Create a string from a cstring. Parameters:str text to set with.
ost::String::String (std::stringstring)¶
Create a String from std::string. Parameters:string from std::string to copy from.
ost::String::String (const String &str, size_toffset, size_tlen = npos)¶
Create a new string from a subset of another string. Parameters:str reference of source string.
offset offset to start of data in prior string.
len length of our substring.
ost::String::String (size_tsize, const char *format, ...)¶
Create a string from formatted text input. Parameters:size to allocate for our new string.
format of data to input.
ost::String::String (size_tcount, const charfill = ' ')¶
Fill a new string with character data. Parameters:count size of new string.
fill char to fill string with.
virtual ost::String::~String () [virtual]¶
Destroy the string...Member Function Documentation¶
void ost::String::add (charc)¶
Add a character to the end of a string. Parameters:c char to add.
void ost::String::append (const char *str, size_tcount = 0)¶
Append text to the end of the current string. Parameters:str text to append.
count size of text to append.
void ost::String::append (size_tsize, const char *format, ...)¶
Append formatted text to the end of the current string. Parameters:size size of text to append.
format of data to append.
void ost::String::append (const char *str, size_toffset, size_tcount)¶
Append text into the current string. Parameters:str text to append.
offset offset to overlay.
count size of text to append.
void ost::String::append (const String &str)¶
Append string to the end of the current string. Parameters:str string to append.
char ost::String::at (ssize_toffset) const¶
Return a character at a known offset. Returns:character at offset.
char* ost::String::c_str (void) const [inline]¶
Old ANSI C++ compatible string pointer extraction. Returns:string data.
size_t ost::String::capacity (void) const [inline]¶
Get space allocated to hold current string. Returns:space of memory buffer from heap or local.
void ost::String::chop (const char *cs) [inline]¶
Chop leading characters from a string. Parameters:cs list of chars to chop.
References ost::strchop().
void ost::String::chop (size_tchars) [inline]¶
Chop n leading characters from a string. Parameters:chars count to chop.
void ost::String::clear (void)¶
Clear the contents of the entire string.void ost::String::compact (void) [inline]¶
Reduce the size of the string allocation to the minimum needed based on the current effective length.virtual int ost::String::compare (const char *text, size_tlen = 0, size_tindex = 0) const [protected], [virtual]¶
A derivable low level comparison operator. This can be used to create custom comparison data types in derived string classes. Returns:0 if match, or value for ordering.
Parameters:
text text to compare.
len length of text to compare.
index offset from start of string, used in searchs.
void ost::String::copy (const String &str) [protected]¶
Impliment the copy constructor, used internally. Will always create a minimum sized string allocation. Parameters:str string to copy from.
unsigned ost::String::count (const String &s, size_toffset = 0) const¶
Count the number of occurences of a specific string within our string. Returns:count of instances.
Parameters:
s string to test.
offset offset to start from.
unsigned ost::String::count (const char *s, size_toffset = 0, size_tlen = 0) const¶
Count the number of occurrences of a specific text pattern within our string. Returns:count of instances.
Parameters:
s text pattern to find
offset offset to start from.
len length of text pattern if specified.
char* ost::String::data (void) const [inline]¶
Alternate get text method. Returns:string data.
bool ost::String::empty (void) const [inline]¶
Return true if string is empty.void ost::String::erase (size_tstart, size_tlen = npos)¶
Erase a portion of string. Parameters:start starting index to erase from.
len number of characters to erase.
size_t ost::String::find (const String &s, size_toffset = 0, unsignedinstance = 1) const¶
Find the index to the nth instance of a substring in our string. Returns:index of found substring.
Parameters:
s string to search for.
offset offset to start at.
instance instance to look for.
size_t ost::String::find (const char *s, size_toffset = 0, size_tlen = 0, unsignedcount = 1) const¶
Find the index to the nth instance of text in our string. Returns:index of found substring.
Parameters:
s string to search for.
offset offset to start at.
len size of string text.
count instance to look for.
size_t ost::String::find (unsignedinstance, const char *text, size_toffset = 0, size_tlen = 0) const [inline]¶
A more convenient version of find for nth occurences, by putting the instance first. Parameters:instance nth instance to look for.
text text to look for.
offset offset to start at.
len length of text.
References ost::find().
size_t ost::String::find (unsignedinstance, const String &string, size_toffset = 0) const [inline]¶
A more convenient version of find for nth occurences, by putting the instance first. Parameters:instance nth instance to look for.
string reference to look for.
offset offset to start at.
References ost::find().
bool ost::String::getBool (booldefbool = false) const¶
Get the bool flag of a string. Returns:boolean value.
const char* ost::String::getIndex (size_tindex) const¶
Get a string pointer to string content based on an indexed offset. A NULL is returned if the index is outsize of range. Returns:string content or NULL if invalid index.
Parameters:
index
const size_t ost::String::getLength (void) const¶
Get the assigned length of string. Returns:string length.
const size_t ost::String::getSize (void) const¶
Get the allocation size of the string variable. Returns:allocation size.
static char* ost::String::getSpace (size_tsize) [static], [protected]¶
Used to fetch memory, if needed, based on the size, from the pager, or the system heap. Returns:string pointer to space.
Parameters:
size of space needed.
char* ost::String::getText (void) const¶
Get the text of a string. Returns:string content.
long ost::String::getValue (longdefvalue = 0l) const¶
Get the value of a string. Returns:string value as number.
const char*() ost::String::index (size_tind) const [inline]¶
Return an indexed string based on the index, such as from a find. If out of range, a NULL string is returned. Returns:pointer to string data from our string,
Parameters:
ind index or offset to use.
void ost::String::init (void) [protected]¶
Used to initialize a string object.void ost::String::insert (size_tstart, const char *text, size_tlen = 0)¶
Insert text into a string. Parameters:start starting offset to insert at.
text text to insert.
len size of text to insert.
void ost::String::insert (size_tstart, const String &str)¶
Insert other string into our string. Parameters:start string offset to insert at.
str string to insert.
bool ost::String::isBig (void) const [inline], [protected]¶
Determine if string is allocated in local variable or an external reference. Returns:true if external heap is used.
bool ost::String::isEmpty (void) const¶
Return true if string is empty. Returns:true if string is empty string.
size_t ost::String::length (void) const [inline]¶
Get length as if null terminated string. Returns:cstring length.
ost::String::operator char * () const [inline]¶
Get our string data through dereference operator. Returns:string data.
bool ost::String::operator! (void) const [inline]¶
Logical test for string empty. Returns:true if is empty.
bool ost::String::operator!= (const String &str) const¶
bool ost::String::operator!= (const char *str) const¶
bool ost::String::operator*= (const String &str) const¶
Test if string is contained in our string.bool ost::String::operator*= (const char *str) const¶
Test if text is contained in our string.String& ost::String::operator+= (const String &str) [inline]¶
Append operator.String& ost::String::operator+= (charc) [inline]¶
Append operator.String& ost::String::operator+= (const char *str) [inline]¶
Append operator.String& ost::String::operator+= (const std::string &str) [inline]¶
Append operator.String& ost::String::operator+= (inti) [inline]¶
Append operator.String& ost::String::operator+= (unsigned inti) [inline]¶
String& ost::String::operator+= (longl) [inline]¶
String& ost::String::operator+= (unsigned longl) [inline]¶
String& ost::String::operator+= (floatf) [inline]¶
String& ost::String::operator+= (doubled) [inline]¶
String& ost::String::operator+= (shorts) [inline]¶
String& ost::String::operator+= (unsigned shorts) [inline]¶
bool ost::String::operator< (const String &str) const¶
bool ost::String::operator< (const char *str) const¶
bool ost::String::operator<= (const String &str) const¶
bool ost::String::operator<= (const char *str) const¶
const char* ost::String::operator= (const char *str) [inline]¶
Assign our string for c string.String& ost::String::operator= (inti) [inline]¶
Assignment operator.String& ost::String::operator= (unsigned inti) [inline]¶
String& ost::String::operator= (longl) [inline]¶
String& ost::String::operator= (unsigned longl) [inline]¶
String& ost::String::operator= (floatf) [inline]¶
String& ost::String::operator= (doubled) [inline]¶
String& ost::String::operator= (shorts) [inline]¶
String& ost::String::operator= (unsigned shorts) [inline]¶
String& ost::String::operator= (const String &original) [inline]¶
bool ost::String::operator== (const String &str) const¶
bool ost::String::operator== (const char *str) const¶
bool ost::String::operator> (const String &str) const¶
bool ost::String::operator> (const char *str) const¶
bool ost::String::operator>= (const String &str) const¶
bool ost::String::operator>= (const char *str) const¶
const char ost::String::operator[] (unsignedind) const [inline]¶
Extract a character by array indexing. Returns:character code.
void ost::String::replace (size_tstart, size_tlen, const char *text, size_tcount = 0)¶
Replace text at a specific position in the string with new text. Parameters:start starting offset to replace at.
len length of text to remove.
text text to replace with.
count size of replacement text.
void ost::String::replace (size_tstart, size_tlen, const String &string)¶
Replace text at a specific position in the string with new string,. Parameters:start starting offset to replace at.
len length of text to remove.
string reference to replace with.
void ost::String::resize (size_tsize)¶
Re-allocate buffer space for string. Parameters:size new size to use.
size_t ost::String::rfind (const String &s, size_toffset = 0) const¶
Find last occurence of a substring in our string. Returns:index of last instance found,
Parameters:
s string to search for.
offset offset to start from.
size_t ost::String::rfind (const char *s, size_toffset = 0, size_tlen = 0) const¶
Find last occurence of a text in our string. Returns:index of last instance found,
Parameters:
s string to search for.
offset offset to start from.
len size of string to look for.
size_t ost::String::search (const char *text, size_tclen = 0, size_toffset = 0) const [protected]¶
An internal method used to search for a substring starting at a known offset. Used by find and count methods. Returns:npos if fails, or offset to text found.
Parameters:
text text to search for.
clen length of search text.
offset offset to start from.
const char* ost::String::set (const char *str, size_tlen = 0) [protected]¶
Set the content of the string variable to the specified string value, and use smart re-allocation strategies if appropriate to shrink the size of the variable. Parameters:str string to set.
len length of string if passed.
void ost::String::set (const String &str) [protected]¶
Set the content of the string variable to that of another variable. Uses the string set method. Parameters:str string to copy from.
const char* ost::String::set (size_tsize, const char *format, ...) [protected]¶
Set the content of the string variable to that of a formatted printf style string. Parameters:size of string data to set.
format of string to write into object.
void ost::String::setLength (size_tlen) [protected]¶
Set the length value of the string content. Parameters:len size in bytes.
size_t ost::String::setSize (size_tsize) [protected]¶
Set the size of allocated space in the string variable (capacity) to a known value. The value is recomputed and adjusted based on allocation method. Parameters:size in bytes.
size_t ost::String::size (void) const [inline]¶
Get actual length of string data. Returns:actual size of string.
void ost::String::strip (const char *cs)¶
Strip lead and trailing characters from a string. Parameters:cs list of chars to strip.
String ost::String::substr (size_tstart, size_tlen) const [inline]¶
Return a new string that contains a specific substring of the current string. Returns:new string.
Parameters:
start starting offset for extracted substring.
len length of substring.
char* ost::String::text (void) const [inline]¶
Alternate get text method. Returns:string data.
String ost::String::token (const char *delim = ' r', size_toffset = 0)¶
Extract a new string as a token from the current string. Returns:string containing token.
Parameters:
delim deliminator characters.
offset offset to start from.
void ost::String::trim (const char *cs) [inline]¶
Trim trailing characters from a string. Parameters:cs list of chars to trim.
References ost::strtrim().
void ost::String::trim (size_tcount)¶
Trim n trailing characters from a string. Parameters:count number of bytes to trim.
Friends And Related Function Documentation¶
__EXPORT std::istream& getline (std::istream &is, String &str, chardelim = ', size_tsize = 0) [friend]¶
Fetch input from a std::istream into the current string variable until either the string variable is filled (based on current length) or the deliminator is read. Parameters:is stream to read.
str string to save into.
delim deliminator to use.
size optional size limitor.
friend class MemPager [friend]¶
__EXPORT String operator+ (const String &s1, const String &s2) [friend]¶
Add two strings and return a temporary object.__EXPORT String operator+ (const String &s1, const char *s2) [friend]¶
__EXPORT String operator+ (const char *s1, const String &s2) [friend]¶
__EXPORT String operator+ (const String &s1, const charc2) [friend]¶
__EXPORT String operator+ (const charc1, const String &s2) [friend]¶
__EXPORT std::ostream& operator<< (std::ostream &os, const String &str) [friend]¶
Stream the content of our string variable directly to a C++ streaming source.std::istream& operator>> (std::istream &is, String &str) [friend]¶
Stream input into our variable.friend class StringObject [friend]¶
__EXPORT int strprintf ( String &str, size_tsize, const char *format, ...) [friend]¶
Print values directly into a string variable. Returns:character count.
Parameters:
str object reference to use.
size of string required.
format of data.
Member Data Documentation¶
bool ost::String::big¶
struct { ... } ost::String::bigstring¶
size_t ost::String::length¶
char ost::String::length¶
struct { ... } ost::String::ministring¶
const unsigned ost::String::minsize [static], [protected]¶
const size_t ost::String::npos [static]¶
const unsigned ost::String::pagesize [static], [protected]¶
size_t ost::String::size¶
const unsigned ost::String::slotcount [static], [protected]¶
const unsigned ost::String::slotlimit [static], [protected]¶
const unsigned ost::String::slotsize [static], [protected]¶
char* ost::String::text¶
char ost::String::text[(sizeof(char *)+(sizeof(size_t)*2)+1)]¶
Author¶
Generated automatically by Doxygen for GNU CommonC++ from the source code.Sun Dec 29 2013 | GNU CommonC++ |