OWBI1::String Class Reference

This String class is an abstract data type that represents as NULL terminated string of characters. More...

#include <OWBI1_String.hpp>

Collaboration diagram for OWBI1::String:

Collaboration graph
[legend]
List of all members.

Public Types

typedef COWIntrusiveReference<
ByteBuf
buf_t
enum  ETakeOwnershipFlag { E_TAKE_OWNERSHIP }
enum  EReturnDelimitersFlag { E_DISCARD_DELIMITERS, E_RETURN_DELIMITERS }
enum  EEmptyTokenReturnFlag { E_SKIP_EMPTY_TOKENS, E_RETURN_EMPTY_TOKENS }
enum  EIgnoreCaseFlag { E_CASE_SENSITIVE, E_CASE_INSENSITIVE }

Public Member Functions

 String ()
 Create a new String object with a length of 0.
 String (Int32 val)
 Create a new String object that will hold the string representation of the given Int32 value.
 String (UInt32 val)
 Create a new String object that will hold the string representation of the given UInt32 value.
 String (Int64 val)
 Create a new String object that will hold the string representation of the given Int64 value.
 String (UInt64 val)
 Create a new String object that will hold the string representation of the given UInt64 value.
 String (Real32 val)
 Create a new String object that will hold the string representation of the given Real32 value.
 String (Real64 val)
 Create a new String object that will hold the string representation of the given Real64 value.
 String (const char *str)
 Create a new String object that will contain a copy of the given character string.
 String (ETakeOwnershipFlag, char *allocatedMemory, size_t len)
 Create a new string object from a dynamically allocated buffer.
 String (const char *str, size_t len)
 Create s new String object that will contain a copy of the given character string for the given length.
 String (const String &arg)
 Create a new String object that is a copy of another String object.
 String (char c)
 Create a new String object that contains a single character.
 ~String ()
 Destroy this String object.
void swap (String &x)
 Swap this instance with another.
char * allocateCString () const
 Create a null terminated string that contains the contents of this String.
size_t length () const
size_t UTF8Length () const
 If the string is not valid UTF-8, then the result of this function is undefined.
bool empty () const
int format (const char *fmt,...)
 Format this string according to the given format and variable argument list (printf style).
StringArray tokenize (const char *delims=" \n\r\t\v", EReturnDelimitersFlag returnDelimitersAsTokens=E_DISCARD_DELIMITERS, EEmptyTokenReturnFlag returnEmptyTokens=E_SKIP_EMPTY_TOKENS) const
 Tokenize this String object using the given delimeters.
const char * c_str () const
char charAt (size_t ndx) const
 Get the character at a specified index.
int compareTo (const String &arg) const
 Compare another String object with this one.
int compareTo (const char *arg) const
 Compare another string with this one.
int compareToIgnoreCase (const String &arg) const
 Compare another string with this one ignoring case.
int compareToIgnoreCase (const char *arg) const
 Compare another string with this one ignoring case.
Stringconcat (const char *arg)
 Append a C string to this String object.
Stringconcat (const String &arg)
 Append another String object to this String object.
Stringconcat (char arg)
 Append a char to this String object.
bool endsWith (const char *arg, EIgnoreCaseFlag ignoreCase=E_CASE_SENSITIVE) const
 Determine if this String object ends with given C string.
bool endsWith (const String &arg, EIgnoreCaseFlag ignoreCase=E_CASE_SENSITIVE) const
 Determine if this String object ends with the same string represented by another String object.
bool endsWith (char arg) const
 Determine if this String object ends with a given character.
bool equals (const String &arg) const
 Determine if another String object is equal to this String object.
bool equals (const char *arg) const
 Determine if another string is equal to this String object.
bool equalsIgnoreCase (const String &arg) const
 Determine if another String object is equal to this String object, ignoring case in the comparision.
bool equalsIgnoreCase (const char *arg) const
 Determine if another string is equal to this String object, ignoring case in the comparision.
UInt32 hashCode () const
size_t indexOf (char ch, size_t fromIndex=0) const
 Find the first occurence of a given character in this String object.
size_t indexOf (const char *arg, size_t fromIndex=0) const
 Find the first occurence of a C string in this String object.
size_t indexOf (const String &arg, size_t fromIndex=0) const
 Find the first occurence of a string in this String object.
size_t lastIndexOf (char ch, size_t fromIndex=npos) const
 Find the last occurence of a character in this String object.
size_t lastIndexOf (const char *arg, size_t fromIndex=npos) const
 Find the last occurence of a C string in this String object.
size_t lastIndexOf (const String &arg, size_t fromIndex=npos) const
 Find the last occurence of a string in this String object.
bool startsWith (const char *arg, EIgnoreCaseFlag ignoreCase=E_CASE_SENSITIVE) const
 Determine if this String object starts with a given substring.
bool startsWith (const String &arg, EIgnoreCaseFlag ignoreCase=E_CASE_SENSITIVE) const
 Determine if this String object starts with a given substring.
bool startsWith (char arg) const
 Determine if this String object starts with a given character.
String substring (size_t beginIndex, size_t length=npos) const
 Create another String object that is comprised of a substring of this String object.
bool isSpaces () const
StringtoLowerCase ()
 Convert this String object to lower case characters.
StringtoUpperCase ()
 Convert this String object to upper case characters.
Stringltrim ()
 Strip all leading space characters from this String object.
Stringrtrim ()
 Strip all trailing space characters from this String object.
Stringtrim ()
 Strip all leading and trailing space characters from this String object.
Stringerase ()
 Delete all the characters of the string.
Stringerase (size_t idx, size_t len=npos)
 Erases, at most, len characters of *this, starting at index idx.
Stringoperator= (const String &arg)
 Assignment operator.
const char & operator[] (size_t ndx) const
 Operator [].
char & operator[] (size_t ndx)
Stringoperator+= (const String &arg)
 Concatination operator.
Stringoperator+= (const char *arg)
 Concatination operator.
Stringoperator+= (char arg)
 Character concatination operator.
void readObject (std::istream &istrm)
 Read this String object from the given istream.
void writeObject (std::ostream &ostrm) const
 Write this String object to the given ostream.
String toString () const
Real32 toReal32 () const
Real64 toReal64 () const
bool toBool () const
UInt8 toUInt8 (int base=10) const
Int8 toInt8 (int base=10) const
UInt16 toUInt16 (int base=10) const
Int16 toInt16 (int base=10) const
UInt32 toUInt32 (int base=10) const
Int32 toInt32 (int base=10) const
UInt64 toUInt64 (int base=10) const
Int64 toInt64 (int base=10) const
unsigned int toUnsignedInt (int base=10) const
int toInt (int base=10) const

Static Public Member Functions

static unsigned long long int strtoull (const char *nptr, char **endptr, int base)
 Convert a null terminated string to an unsigned 64 bit value.
static long long int strtoll (const char *nptr, char **endptr, int base)
 Convert a null terminated string to an signed 64 bit value.
static const char * strchr (const char *theStr, int c)
 Find the first occurrence of a character in a null terminated string.
static String getLine (std::istream &istr)
 Reads from in input stream until a newline is encountered.

Static Public Attributes

static const size_t npos = ~0

Private Attributes

buf_t m_buf

Classes

class  ByteBuf

Detailed Description

This String class is an abstract data type that represents as NULL terminated string of characters.

String objects are ref counted and copy on write. Internal representation is UTF-8. Conversion to/from Char16 (UCS-2) is performed correctly. All operations that return/take an offset are based on the character array as if this were an ASCII string. The class does not enforce or maintain the integrity of any UTF-8 chars. length() returns the size in bytes of the string. Use UTF8Length() to get the number of chars in the string.

Definition at line 63 of file OWBI1_String.hpp.


Member Typedef Documentation

typedef COWIntrusiveReference<ByteBuf> OWBI1::String::buf_t
 

Definition at line 698 of file OWBI1_String.hpp.


Member Enumeration Documentation

enum OWBI1::String::EEmptyTokenReturnFlag
 

Enumerator:
E_SKIP_EMPTY_TOKENS 
E_RETURN_EMPTY_TOKENS 

Definition at line 215 of file OWBI1_String.hpp.

enum OWBI1::String::EIgnoreCaseFlag
 

Enumerator:
E_CASE_SENSITIVE 
E_CASE_INSENSITIVE 

Definition at line 303 of file OWBI1_String.hpp.

enum OWBI1::String::EReturnDelimitersFlag
 

Enumerator:
E_DISCARD_DELIMITERS 
E_RETURN_DELIMITERS 

Definition at line 210 of file OWBI1_String.hpp.

enum OWBI1::String::ETakeOwnershipFlag
 

Enumerator:
E_TAKE_OWNERSHIP 

Definition at line 136 of file OWBI1_String.hpp.


Constructor & Destructor Documentation

OWBI1::String::String  ) 
 

Create a new String object with a length of 0.

Definition at line 157 of file OWBI1_String.cpp.

Referenced by substring(), tokenize(), and trim().

OWBI1::String::String Int32  val  )  [explicit]
 

Create a new String object that will hold the string representation of the given Int32 value.

Parameters:
val The 32 bit value this String will hold the string representation of.

Definition at line 165 of file OWBI1_String.cpp.

References OWBI1::AutoPtrVec< X >::get(), and m_buf.

OWBI1::String::String UInt32  val  )  [explicit]
 

Create a new String object that will hold the string representation of the given UInt32 value.

Parameters:
val The 32 bit value this String will hold the string representation of.

Definition at line 175 of file OWBI1_String.cpp.

References OWBI1::AutoPtrVec< X >::get(), and m_buf.

OWBI1::String::String Int64  val  )  [explicit]
 

Create a new String object that will hold the string representation of the given Int64 value.

Parameters:
val The 64 bit value this String will hold the string representation of.

Definition at line 210 of file OWBI1_String.cpp.

References m_buf.

OWBI1::String::String UInt64  val  )  [explicit]
 

Create a new String object that will hold the string representation of the given UInt64 value.

Parameters:
val The 64 bit value this String will hold the string representation of.

Definition at line 218 of file OWBI1_String.cpp.

References m_buf.

OWBI1::String::String Real32  val  )  [explicit]
 

Create a new String object that will hold the string representation of the given Real32 value.

Parameters:
val The real value this String will hold the string representation of.

Definition at line 235 of file OWBI1_String.cpp.

References m_buf, and SNPRINTF.

OWBI1::String::String Real64  val  )  [explicit]
 

Create a new String object that will hold the string representation of the given Real64 value.

Parameters:
val The real value this String will hold the string representation of.

Definition at line 251 of file OWBI1_String.cpp.

References m_buf, and SNPRINTF.

OWBI1::String::String const char *  str  ) 
 

Create a new String object that will contain a copy of the given character string.

Parameters:
str The null terminated string to make a copy of.

Definition at line 267 of file OWBI1_String.cpp.

References m_buf.

OWBI1::String::String ETakeOwnershipFlag  ,
char *  allocatedMemory,
size_t  len
[explicit]
 

Create a new string object from a dynamically allocated buffer.

The buffer is assumed to contain a valid c string and be previously allocated with the new operator. The memory given by the allocatedMemory parameter will be deallocated by the String class.

Parameters:
takeOwnerShipTag This parm is not used. It is here to differentiate this constructor from the others.
allocatedMemory The dynamically allocated string that will be used by this String. Must not be NULL.
len The length of the string allocatedMemory.

Definition at line 273 of file OWBI1_String.cpp.

References m_buf, and OW_ASSERT.

OWBI1::String::String const char *  str,
size_t  len
[explicit]
 

Create s new String object that will contain a copy of the given character string for the given length.

Parameters:
str The character array to copy from.
len The number of bytes to copy from the str param.

Definition at line 281 of file OWBI1_String.cpp.

References OWBI1::AutoPtrVec< X >::get(), and m_buf.

OWBI1::String::String const String arg  ) 
 

Create a new String object that is a copy of another String object.

Upon return, both String objects will point to the same underlying character buffer. This state will remain until one of the 2 String objects is modified (copy on write)

Parameters:
arg The String object to make a copy of.

Definition at line 297 of file OWBI1_String.cpp.

OWBI1::String::String char  c  )  [explicit]
 

Create a new String object that contains a single character.

Parameters:
c The character that this string will contain.

Definition at line 302 of file OWBI1_String.cpp.

References m_buf.

OWBI1::String::~String  ) 
 

Destroy this String object.

Definition at line 318 of file OWBI1_String.cpp.


Member Function Documentation

char * OWBI1::String::allocateCString  )  const
 

Create a null terminated string that contains the contents of this String.

The returned pointer MUST be deleted by the caller using free().

Returns:
A pointer to the newly allocated buffer that contains the contents of this String object.

Definition at line 329 of file OWBI1_String.cpp.

References c_str(), and length().

const char * OWBI1::String::c_str  )  const
 

Returns:
The c string representation of this String object. This will be a null terminated character array.

Definition at line 894 of file OWBI1_String.cpp.

References m_buf.

Referenced by allocateCString(), OWBI1::StringBuffer::append(), OWBI1::Char16::Char16(), compareTo(), compareToIgnoreCase(), concat(), OWBI1::CIMValue::createSimpleValue(), endsWith(), equals(), equalsIgnoreCase(), OWBI1::CIMObjectPath::escape(), OWBI1::CIMValue::get(), OWBI1::CIMDataType::getDataType(), OWBI1::BI1SimpleInstanceProviderIFC::getInstance(), OWBI1::CIMObjectPath::getKeyT(), OWBI1::CIMInstance::getPropertyT(), OWBI1::CIMProperty::getQualifierT(), indexOf(), lastIndexOf(), OWBI1::operator<<(), OWBI1::CIMName::operator=(), OWBI1::operator==(), OWBI1::TempFileEnumerationImplBase::readSize(), OWBI1::CIMQualifier::setLanguage(), OWBI1::CIMInstance::setLanguage(), OWBI1::CIMNameSpace::setNameSpace(), startsWith(), OWBI1::StringBuffer::StringBuffer(), OWBI1::CIMDataType::strToSimpleType(), toBool(), OWBI1::CIMValue::toString(), OWBI1::CIMObjectPath::unEscape(), and UTF8Length().

char OWBI1::String::charAt size_t  ndx  )  const
 

Get the character at a specified index.

Parameters:
ndx The index of the character to return within the char array.
Returns:
The character at the given index within the array. If the index is out of bounds, then a 0 is returned.

Definition at line 383 of file OWBI1_String.cpp.

References m_buf.

int OWBI1::String::compareTo const char *  arg  )  const
 

Compare another string with this one.

Parameters:
arg The string to compare with this one.
Returns:
0 if this String object is equal to arg. Greater than 0 if this String object is greater than arg. Less than 0 if this String object is less than arg.

Definition at line 389 of file OWBI1_String.cpp.

References m_buf.

int OWBI1::String::compareTo const String arg  )  const
 

Compare another String object with this one.

Parameters:
arg The String object to compare with this one.
Returns:
0 if this String object is equal to arg. Greater than 0 if this String object is greater than arg. Less than 0 if this String object is less than arg.

Definition at line 400 of file OWBI1_String.cpp.

References c_str().

Referenced by equals(), OWBI1::operator!=(), OWBI1::operator<(), OWBI1::operator<=(), OWBI1::operator==(), OWBI1::operator>(), OWBI1::operator>=(), and OWBI1::strncmpi().

int OWBI1::String::compareToIgnoreCase const char *  arg  )  const
 

Compare another string with this one ignoring case.

Parameters:
arg The string to compare with this one.
Returns:
0 if this String object is equal to arg. Greater than 0 if this String object is greater than arg. Less than 0 if this String object is less than arg.

Definition at line 406 of file OWBI1_String.cpp.

References OW_NAMESPACE::UTF8Utils::compareToIgnoreCase(), and m_buf.

int OWBI1::String::compareToIgnoreCase const String arg  )  const
 

Compare another string with this one ignoring case.

Parameters:
arg The string to compare with this one.
Returns:
0 if this String object is equal to arg. Greater than 0 if this String object is greater than arg. Less than 0 if this String object is less than arg.

Definition at line 417 of file OWBI1_String.cpp.

References c_str().

Referenced by equalsIgnoreCase().

String & OWBI1::String::concat char  arg  ) 
 

Append a char to this String object.

Parameters:
arg The char to append to this String object.
Returns:
A reference to this String object.

Definition at line 443 of file OWBI1_String.cpp.

References OWBI1::AutoPtrVec< X >::get(), length(), and m_buf.

String& OWBI1::String::concat const String arg  )  [inline]
 

Append another String object to this String object.

Parameters:
arg The String object to append to this String object.
Returns:
A reference to this String object.

Definition at line 292 of file OWBI1_String.hpp.

References c_str().

String & OWBI1::String::concat const char *  arg  ) 
 

Append a C string to this String object.

Parameters:
arg The C string to append to this String object.
Returns:
A reference to this String object.

Definition at line 424 of file OWBI1_String.cpp.

References length(), and m_buf.

bool OWBI1::String::empty  )  const [inline]
 

Returns:
True if empty string, false otherwise

Definition at line 200 of file OWBI1_String.hpp.

Referenced by OWBI1::CIMNameSpace::CIMNameSpace(), OWBI1::CIMObjectPath::parse(), OWBI1::Logger::processLogMessage(), and tokenize().

bool OWBI1::String::endsWith char  arg  )  const
 

Determine if this String object ends with a given character.

Parameters:
arg The character to test for.
Returns:
true if this String ends with the given character. Otherwise return false.

Definition at line 460 of file OWBI1_String.cpp.

References m_buf.

bool OWBI1::String::endsWith const String arg,
EIgnoreCaseFlag  ignoreCase = E_CASE_SENSITIVE
const [inline]
 

Determine if this String object ends with the same string represented by another String object.

Parameters:
arg The String object to search the end of this String object for.
ignoreCase If true, character case will be ignored.
Returns:
true if this String ends with the given String. Otherwise return false.

Definition at line 327 of file OWBI1_String.hpp.

References c_str().

bool OWBI1::String::endsWith const char *  arg,
EIgnoreCaseFlag  ignoreCase = E_CASE_SENSITIVE
const
 

Determine if this String object ends with given C string.

Parameters:
arg The C string object to search the end of this String object for.
ignoreCase If true, character case will be ignored.
Returns:
true if this String ends with the given String. Otherwise return false.

Definition at line 469 of file OWBI1_String.cpp.

References OW_NAMESPACE::UTF8Utils::compareToIgnoreCase(), length(), and m_buf.

bool OWBI1::String::equals const char *  arg  )  const
 

Determine if another string is equal to this String object.

Parameters:
arg The string to check this String object against for equality.
Returns:
true if this String object is equal to the given String object. Otherwise return false.

Definition at line 493 of file OWBI1_String.cpp.

References compareTo().

bool OWBI1::String::equals const String arg  )  const
 

Determine if another String object is equal to this String object.

Parameters:
arg The String object to check this String object against for equality.
Returns:
true if this String object is equal to the given String object. Otherwise return false.

Definition at line 499 of file OWBI1_String.cpp.

References c_str().

Referenced by OWBI1::decodeLongMonth(), and OWBI1::operator==().

bool OWBI1::String::equalsIgnoreCase const char *  arg  )  const
 

Determine if another string is equal to this String object, ignoring case in the comparision.

Parameters:
arg The string to check this String object against for equality.
Returns:
true if this String object is equal to the given String object. Otherwise return false.

Definition at line 505 of file OWBI1_String.cpp.

References compareToIgnoreCase().

bool OWBI1::String::equalsIgnoreCase const String arg  )  const
 

Determine if another String object is equal to this String object, ignoring case in the comparision.

Parameters:
arg The String object to check this String object against for equality.
Returns:
true if this String object is equal to the given String object. Otherwise return false.

Definition at line 511 of file OWBI1_String.cpp.

References c_str().

Referenced by OWBI1::Logger::setLogLevel(), and toBool().

String & OWBI1::String::erase size_t  idx,
size_t  len = npos
 

Erases, at most, len characters of *this, starting at index idx.

if len == npos, erase to the end of the string.

Returns:
A referernce to this object.

Definition at line 817 of file OWBI1_String.cpp.

References length(), npos, and substring().

String & OWBI1::String::erase  ) 
 

Delete all the characters of the string.

Thus, the string is empty after the call.

Returns:
A referernce to this object.

Definition at line 810 of file OWBI1_String.cpp.

References m_buf.

Referenced by OWBI1::WQLSelectStatement::clear().

int OWBI1::String::format const char *  fmt,
  ...
 

Format this string according to the given format and variable argument list (printf style).

Parameters:
fmt The format to use during the operation
... A variable argument list to be applied to the format
Returns:
The length of the string after the operation on success. npos on error.

Definition at line 353 of file OWBI1_String.cpp.

References OWBI1::AutoPtrVec< X >::get(), length(), and m_buf.

static String OWBI1::String::getLine std::istream &  istr  )  [static]
 

Reads from in input stream until a newline is encountered.

This consumes the newline character (but doesn't put the newline in the return value), and leaves the file pointer at the char past the newline.

Returns:
an String containing the line.

UInt32 OWBI1::String::hashCode  )  const
 

Returns:
a 32 bit hashcode of this String object.

Definition at line 517 of file OWBI1_String.cpp.

References i, length(), and m_buf.

size_t OWBI1::String::indexOf const String arg,
size_t  fromIndex = 0
const [inline]
 

Find the first occurence of a string in this String object.

Parameters:
arg The string to search for.
fromIndex The index to start the search from.
Returns:
The index of the given string in the underlying array if it was found. npos if the string was not found at or after the fromIndex.

Definition at line 402 of file OWBI1_String.hpp.

References c_str().

size_t OWBI1::String::indexOf const char *  arg,
size_t  fromIndex = 0
const
 

Find the first occurence of a C string in this String object.

Parameters:
arg The C string to search for.
fromIndex The index to start the search from.
Returns:
The index of the given string in the underlying array if it was found. npos if the string was not found at or after the fromIndex.

Definition at line 559 of file OWBI1_String.cpp.

References length(), m_buf, and npos.

size_t OWBI1::String::indexOf char  ch,
size_t  fromIndex = 0
const
 

Find the first occurence of a given character in this String object.

Parameters:
ch The character to search for.
fromIndex<