class TXmlEngString : public TXmlEngConstString |
General-purpose string used in libxml2-based API's.
This class holds a zero-terminated sequence of bytes (c-style string). It is commonly used to represent a sequence of UTF-8 characters.
TXmlEngString objects should be treated as if they were pointers. The destructor for TXmlEngString does nothing. This means that the developer needs to free the memory allocated by TXmlEngString by calling Free() or Close() (Close() is an alias for Free()) and to do so only once.
The reason for this design is that the goal is to have a string class that is as small as a one-pointer sized object that is mostly stored on the stack, not on the heap (and therefore no additional memory allocation is required). It is also as flexible as possible to allow developers to create their own derived classes which may provide auto_ptr-like or reference counting solutions.
The contents of this class can be replaced, destroyed, copied and converted to c strings and Symbian descriptor types.
The contents of TXmlEngString may also be modified with AppendL().
When TXmlEngString is the return type in libxml2 based API's, this usually indicates that a string has been newly allocated, which should be freed by the method caller.
Public Member Functions | |
---|---|
TXmlEngString() | |
TXmlEngString(char *) | |
IMPORT_C HBufC * | AllocAndFreeL() |
IMPORT_C HBufC * | AllocAndFreeLC() |
IMPORT_C void | AppendL(TXmlEngString) |
IMPORT_C void | AppendL(TXmlEngString, TXmlEngString) |
void | Close() |
IMPORT_C void | Free() |
TXmlEngString | PushL() |
void | Set(char *) |
IMPORT_C void | Set(TXmlEngString &) |
IMPORT_C void | SetL(const TDesC &) |
IMPORT_C void | SetL(const TDesC8 &) |
Protected Member Functions | |
---|---|
TXmlEngString(const TXmlEngConstString &) |
Inherited Attributes | |
---|---|
TXmlEngConstString::iString |
TXmlEngString | ( | char * | aString | ) | [inline] |
char * aString | A heap-based c string |
TXmlEngString | ( | const TXmlEngConstString & | aStr | ) | [protected, inline] |
Constructs the object from a TXmlEngConstString
const TXmlEngConstString & aStr | The string to initialize from |
IMPORT_C HBufC * | AllocAndFreeL | ( | ) |
Creates a new UTF-16 HBufC from the UTF-8 string contents and transfers ownership of the string. The string held by this object is freed.
... HBufC* attrValue = attr.WholeValueCopyL().AllocAndFreeL(); ...
The copied string
leave
KErrNoMemory Memory allocation failure
leave
KUriUtilsCannotConvert String cannot be converted
IMPORT_C HBufC * | AllocAndFreeLC | ( | ) |
Creates a new UTF-16 HBufC from the UTF-8 string contents and transfers ownership of the string. The result is placed on the cleanup stack. The string held by this object is freed.
... HBufC* attrValue = attr.WholeValueCopyL().AllocAndFreeL(); ...
The copied string
leave
KErrNoMemory Memory allocation failure
leave
KUriUtilsCannotConvert String cannot be converted
IMPORT_C void | AppendL | ( | TXmlEngString | aStr | ) |
Appends new text to the string leave
KErrNoMemory Memory allocation failure
TXmlEngString aStr | The string to add |
IMPORT_C void | AppendL | ( | TXmlEngString | aStr1, |
TXmlEngString | aStr2 | |||
) |
Appends new text to the string. leave
KErrNoMemory Memory allocation failure
TXmlEngString aStr1 | The first string to append |
TXmlEngString aStr2 | The second string to append |
TXmlEngString | PushL | ( | ) | [inline] |
Pushes this string to the cleanup stack. This must be matched with a corresponding call to CleanupStack::Pop() or CleanupStack::PopAndDestroy(). This object
leave
KErrNoMemory Memory allocation failure
IMPORT_C void | Set | ( | TXmlEngString & | aSrc | ) |
Transfers a string and its ownership from another TXmlEngString object. If this object currently stores a string it is freed.
TXmlEngString & aSrc | The source string |