Public Types | Public Member Functions | Static Public Member Functions

SEString Class Reference

SEString is basic char* based string class. More...

#include <skype-string.h>

Inheritance diagram for SEString:

List of all members.

Public Types

typedef unsigned long long uint64

Public Member Functions

 SEString ()
 SEString (const char *str)
 SEString (const SEString &str)
 ~SEString ()
 operator const char * () const
const char * data () const
size_t size () const
size_t length () const
bool isNull () const
bool isEmpty () const
bool isBinary () const
bool startWith (const SEString &str) const
SEString right (size_t len) const
SEString trim (const SEString &str) const
SEString substr (int from, int to) const
SEString deepCopy () const
unsigned int hash (unsigned int size=1) const
bool equals (const SEString &str) const
bool equals (const char *str) const
int find (char c) const
int find (int startpos, char c) const
SEStringoperator+= (const SEString &str)
SEStringoperator+= (const char *str)
SEStringoperator= (const SEString &str)
SEStringoperator= (const char *str)
bool toBool () const
int toInt () const
unsigned int toUInt () const
uint64 toUInt64 () const
size_t toBinary (char *bin) const
SEString getHexRepresentation () const
void Format (const char *format, va_list arglist)
void Format (const char *format,...)

Static Public Member Functions

static const SEString from (int n)
static const SEString from (unsigned int u, unsigned int base=10)
static const SEString from (bool b)
static const SEString from (char *bin, unsigned int len)
static const SEString from (unsigned char chr)
static const SEString Compose (const char *format,...)

Detailed Description

SEString is basic char* based string class.

SEString uses implicit sharing (i.e. reference counting). In all of the SEString methods that take const char * parameters, the const char * is interpreted as a classic C-style '\0'-terminated ASCII string. A SEString that has not been assigned to anything is null, i.e. both the length and data pointer is 0. A SEString that references the empty string ("", a single '\0' char) is empty. Use if ( !str.isNull() ) to check for a non-null string.

This class is not thread-safe. Make sure to use deepCopy() when passing between threads.

Examples:

tutorial_1.cpp, tutorial_10.cpp, tutorial_11.cpp, tutorial_12.cpp, tutorial_13.cpp, tutorial_14.cpp, tutorial_15.cpp, tutorial_16.cpp, tutorial_2.cpp, tutorial_3.cpp, tutorial_4.cpp, tutorial_5.cpp, tutorial_6.cpp, tutorial_7.cpp, tutorial_8.cpp, and tutorial_9.cpp.

Definition at line 25 of file skype-string.h.


Member Typedef Documentation

typedef unsigned long long SEString::uint64

Definition at line 187 of file skype-string.h.


Constructor & Destructor Documentation

SEString::SEString (  )  [inline]

Constructs a null string, i.e. both the length and data pointer are 0. See also isNull().

Definition at line 311 of file skype-string.h.

SEString::SEString ( const char *  str  )  [inline]

Constructs a string that is a deep copy of str, interpreted as a classic C string. If str is 0, then a null string is created.

Definition at line 317 of file skype-string.h.

SEString::SEString ( const SEString str  )  [inline]

Constructs an implicitly shared copy of str. This is very fast since it only involves incrementing a reference count.

Parameters:
str is a string to copy

Definition at line 323 of file skype-string.h.

SEString::~SEString (  )  [inline]

Destroys the string and frees the string's data if this is the last reference to the string.

Definition at line 329 of file skype-string.h.


Member Function Documentation

static const SEString SEString::Compose ( const char *  format,
  ... 
) [inline, static]

Definition at line 231 of file skype-string.h.

References Format().

const char* SEString::data ( void   )  const [inline]

Definition at line 105 of file skype-string.h.

References operator const char *().

SEString SEString::deepCopy (  )  const

Creates a copy of the string that can be passed between threads.

Definition at line 562 of file skype-string.cpp.

bool SEString::equals ( const SEString str  )  const

Returns true if str is equal to the string; otherwise returns false. Note that a null string is not equal to a not-null empty string.

Definition at line 597 of file skype-string.cpp.

References isNull().

bool SEString::equals ( const char *  str  )  const

Returns true if str is equal to the string; otherwise returns false. Note that a null string is not equal to a not-null empty string.

Definition at line 608 of file skype-string.cpp.

References isNull().

int SEString::find ( char  c  )  const

Finds the first occurrence of the character.

Returns:
Returns the position of c or -1 if c could not be found.

Definition at line 619 of file skype-string.cpp.

References isNull().

int SEString::find ( int  startpos,
char  c 
) const

Definition at line 632 of file skype-string.cpp.

References isNull().

void SEString::Format ( const char *  format,
va_list  arglist 
)

Definition at line 658 of file skype-string.cpp.

void SEString::Format ( const char *  format,
  ... 
) [inline]

Definition at line 214 of file skype-string.h.

References Format().

const SEString SEString::from ( unsigned int  u,
unsigned int  base = 10 
) [static]

Converts an integer into a SEString using the given base. Only base 10 and 16 are supported.

Definition at line 269 of file skype-string.cpp.

References SEString().

const SEString SEString::from ( unsigned char  chr  )  [static]

Definition at line 259 of file skype-string.cpp.

References SEString().

const SEString SEString::from ( char *  bin,
unsigned int  len 
) [static]

Converts a binary into a SEString.

Definition at line 295 of file skype-string.cpp.

const SEString SEString::from ( bool  b  )  [static]

Converts a boolean into a SEString.

Definition at line 281 of file skype-string.cpp.

References SEString().

const SEString SEString::from ( int  n  )  [static]

Converts an integer into a SEString.

Definition at line 250 of file skype-string.cpp.

References SEString().

SEString SEString::getHexRepresentation (  )  const

For binaries returns a string with the hexa representation

Definition at line 397 of file skype-string.cpp.

References isBinary(), length(), SEString(), and toBinary().

unsigned int SEString::hash ( unsigned int  size = 1  )  const

Returns a hashed value of the string. For internal use.

Definition at line 571 of file skype-string.cpp.

References isNull().

bool SEString::isBinary (  )  const

Checks if the string contains binary data

Definition at line 173 of file skype-string.cpp.

bool SEString::isEmpty (  )  const [inline]

Returns true if the string is empty, i.e. if length() == 0; otherwise returns false. Null strings are also empty. SEString a(""); a.isEmpty(); // TRUE a.isNull(); // FALSE

SEString b; b.isEmpty(); // TRUE b.isNull(); // TRUE

See also isNull() and length().

Examples:
tutorial_9.cpp.

Definition at line 339 of file skype-string.h.

References length().

bool SEString::isNull (  )  const [inline]

Returns true if the string is null; otherwise returns false. A null string is always empty. See also isEmpty() and length().

Definition at line 334 of file skype-string.h.

size_t SEString::length (  )  const

Returns the length of the string. Null strings and empty strings have zero length. See also isNull() and isEmpty().

Definition at line 165 of file skype-string.cpp.

References isNull().

SEString::operator const char * ( void   )  const

Returns a pointer to the string storing the data. If the string is null (as defined by isNull() == true), returns an empty string.

If you need to keep this string after the SEString object gets deleted, make a copy. In other words, the char* pointer is valid ONLY AS LONG as the corresponding SEString is valid. When the SEString gets deleted, the data get freed and the pointer is invalid.

Some examples:

 	// Works:
 	SEString skypeName = me->GetProp(Contact::P_SKYPENAME);
 	printf("CONTACT %s\n", (const char*)skypeName);
 	// Doesn't work, segmentation fault:
 	const char * skypeName = (const char *) me->GetProp(Contact::P_SKYPENAME);
 	printf("CONTACT %s\n", skypeName);
 	// Doesn't work:
 	const char * skypeName;
 	if (1) {
 		SEString skypeName_1 = me->GetProp(Contact::P_SKYPENAME);
 		skypeName = (const char *) skypeName_1;
 	} // skypeName_1 deleted here
 	printf("CONTACT %s\n", skypeName); // skypeName_1 has been deleted and the correponding data too
 	// Works:
 	SEString skypeName_1 = me->GetProp(Contact::P_SKYPENAME);
 	const char * skypeName = (const char *) skypeName_1;
 	printf("CONTACT %s\n", skypeName);
 

NB: The example above uses SEObject::GetProp() but in UI it is strongly discouraged to use GetProp(). SEObject::GetProps() or Skype::GetMultipleObjectsProps() should be used instead.

Definition at line 155 of file skype-string.cpp.

References isNull().

SEString & SEString::operator+= ( const SEString str  ) 

Appends str to the string and returns a reference to the string.

Definition at line 419 of file skype-string.cpp.

References isNull(), and length().

SEString & SEString::operator+= ( const char *  str  ) 

Appends str to the string and returns a reference to the string.

Definition at line 441 of file skype-string.cpp.

References isNull(), and length().

SEString & SEString::operator= ( const SEString str  ) 

Assigns a shallow copy of s to this string and returns a reference to this string. This is very fast because the string isn't actually copied.

Definition at line 464 of file skype-string.cpp.

SEString & SEString::operator= ( const char *  str  ) 

Assigns a deep copy of str, interpreted as a classic C string to this string and returns a reference to this string. If str is 0, then a null string is created. See also isNull().

Definition at line 473 of file skype-string.cpp.

SEString SEString::right ( size_t  len  )  const

Returns a string that contains the len rightmost characters of the string. If len is greater than the length of the string then the whole string is returned.

Definition at line 224 of file skype-string.cpp.

References isNull(), and length().

size_t SEString::size (  )  const [inline]

Returns the length of the string. Null strings and empty strings have zero length. See also isNull() and isEmpty().

Definition at line 113 of file skype-string.h.

References length().

bool SEString::startWith ( const SEString str  )  const

Returns true if the string starts with str; otherwise returns false.

Definition at line 178 of file skype-string.cpp.

References isNull(), and length().

SEString SEString::substr ( int  from,
int  to 
) const

Returns a section of the string. The returned string consists of the characters from position start to position end inclusive. If end is not specified, all fields from position start to the end of the string are included.

Definition at line 191 of file skype-string.cpp.

References isNull(), and length().

size_t SEString::toBinary ( char *  bin  )  const

Converts the string to a binary.

Parameters:
bin Initialized array to store the binary (use length() to get a big enough array)
Returns:
Size of the binary (which is likely to be smaller than length()). Returns 0 if the string is null.

Definition at line 366 of file skype-string.cpp.

References isBinary(), isNull(), and length().

bool SEString::toBool (  )  const

Converts the string to a boolean (works like atoi). Returns false on null strings.

Definition at line 334 of file skype-string.cpp.

References isNull().

int SEString::toInt (  )  const

DEPRECATED: Use toUInt instead.

Definition at line 342 of file skype-string.cpp.

References isNull().

unsigned int SEString::toUInt (  )  const

Converts the string to an unsigned integer (like strtoul(.. 10). Returns 0 on null strings.

Examples:
tutorial_16.cpp.

Definition at line 350 of file skype-string.cpp.

References isNull().

SEString::uint64 SEString::toUInt64 (  )  const

Converts the string to an unsigned 64 bits integer (like strtoul(.. 10). Returns 0 on null strings.

Definition at line 358 of file skype-string.cpp.

References isNull().

SEString SEString::trim ( const SEString str  )  const

Removes str from the string.

Definition at line 240 of file skype-string.cpp.

References length(), right(), and startWith().


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

(c) Skype Technologies S.A. Confidential/Proprietary

Last updated: Fri Mar 16 2012