CWspHeaderEncoder Class Reference

class CWspHeaderEncoder : public CBase

This class can be used to encode one header field at a time, with all its values and parameters.

It has no knowledge of encoding the BNF of a particular header field, but the functions provided can be used in combination, producing an 8-bit buffer containing the encoded header.

Intended usage would be to call a series of functions. The first one being StartHeader, The final one being EndHeader, which would return a buffer containing the complete encoded header field. eg: encoder->StartHeaderL(); encoder->AddLongIntL(); encoder->AddTextStringL(); HBufC8* output = encoder->EndHeaderL();

Inherits from

Public Member Functions
~CWspHeaderEncoder()
IMPORT_C voidAddDataL(const TDesC8 &)
IMPORT_C voidAddDateL(const TDateTime)
IMPORT_C voidAddIntegerL(const TUint)
IMPORT_C voidAddLongIntL(const TUint32)
IMPORT_C voidAddShortIntL(const TUint8)
IMPORT_C voidAddShortLengthL(const TUint8)
IMPORT_C voidAddTextStringL(const RString &)
IMPORT_C voidAddTextStringL(const TDesC8 &)
IMPORT_C voidAddTokenL(const TUint8)
IMPORT_C voidAddTokenTextL(const TDesC8 &)
IMPORT_C voidAddUintVarL(const TUint)
IMPORT_C HBufC8 *EndHeaderL()
IMPORT_C voidEndValueLengthL()
IMPORT_C CWspHeaderEncoder *NewL()
IMPORT_C CWspHeaderEncoder *NewLC()
IMPORT_C voidStartHeaderL(TUint8)
IMPORT_C voidStartHeaderL(const TDesC8 &)
IMPORT_C voidStartHeaderL(const RStringF)
IMPORT_C voidStartValueLengthL()
Private Member Functions
CWspHeaderEncoder()
voidConstructL()
voidInit()
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Private Attributes
RPointerArray< CDesC8Array >iArray
TInt iTotalLength

Constructor & Destructor Documentation

CWspHeaderEncoder()

CWspHeaderEncoder()[private]

Default constructor.

~CWspHeaderEncoder()

IMPORT_C~CWspHeaderEncoder()[virtual]

Default destructor

Member Functions Documentation

AddDataL(const TDesC8 &)

IMPORT_C voidAddDataL(const TDesC8 &aData)

Encodes input and adds it to the encoded field. Adds value as-is to the encoded field.

leave
KErrNoMemory

Parameters

const TDesC8 & aDatavalue to be encoded.

AddDateL(const TDateTime)

IMPORT_C voidAddDateL(const TDateTimeaDate)

Encodes input and adds it to the encoded field.Encodes parameter value using WSP Date method.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory

Parameters

const TDateTime aDatevalue to be encoded.

AddIntegerL(const TUint)

IMPORT_C voidAddIntegerL(const TUintaInt)

Encodes input Integer value and adds it to the encoded field. Choice of encoded form dependent on the size of the input.Either ShortInt or LongInt method chosen.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory

Parameters

const TUint aIntInteger value to be encoded.

AddLongIntL(const TUint32)

IMPORT_C voidAddLongIntL(const TUint32aValue)

Encodes input and adds it to the encoded field. Encodes parameter value using WSP LongInt method.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory

Parameters

const TUint32 aValuevalue to be encoded.

AddShortIntL(const TUint8)

IMPORT_C voidAddShortIntL(const TUint8aValue)

Encodes input and adds it to the encoded field. Encodes parameter value using WSP ShortInt method.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory

Parameters

const TUint8 aValuevalue to be encoded.

AddShortLengthL(const TUint8)

IMPORT_C voidAddShortLengthL(const TUint8aValue)

Encodes input and adds it to the encoded field. For short length the value must be between octet 0 - 31.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory, KErrOverflow if the value is greater than 31

Parameters

const TUint8 aValuevalue to be encoded.

AddTextStringL(const RString &)

IMPORT_C voidAddTextStringL(const RString &aText)

Encodes input and adds it to the encoded field. Encodes parameter value using WSP TextString method.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory

Parameters

const RString & aTextvalue to be encoded.

AddTextStringL(const TDesC8 &)

IMPORT_C voidAddTextStringL(const TDesC8 &aText)

Encodes input and adds it to the encoded field. Encodes parameter value using WSP TextString method.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory

Parameters

const TDesC8 & aTextvalue to be encoded.

AddTokenL(const TUint8)

IMPORT_C voidAddTokenL(const TUint8aToken)

Encodes input and adds it to the encoded field. Adds value as-is to the encoded field.

Pre-condition
StartHeaderL and StartValueLengthL should have been called.
Post-condition
EndValueLengthL needs to be called subsequently.

Parameters

const TUint8 aTokenparameter added without encodeing. Should be a valid WSP token, a 8 bit number > 0x7F (i.e. top bit set).

AddTokenTextL(const TDesC8 &)

IMPORT_C voidAddTokenTextL(const TDesC8 &aTokenText)

Encodes input and adds it to the encoded field. Encodes parameter value using WSP TokenText method.

leave
KErrNoMemory

Parameters

const TDesC8 & aTokenTextvalue to be encoded.

AddUintVarL(const TUint)

IMPORT_C voidAddUintVarL(const TUintaInt)

Encodes input and adds it to the encoded field. Encodes parameter value using WSP UIntVar method.

Pre-condition
StartHeaderL needs to have been called.
leave
KErrNoMemory

Parameters

const TUint aIntvalue to be encoded.

ConstructL()

voidConstructL()[private]

Standard second phase construction.

EndHeaderL()

IMPORT_C HBufC8 *EndHeaderL()

Completes and returns encoded field 8 bit buffer. This method will panic if an EndValueLengthL() is not called after a StartValueLength().

Note: The final buffer containing the entire encoded header is constructed. Returns buffer containing the encoded field constructed from the first call to StartHeaderL.

Pre-condition
The function StartHeaderL should have been called.
Post-condition
Encoder is reset ready to be used again.
leave
HBufC8::NewL leaves, if the new 8 bit heap descriptor cannot be created.

EndValueLengthL()

IMPORT_C voidEndValueLengthL()

Needs to be called at the point in the construction of a header when ValueLength can be calculated.

Pre-condition
StartHeaderL and StartValueLengthL should have been called.
Post-condition
ValueLength has been calculated and added, together with the encoded header, to the internal representation of the header buffer.
leave
KErrNoMemory

Init()

voidInit()[private]

NewL()

IMPORT_C CWspHeaderEncoder *NewL()[static]

Static factory constructor.

leave
KErrNoMemory

NewLC()

IMPORT_C CWspHeaderEncoder *NewLC()[static]

Static factory constructor.

leave
KErrNoMemory

StartHeaderL(TUint8)

IMPORT_C voidStartHeaderL(TUint8aToken)

Starts a new encoded header.

leave
KErrNoMemory

Parameters

TUint8 aTokenfield name being encoded as a Token value.

StartHeaderL(const TDesC8 &)

IMPORT_C voidStartHeaderL(const TDesC8 &aString)

Starts a new encoded header.

leave
KErrNoMemory

Parameters

const TDesC8 & aStringFieldname parameter is encoded as a TextString.

StartHeaderL(const RStringF)

IMPORT_C voidStartHeaderL(const RStringFaString)

Starts a new encoded header.

leave
KErrNotSupported

Parameters

const RStringF aStringFieldname parameter is encoded as a TextString.

StartValueLengthL()

IMPORT_C voidStartValueLengthL()
From calling this function, the length in bytes of all encodings added subsequently will be calculated and stored as part of the encoded string, as specified in WSP spec.Can be nested. i.e.
	 encoder->StartHeaderL();
	 encoder->StartValueLengthL();
	 encoder->StartValueLengthL();
	 encoder->AddLongIntL();
	 encoder->EndValueLengthL();
	 encoder->AddTextStringL();
	 encoder->EndValueLengthL();
	 HBufC8* output = encoder->EndHeaderL();
Pre-condition
StartHeaderL should have been called.
Post-condition
EndValueLengthL needs to be called subsequently.
leave
KErrNoMemory

Member Data Documentation

RPointerArray< CDesC8Array > iArray

RPointerArray< CDesC8Array >iArray[private]

Array for storing the partial encoded header. Each time StartValueLength is called a new array element is used. When EndValueLength is called, the array is decremented, data from the last element being added to the one before.

TInt iTotalLength

TInt iTotalLength[private]

Value incremented as the encoded header increases in size. Used to allocate the buffer for storing the final encoded header, output when EndHeader is called.