Location:
e32des8.h
Link against: euser.lib
class TDes8 : public TDesC8;
Abstract base class for 8-bit modifiable descriptors.
The class encapsulates the data member containing the maximum length of data represented by an 8-bit descriptor. It also provides member functions through which the data can be modified.
The class adds to the behaviour provided by TDesC8
.
This class cannot be instantiated as it is intended to form part of a class hierarchy; it provides a well defined part of descriptor behaviour. It can, however, be passed as an argument type for functions which need to both modify and access descriptor data.
TDesC8
- Abstract base class for 8-bit non-modifiable descriptors
TDes8
- Abstract base class for 8-bit modifiable descriptors
Defined in TDes8
:
Append()
, Append()
, Append()
, Append()
, AppendFill()
, AppendFormat()
, AppendFormat()
, AppendFormatList()
, AppendJustify()
, AppendJustify()
, AppendJustify()
, AppendJustify()
, AppendNum()
, AppendNum()
, AppendNum()
, AppendNumFixedWidth()
, AppendNumFixedWidthUC()
, AppendNumUC()
, Capitalize()
, Collapse()
, Collate()
, Copy()
, Copy()
, Copy()
, Copy()
, CopyC()
, CopyCP()
, CopyF()
, CopyLC()
, CopyUC()
, Delete()
, Expand()
, Fill()
, Fill()
, FillZ()
, FillZ()
, Fold()
, Format()
, FormatList()
, Insert()
, Justify()
, LeftTPtr()
, LowerCase()
, MaxLength()
, MaxSize()
, MidTPtr()
, MidTPtr()
, Num()
, Num()
, Num()
, NumFixedWidth()
, NumFixedWidthUC()
, NumUC()
, PtrZ()
, Repeat()
, Repeat()
, Replace()
, RightTPtr()
, SetLength()
, SetMax()
, Swap()
, TDes8()
, TDes8()
, Trim()
, TrimAll()
, TrimLeft()
, TrimRight()
, UpperCase()
, WPtr()
, Zero()
, ZeroTerminate()
, __DECLARE_TEST
, iMaxLength
, operator+=()
, operator=()
, operator=()
, operator=()
, operator[]()
, operator[]()
Inherited from TDesC8
:
Alloc()
,
AllocL()
,
AllocLC()
,
AtC()
,
Compare()
,
CompareC()
,
CompareF()
,
DoSetLength()
,
Find()
,
FindC()
,
FindF()
,
Left()
,
Length()
,
Locate()
,
LocateF()
,
LocateReverse()
,
LocateReverseF()
,
Match()
,
MatchC()
,
MatchF()
,
Mid()
,
Ptr()
,
Right()
,
Size()
,
Type()
,
operator!=()
,
operator>()
,
operator>=()
,
operator<()
,
operator<=()
,
operator==()
protected: inline TDes8(TInt aType, TInt aLength, TInt aMaxLength);
|
inline TDes8 &operator=(const TUint8 *aString);
Copies data into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
|
inline TDes8 &operator=(const TDesC8 &aDes);
Copies data into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
|
inline TDes8 &operator=(const TDes8 &aDes);
Copies data into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
|
inline TInt MaxLength() const;
Gets the maximum length of the descriptor.
This is the upper limit for the number of 8-bit values or data items that the descriptor can represent.
|
inline TInt MaxSize() const;
Gets the maximum size of the descriptor.
This is the upper limit for the number of bytes which the data represented by the descriptor can occupy.
|
inline const TUint8 &operator[](TInt anIndex) const;
Gets a const reference to a single data item within this descriptor's data.
|
|
|
inline TUint8 &operator[](TInt anIndex);
Gets a non-const reference to a single data item within this descriptor's data.
|
|
|
inline TDes8 &operator+=(const TDesC8 &aDes);
Appends data onto the end of this descriptor's data and returns a reference to this descriptor.
The length of this descriptor is incremented to reflect the new content.
|
|
|
IMPORT_C void SetLength(TInt aLength);
Sets the length of the data represented by the descriptor to the specified value.
|
|
IMPORT_C void SetMax();
Sets the length of the data to the maximum length of the descriptor.
IMPORT_C void Copy(const TDesC8 &aDes);
Copies data into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
IMPORT_C void Copy(const TUint8 *aBuf, TInt aLength);
Copies data into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
IMPORT_C void Copy(const TUint8 *aString);
Copies data into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
IMPORT_C void Copy(const TDesC16 &aDes);
Copies data into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
IMPORT_C void Append(TChar aChar);
Appends a character onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
|
|
IMPORT_C void Append(const TDesC8 &aDes);
Appends data onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
|
|
IMPORT_C void Append(const TDesC16 &aDes);
Appends data onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
|
|
IMPORT_C void Append(const TUint8 *aBuf, TInt aLength);
Appends data onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
|
|
IMPORT_C void Fill(TChar aChar);
Fills the descriptor's data area with the specified character, replacing any existing data.
The descriptor is filled from the beginning up to its current length. The descriptor's length does not change. It is not filled to its maximum length.
|
IMPORT_C void Fill(TChar aChar, TInt aLength);
Fills the descriptor's data area with the specified character, replacing any existing data.
The descriptor is filled with the specified number of characters. and its length is changed to reflect this.
|
|
IMPORT_C void FillZ();
Fills the descriptor's data area with binary zeroes, i.e. 0x00, replacing any existing data.
The descriptor is filled from the beginning up to its current length. The descriptor's length does not change. It is not filled to its maximum length.
IMPORT_C void FillZ(TInt aLength);
Fills the descriptor's data area with binary zeroes, i.e. 0x00, replacing any existing data, and changes its length.
The descriptor is filled with the specified number of binary zeroes. The descriptor's length is changed to reflect this.
|
|
IMPORT_C void Num(TInt64 aVal);
Converts the 64-bit signed integer into a decimal character representation and copies the conversion into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
If the integer is negative, the character representation is prefixed by a minus sign.
|
IMPORT_C void Num(TUint64 aVal, TRadix aRadix);
Converts the specified 64-bit unsigned integer into a character representation based on the specified number system and copies the conversion into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
When a hexadecimal conversion is specified, hexadecimal characters are in lower case.
|
IMPORT_C void NumFixedWidth(TUint aVal, TRadix aRadix, TInt aWidth);
Converts the specified unsigned integer into a fixed width character representation based on the specified number system and copies the conversion into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
The function generates the exact number of specified characters, either padding to the left with character zeroes or discarding low order characters as necessary.
When a hexadecimal conversion is specified, hexadecimal characters are in lower case.
This function is equivalent to using Format()
with parameters which specify:
1. a fixed length target field
2. padding with zero characters, for example "%08x".
When this is the case, always use NumFixedWidth()
in preference to Format()
as it is more efficient.
|
IMPORT_C void AppendNum(TInt64 aVal);
Converts the 64-bit signed integer into a decimal character representation and appends the conversion onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
If the integer is negative, the character representation is prefixed by a minus sign.
|
IMPORT_C void AppendNum(TUint64 aVal, TRadix aRadix);
Converts the specified 64-bit unsigned integer into a character representation based on the specified number system and appends the conversion onto the end of this descriptor's data. The length of this descriptor is incremented to reflect the new content
When a hexadecimal conversion is specified, hexadecimal characters are in lower case.
|
IMPORT_C void AppendNumFixedWidth(TUint aVal, TRadix aRadix, TInt aWidth);
Converts the specified unsigned integer into a fixed width character representation based on the specified number system and appends the conversion onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
The function generates the exact number of specified characters, either padding to the left with character zeroes or discarding low order characters as necessary.
When a hexadecimal conversion is specified, hexadecimal characters are in lower case.
|
IMPORT_C TPtr8 LeftTPtr(TInt aLength) const;
Extracts the leftmost part of the data.
The function does not cut or remove any data but constructs a modifiable pointer descriptor to represent the leftmost part of the data.
|
|
|
IMPORT_C TPtr8 RightTPtr(TInt aLength) const;
Extracts the rightmost part of the data.
The function does not cut or remove any data but constructs a modifiable pointer descriptor to represent the rightmost part of the data.
|
|
|
IMPORT_C TPtr8 MidTPtr(TInt aPos) const;
Extracts a portion of the data.
The function does not cut or remove any data but constructs a modifiable pointer descriptor to represent the defined portion.
The portion is identified by its starting position and by the length of the remainder of the data starting from the specified position.
|
|
|
IMPORT_C TPtr8 MidTPtr(TInt aPos, TInt aLength) const;
Extracts a portion of the data.
The function does not cut or remove any data but constructs a modifiable pointer descriptor to represent the defined portion.
The portion is identified by its starting position and by its length.
|
|
|
IMPORT_C const TUint8 *PtrZ();
Appends a zero terminator onto the end of this descriptor's data and returns a pointer to the data.
The length of the descriptor is not changed. It must, however, be strictly less than the descriptor's maximum length. This condition guarantees that there is sufficient space for the zero terminator.
|
|
IMPORT_C void CopyF(const TDesC8 &aDes);
Copies and folds data from the specified descriptor into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
Note that folding is locale-independent behaviour. It is also important to note that there can be no guarantee that folding is in any way culturally appropriate, and should not be used when dealing with strings in natural language.
|
|
IMPORT_C void CopyC(const TDesC8 &aDes);
Copies and collates data from the specified descriptor into this descriptor replacing any existing data.
The length of this descriptor is set to reflect the new data.
|
|
IMPORT_C void CopyLC(const TDesC8 &aDes);
Copies text from the specified descriptor and converts it to lower case before putting it into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
Conversion to lower case is implemented as appropriate to the current locale.
|
|
IMPORT_C void CopyUC(const TDesC8 &aDes);
Copies text from the specified descriptor and converts it to upper case before putting it into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
Conversion to upper case is implemented as appropriate to the current locale.
|
|
IMPORT_C void CopyCP(const TDesC8 &aDes);
Copies text from the specified descriptor and capitalises it before putting it into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
Capitalisation is implemented as appropriate to the current locale.
|
|
IMPORT_C void Swap(TDes8 &aDes);
Swaps the data represented by this descriptor with the data represented by the specified descriptor.
The lengths of both descriptors are swapped to reflect the change.
Note that each descriptor must be capable of accommodating the contents of the other descriptor.
|
|
IMPORT_C void AppendFill(TChar aChar, TInt aLength);
Appends and fills this descriptor with the specified character.
The descriptor is appended with the specified number of characters. and its length is changed to reflect this.
|
|
IMPORT_C void ZeroTerminate();
Appends a zero terminator onto the end of this descriptor's data.
The length of the descriptor is not changed. It must, however, be strictly less than the descriptor's maximum length. This condition guarantees that there is sufficient space for the zero terminator.
|
IMPORT_C void Fold();
Performs folding on the content of this descriptor.
Note that folding is locale-independent behaviour. It is also important to note that there can be no guarantee that folding is in any way culturally appropriate, and should not be used when dealing with strings in natural language.
IMPORT_C void LowerCase();
Converts the content of this descriptor to lower case.
Conversion is implemented as appropriate to the current locale.
IMPORT_C void UpperCase();
Converts the content of this descriptor to upper case.
Conversion is implemented as appropriate to the current locale.
IMPORT_C void Capitalize();
Capitalises the content of this descriptor.
Capitalisation is implemented as appropriate to the current locale.
IMPORT_C void Repeat(const TUint8 *aBuf, TInt aLength);
Copies data with repetition into this descriptor, from a memory location specified by pointer, replacing any existing data.
Copying proceeds until this descriptor is filled up to its current length. If it cannot contain a whole number of copies of the source data, then the last copy is truncated.
|
|
IMPORT_C void Repeat(const TDesC8 &aDes);
Copies data with repetition into this descriptor, from another descriptor, replacing any existing data.
Copying proceeds until this descriptor is filled up to its current length. If it cannot contain a whole number of copies of the source data, then the last copy is truncated.
|
IMPORT_C void Trim();
Deletes leading and trailing whitespace characters from the descriptor's data.
The length of the descriptor is reduced to reflect the loss of the whitespace characters.
IMPORT_C void TrimAll();
Deletes leading and trailing whitespace characters from the descriptor's data and replaces each contiguous set of whitespace characters within the data by one whitespace character.
The length of the descriptor is reduced to reflect the loss of the whitespace characters.
IMPORT_C void TrimLeft();
Deletes leading whitespace characters from the descriptor's data.
All whitespace characters up to, but not including the first non-whitespace character, are deleted.
The length of the descriptor is reduced to reflect the loss of the whitespace characters.
IMPORT_C void TrimRight();
Deletes trailing whitespace characters from the descriptor's data.
The process starts on the right hand side of the descriptor's data and proceeds to the left.
All whitespace characters up to, but not including the first non-whitespace character, are deleted.
The length of the descriptor is reduced to reflect the loss of the whitespace characters.
IMPORT_C void Insert(TInt aPos, const TDesC8 &aDes);
Inserts data into this descriptor.
The length of this descriptor is changed to reflect the extra data.
|
|
IMPORT_C void Delete(TInt aPos, TInt aLength);
Deletes data from this descriptor.
The length of this descriptor is changed to reflect the loss of data.
|
|
IMPORT_C void Replace(TInt aPos, TInt aLength, const TDesC8 &aDes);
Replaces data in this descriptor.
The specified length can be different to the length of the replacement data. The length of this descriptor changes to reflect the change of data.
|
|
IMPORT_C void Justify(const TDesC8 &aDes, TInt aWidth, TAlign anAlignment, TChar aFill);
Copies data into this descriptor and justifies it, replacing any existing data.
The length of this descriptor is set to reflect the new data.
The target area is considered to be an area of specified width positioned at the beginning of this descriptor's data area. Source data is copied into, and aligned within this target area according to the specified alignment instruction.
If the length of the target area is larger than the length of the source, then spare space within the target area is padded with the fill character.
|
|
IMPORT_C void NumFixedWidthUC(TUint aVal, TRadix aRadix, TInt aWidth);
Converts the specified unsigned integer into a fixed width character representation based on the specified number system and copies the conversion into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
The function generates the exact number of specified characters, either padding to the left with character zeroes or discarding low order characters as necessary.
When a hexadecimal conversion is specified, hexadecimal characters are in upper case.
This function is equivalent to using Format()
with parameters which specify:
1. a fixed length target field
2. padding with zero characters, for example "%08x".
When this is the case, always use NumFixedWidthUC()
in preference to Format()
as it is more efficient.
|
IMPORT_C void NumUC(TUint64 aVal, TRadix aRadix=EDecimal);
Converts the specified 64-bit unsigned integer into a character representation based on the specified number system and copies the conversion into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
When a hexadecimal conversion is specified, hexadecimal characters are in upper case.
|
IMPORT_C TInt Num(TReal aVal, const TRealFormat &aFormat) __SOFTFP;
Converts the specified floating point number into a character representation and copies the conversion into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
The character representation of the real number is dictated by the specified format.
Note that the function leaves if the iType data member of the specified TRealFormat
object has both an invalid character representation format (i.e. the format type) and invalid format flags.
1.KErrArgument - the supplied floating point number is not a valid number. The three characters NaN are appended to this descriptor.
2.KErrOverflow - the number is too large to represent. 2.1 For positive overflow, the three characters Inf are appended to this descriptor. 2.2 For negative overflow, the four characters -Inf are appended to this descriptor.
3.KErrUnderflow - the number is too small to represent. 3.1 For positive underflow, the three characters Inf are appended to this descriptor. 3.2 For negative underflow, the four characters -Inf are appended to this descriptor.
4.KErrGeneral - the conversion cannot be completed. There are a number of possible reasons for this, but the two most common
are: 4.1 the maximum number of characters necessary to represent the number, as defined in the TRealFormat
object, is greater than the maximum length of this descriptor 4.2 the character representation format (i.e. the format type),
as defined in the TRealFormat
object is not recognised.
|
|
IMPORT_C void AppendNumFixedWidthUC(TUint aVal, TRadix aRadix, TInt aWidth);
Converts the specified unsigned integer into a fixed width character representation based on the specified number system and appends the conversion onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
The function generates the exact number of specified characters, either padding to the left with character zeroes or discarding low order characters as necessary.
When a hexadecimal conversion is specified, hexadecimal characters are in upper case.
|
IMPORT_C TInt AppendNum(TReal aVal, const TRealFormat &aFormat) __SOFTFP;
Converts the specified floating point number into a character representation and appends the conversion onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
The character representation of the real number is dictated by the specified format.
1.KErrArgument - the supplied floating point number is not a valid number. The three characters NaN are appended to this descriptor.
2.KErrOverflow - the number is too large to represent. 2.1 For positive overflow, the three characters Inf are appended to this descriptor. 2.2 For negative overflow, the four characters -Inf are appended to this descriptor.
3.KErrUnderflow - the number is too small to represent. 3.1 For positive underflow, the three characters Inf are appended to this descriptor. 3.2 For negative underflow, the four characters -Inf are appended to this descriptor.
4.KErrGeneral - the conversion cannot be completed. There are a number of possible reasons for this, but the two most common
are: 4.1 the maximum number of characters necessary to represent the number, as defined in the TRealFormat
object, is greater than the maximum length of this descriptor 4.2 the character representation format (i.e. the format type),
as defined in the TRealFormat
object is not recognised
|
|
IMPORT_C void AppendNumUC(TUint64 aVal, TRadix aRadix=EDecimal);
Converts the specified 64-bit unsigned integer into a character representation based on the specified number system and appends the conversion onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
When a hexadecimal conversion is specified, hexadecimal characters are in upper case.
|
IMPORT_C void Format(TRefByValue< const TDesC8 > aFmt,...);
Formats and copies text into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
The function takes a format string and a variable number of arguments. The format string contains literal text embedded with directives for converting the trailing list of arguments into text.
The embedded directives are character sequences prefixed with the '%' character. The literal text is simply copied into this descriptor unaltered while the '%' directives are used to convert successive arguments from the trailing list.
The resulting stream of literal text and converted arguments is copied into this descriptor.
The syntax of the embedded directives follows one of four general patterns.
Note that formatting of single numerical values can be achieved more conveniently using the Num()
and NumUC()
member functions of this class.
The full description of the syntax of a format string cannot be included here. For full details, navigate to the Symbian OS guide, and follow the hierarchy of links:
Symbian OS Guide
Base
Using User Library (E32)
Buffers and Strings
Using Descriptors
How to Use Descriptors
Format string syntax
|
|
IMPORT_C void FormatList(const TDesC8 &aFmt, VA_LIST aList);
Formats and copies text into this descriptor, replacing any existing data.
The length of this descriptor is set to reflect the new data.
The behaviour of this function is the same as Format()
. In practice, it is better and easier to use Format()
, passing a variable number of arguments as required by the format string.
|
IMPORT_C void AppendJustify(const TDesC8 &Des, TInt aWidth, TAlign anAlignment, TChar aFill);
Appends data onto the end of this descriptor's data and justifies it.
The source of the appended data is an existing descriptor.
The target area is considered to be an area of specified width, immediately following this descriptor's existing data. Source data is copied into, and aligned within this target area according to the specified alignment instruction.
If the length of the target area is larger than the length of the source, then spare space within the target area is padded with the fill character.
|
|
IMPORT_C void AppendJustify(const TDesC8 &Des, TInt aLength, TInt aWidth, TAlign anAlignment, TChar aFill);
Appends data onto the end of this descriptor's data and justifies it.
The source of the appended data is an existing descriptor.
The target area is considered to be an area of specified width, immediately following this descriptor's existing data. Source data is copied into, and aligned within this target area according to the specified alignment instruction.
If the length of the target area is larger than the length of the source, then spare space within the target area is padded with the fill character.
|
|
IMPORT_C void AppendJustify(const TUint8 *aString, TInt aWidth, TAlign anAlignment, TChar aFill);
Appends a zero terminated string onto the end of this descriptor's data and justifies it.
The zero terminator is not copied.
The target area is considered to be an area of specified width, immediately following this descriptor's existing data. Source data is copied into, and aligned within, this target area according to the specified alignment instruction.
If the length of the target area is larger than the length of the source, then spare space within the target area is padded with the fill character.
|
|
IMPORT_C void AppendJustify(const TUint8 *aString, TInt aLength, TInt aWidth, TAlign anAlignment, TChar aFill);
Appends data onto the end of this descriptor's data and justifies it.
The source of the appended data is a memory location.
The target area is considered to be an area of specified width, immediately following this descriptor's existing data. Source data is copied into, and aligned within, this target area according to the specified alignment instruction.
If the length of the target area is larger than the length of the source, then spare space within the target area is padded with the fill character.
|
|
IMPORT_C void AppendFormat(TRefByValue< const TDesC8 > aFmt, TDes8Overflow *aOverflowHandler,...);
Formats and appends text onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
The function takes a format string and a variable number of arguments. The format string contains literal text, embedded with directives, for converting the trailing list of arguments into text.
The embedded directives are character sequences prefixed with the '%' character. The literal text is simply copied into this
descriptor unaltered while the '%' directives are used to convert successive arguments from the trailing list. See the description
of the Format()
function.
Literal text is appended on a character by character basis. If it results in the length of this descriptor exceeding its maximum length, then the function:
1. calls the Overflow() member function of the overflow handler, if an overflow handler is supplied 2 raises a USER 23 panic, if no overflow handler is supplied.
As much literal text as possible will have been copied into this descriptor and this descriptor will have reached its maximum length.
Text converted from a trailing argument is appended as a complete string. If an attempt to append this string fails because the resulting length of this descriptor would exceed its maximum length, then the function:
1. calls the Overflow() member function of the overflow handler, if an overflow handler is supplied
2 raises a USER 23 panic, if no overflow handler is supplied.
None of the generated text is appended and length of this descriptor may be less than the maximum.
|
|
IMPORT_C void AppendFormat(TRefByValue< const TDesC8 > aFmt,...);
Formats and appends text onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
The function takes a format string and a variable number of arguments. The format string contains literal text, embedded with directives, for converting the trailing list of arguments into text.
The embedded directives are character sequences prefixed with the '%' character. The literal text is simply copied into this
descriptor unaltered while the '%' directives are used to convert successive arguments from the trailing list. See the description
of the Format()
function.
Literal text is appended on a character by character basis.
Text converted from a trailing argument is appended as a complete string.
|
|
IMPORT_C void AppendFormatList(const TDesC8 &aFmt, VA_LIST aList, TDes8Overflow *aOverflowHandler=NULL);
Formats and appends text onto the end of this descriptor's data.
The length of this descriptor is incremented to reflect the new content.
The behaviour of this function is the same as AppendFormat(TRefByValue<const TDesC8> aFmt,TDes8Overflow
*aOverflowHandler,...). In practice, it is better and easier to use AppendFormat()
, passing a variable number of arguments as required by the format string.
|
protected: __DECLARE_TEST;