BSUL

Public Member Type Definitions
typedefCIniDocumentTmplX< TDesC16, TPtrC16, CIniSection16, TLex16, TPtr16, HBufC16, CIniLine16, CIniKey16 > CIniDocumentTmpl16
typedefCIniDocumentTmplX< TDesC8, TPtrC8, CIniSection8, TLex8, TPtr8, HBufC8, CIniLine8, CIniKey8 > CIniDocumentTmpl8
typedefCIniFileImplX< TDesC16, TPtrC16, HBufC16, TLex16, TPtr16, TPattern16, CIniLine16 > CIniFileTmpl16
typedefCIniFileImplX< TDesC8, TPtrC8, HBufC8, TLex8, TPtr8, TPattern8, CIniLine8 > CIniFileTmpl8
typedefCIniKey< TDesC16, HBufC16, TPtrC16, CIniLine16, TPtr16, TLex16 > CIniKey16
typedefCIniKey< TDesC8, HBufC8, TPtrC8, CIniLine8, TPtr8, TLex8 > CIniKey8
typedefCIniLine< TDesC16, HBufC16, TPtrC16, TPtr16 > CIniLine16
typedefCIniLine< TDesC8, HBufC8, TPtrC8, TPtr8 > CIniLine8
typedefCIniSecIterImplX< TDesC16, TPtrC16, CIniSection16, CIniDocument16, CIniKey16 > CIniSecIterTmpl16
typedefCIniSecIterImplX< TDesC8, TPtrC8, CIniSection8, CIniDocument8, CIniKey8 > CIniSecIterTmpl8
typedefCIniSection< TDesC16, HBufC16, TPtrC16, CIniKey16, CIniLine16, TPtr16, TLex16 > CIniSection16
typedefCIniSection< TDesC8, HBufC8, TPtrC8, CIniKey8, CIniLine8, TPtr8, TLex8 > CIniSection8
typedefvoid(* TCustomValidationFn
typedefCMessageParameterBase *(* TMessageParameterFactoryFn
typedef TBuf16< 6 > TPattern16
typedef TBuf8< 6 > TPattern8
Public Attributes
const TIntKClientMessageVersion
const TIntKErrBadMessageSchema
const TIntKErrBadParameter
const TIntKErrInvalidFunction
const TIntKErrNotInitialised
const TIntKErrNotValidated
const TIntKErrWrongParameterType
const TIntKMaxParameters
const TParameterDetailsKNoParams
const TIntKParamTypeMask
const TIntKShift16Bit
const TIntKValidationFnIndexMask
Public Member Enumerations
enumanonymous { ECMPanicWrongParameterType, ECMPanicBadDescriptor, ECMPanicBadMessageSchema }
enumTFlagValues { EFlagParam0Validated, EFlagParam1Validated, EFlagParam2Validated, EFlagParam3Validated, ..., EFlagLogBadMessages }
enumTLineType { EComment, ESection, EKeyValue }
enumTParamType { EParamNull, EParamInt, EParamDes8Read, EParamDes8, ..., EParamPtr }
enumTServerFlags { ESrvFlagNone, ESrvFlagDoNotPanicClientOnBadMessageErrors, ESrvFlagLogBadMessages }
Public Member Functions
voidCorruptIfL(TBool)
TInt CountTokens(TPtrCX)
TPtrCXExtractLineFromBuffer(const TPtrCX &, TInt)
voidGetBufferL(RFs &, const TDesC &, HBufC8 *&)
TBool IsEosAfterSpace(TLexX &)
NONSHARABLE_CLASS(CCachedDriveInfo)
NONSHARABLE_CLASS(CClientMessage)
NONSHARABLE_CLASS(CDes16Parameter)
NONSHARABLE_CLASS(CDes16ReadParameter)
NONSHARABLE_CLASS(CDes8Parameter)
NONSHARABLE_CLASS(CDes8ReadParameter)
NONSHARABLE_CLASS(CIniDocument16)
NONSHARABLE_CLASS(CIniDocument16Impl)
NONSHARABLE_CLASS(CIniDocument8)
NONSHARABLE_CLASS(CIniDocument8Impl)
NONSHARABLE_CLASS(CIniDocumentTmplX)
NONSHARABLE_CLASS(CIniFile16)
NONSHARABLE_CLASS(CIniFile16Impl)
NONSHARABLE_CLASS(CIniFile8)
NONSHARABLE_CLASS(CIniFile8Impl)
NONSHARABLE_CLASS(CIniFileImplX)
NONSHARABLE_CLASS(CIniKey)
NONSHARABLE_CLASS(CIniLine)
NONSHARABLE_CLASS(CIniSecIter16)
NONSHARABLE_CLASS(CIniSecIter16Impl)
NONSHARABLE_CLASS(CIniSecIter8)
NONSHARABLE_CLASS(CIniSecIter8Impl)
NONSHARABLE_CLASS(CIniSecIterImplX)
NONSHARABLE_CLASS(CIniSection)
NONSHARABLE_CLASS(CIntParameter)
NONSHARABLE_CLASS(CMessageParameterBase)
NONSHARABLE_CLASS(CPckgParameter)
NONSHARABLE_CLASS(CPtrParameter)
voidRemoveComment(TPtrCX &)
voidRemoveWSBeforeAndAfter(const TPtrCX &, TPtrCX &)

Member Type Definition Documentation

Typedef CIniDocumentTmpl16

typedef CIniDocumentTmplX< TDesC16, TPtrC16, CIniSection16, TLex16, TPtr16, HBufC16, CIniLine16, CIniKey16 >CIniDocumentTmpl16

Typedef CIniDocumentTmpl8

typedef CIniDocumentTmplX< TDesC8, TPtrC8, CIniSection8, TLex8, TPtr8, HBufC8, CIniLine8, CIniKey8 >CIniDocumentTmpl8

Typedef CIniFileTmpl16

typedef CIniFileImplX< TDesC16, TPtrC16, HBufC16, TLex16, TPtr16, TPattern16, CIniLine16 >CIniFileTmpl16

Typedef CIniFileTmpl8

typedef CIniFileImplX< TDesC8, TPtrC8, HBufC8, TLex8, TPtr8, TPattern8, CIniLine8 >CIniFileTmpl8

Typedef CIniKey16

typedef CIniKey< TDesC16, HBufC16, TPtrC16, CIniLine16, TPtr16, TLex16 >CIniKey16

Typedef CIniKey8

typedef CIniKey< TDesC8, HBufC8, TPtrC8, CIniLine8, TPtr8, TLex8 >CIniKey8

Typedef CIniLine16

typedef CIniLine< TDesC16, HBufC16, TPtrC16, TPtr16 >CIniLine16

Typedef CIniLine8

typedef CIniLine< TDesC8, HBufC8, TPtrC8, TPtr8 >CIniLine8

Typedef CIniSecIterTmpl16

typedef CIniSecIterImplX< TDesC16, TPtrC16, CIniSection16, CIniDocument16, CIniKey16 >CIniSecIterTmpl16

Typedef CIniSecIterTmpl8

typedef CIniSecIterImplX< TDesC8, TPtrC8, CIniSection8, CIniDocument8, CIniKey8 >CIniSecIterTmpl8

Typedef CIniSection16

typedef CIniSection< TDesC16, HBufC16, TPtrC16, CIniKey16, CIniLine16, TPtr16, TLex16 >CIniSection16

Typedef CIniSection8

typedef CIniSection< TDesC8, HBufC8, TPtrC8, CIniKey8, CIniLine8, TPtr8, TLex8 >CIniSection8

Typedef TCustomValidationFn

typedef void(*TCustomValidationFn

This typedef is used to simplify the declaration of custom parameter validation functions

Typedef TMessageParameterFactoryFn

typedef CMessageParameterBase *(*TMessageParameterFactoryFn

This typedef is used to simplify the declaration of the message schema table defined by the server.

Typedef TPattern16

typedef TBuf16< 6 >TPattern16

Typedef TPattern8

typedef TBuf8< 6 >TPattern8

Member Attribute Documentation

KClientMessageVersion

const TIntKClientMessageVersion

KErrBadMessageSchema

const TIntKErrBadMessageSchema

Returned to caller in UREL mode when a message is found to be incorrectly defined in the message schema.

KErrBadParameter

const TIntKErrBadParameter

Returned to caller if a message is passed in containing a non-descriptor parameter which doesn't meet the constraints specified in the schema

KErrInvalidFunction

const TIntKErrInvalidFunction

Returned to caller to indicate that the requested message number is not supported by the current server

KErrNotInitialised

const TIntKErrNotInitialised

Returned to caller to indicate that the ClientMessage framework has not yet been initialised

KErrNotValidated

const TIntKErrNotValidated

Returned to caller to indicate that the requested parameter has not yet been validated

KErrWrongParameterType

const TIntKErrWrongParameterType

Returned to caller in UREL mode when the server attempts to call a CMessageParameterBase function which is not defined for the given parameter type. E.g. calling GetIntL() on a Descriptor parameter.

KMaxParameters

const TIntKMaxParameters

This defines the maximum number of parameters that can be stored in a TClientMessageSchema structure. This corresponds to the maximum number of arguments in an RMessage2

KNoParams

const TParameterDetailsKNoParams

This TParameterDetails structure is used to represent a message with no parameters. This is required as the schema expects a const TParameterDetails*.

KParamTypeMask

const TIntKParamTypeMask

This mask is used to select the parameter type from TParameterDetails.iType

KShift16Bit

const TIntKShift16Bit

This is used to shift down the value masked using KValidationFnIndexMask

KValidationFnIndexMask

const TIntKValidationFnIndexMask

This mask is used to select the validation function index from TParameterDetails.iType

Member Enumeration Documentation

Enum anonymous

This is the list of Panic codes used by the ClientMessage framework

EnumeratorValueDescription
ECMPanicWrongParameterType0

This panic is raised in UDEB mode when the server attempts to call a CMessageParameterBase function which is not defined for the given parameter type. E.g. calling GetIntL() on a Descriptor parameter.

ECMPanicBadDescriptor

This panic is raised when the server attempts to read from a descriptor in the clients process and supplies a target descriptor that is smaller than the client descriptor.

ECMPanicBadMessageSchema

This panic is raised when a TParameterDetails structure for a given parameter is incorrectly defined in the message schema

Enum TFlagValues

This enum lists the flags currently represented by the TBitFlags32 CClientMessage::iFlags

EnumeratorValueDescription
EFlagParam0Validated0
EFlagParam1Validated
EFlagParam2Validated
EFlagParam3Validated
EFlagPanicClient

Informs CompleteRequestL() that message not valid as client has already been panicked.

EFlagDoNotPanicClientOnBadMessageErrors30

Setting this flag indicates that for bad message errors, request should be completed with error code rather than panicking the client

EFlagLogBadMessages31

Enum TLineType

EnumeratorValueDescription
EComment
ESection
EKeyValue

Enum TParamType

This Enum lists the currently supported Parameter types. These enum values are used as indices to the Parameter Factory Function which instantiates the appropriate CMessageParammeterBase derived object to represent a given message parameter.

Enum TServerFlags

This enum lists the currently supported flags that can be passed to the server in TClientMessageServerData::iFlags. Note that internally this value is stored in a TBitFlags32 type but this type cannot be statically initialised in a dll so the value is passed to the framework in a TInt. The bottom 16 bit flags are reserved for the framework's internal use.

EnumeratorValueDescription
ESrvFlagNone0

Default empty flag

ESrvFlagDoNotPanicClientOnBadMessageErrors0x40000000

Setting this flag indicates that for bad message errors, request should be completed with error code rather than panicking the client

ESrvFlagLogBadMessages0x80000000

Indicates that bad messages should be logged in UDEB

Member Function Documentation

CorruptIfL ( TBool )

voidCorruptIfL(TBoolaIsCorrupt)[static]

CountTokens ( TPtrCX )

TInt CountTokens(TPtrCXaLine)

ExtractLineFromBuffer ( const TPtrCX &, TInt )

TPtrCXExtractLineFromBuffer(const TPtrCX &aFileBuffer,
TIntaStartOffset
)

GetBufferL ( RFs &, const TDesC &, HBufC8 *& )

voidGetBufferL(RFs &aFs,
const TDesC &aFileName,
HBufC8 *&aBufferPtr
)[static]

IsEosAfterSpace ( TLexX & )

TBool IsEosAfterSpace(TLexX &aLex)

NONSHARABLE_CLASS ( CCachedDriveInfo )

NONSHARABLE_CLASS(CCachedDriveInfo)

Class used to cache F32 drive information.

See also: TDriveInfo

NONSHARABLE_CLASS ( CClientMessage )

NONSHARABLE_CLASS(CClientMessage)

This class is used by a server to sanitise incoming messages. The class provides a wrapper around an RMessage2 object and provides a method for validation of the message against the constraints defined in the message schema. This class also provides methods for safely accessing the message arguments, and for error handling and logging of bad messages. This class is not intended for derivation.

NONSHARABLE_CLASS ( CDes16Parameter )

NONSHARABLE_CLASS(CDes16Parameter)

This class implements the behaviour for a read 16 bit descriptor parameter type. The ValidateL function checks that the MaxLength of the descriptor in the clients process is not less than iMin and that the length of the descriptor does not exceed iMax defined in the message schema.

NONSHARABLE_CLASS ( CDes16ReadParameter )

NONSHARABLE_CLASS(CDes16ReadParameter)

This class implements the behaviour for a read only 16 bit descriptor parameter type. The ValidateL function checks that the length of the descriptor argument in the clients process does not exceed iMax defined in the message schema.

NONSHARABLE_CLASS ( CDes8Parameter )

NONSHARABLE_CLASS(CDes8Parameter)

This class implements the behaviour for a read 8 bit descriptor parameter type. The ValidateL function checks that the MaxLength of the descriptor in the clients process is not less than iMin and that the length of the descriptor does not exceed iMax defined in the message schema.

NONSHARABLE_CLASS ( CDes8ReadParameter )

NONSHARABLE_CLASS(CDes8ReadParameter)

This class implements the behaviour for a read only 8 bit descriptor parameter type. The ValidateL function checks that the length of the descriptor argument in the clients process does not exceed iMax defined in the message schema.

NONSHARABLE_CLASS ( CIniDocument16 )

NONSHARABLE_CLASS(CIniDocument16)

Dom parser for 16 bit ini file. This class provides the functionality to read and write settings of an 16 bit ini file.

NONSHARABLE_CLASS ( CIniDocument16Impl )

NONSHARABLE_CLASS(CIniDocument16Impl)

NONSHARABLE_CLASS ( CIniDocument8 )

NONSHARABLE_CLASS(CIniDocument8)

Dom parser for 8 bit ini file. This class provides the functionality to read and write settings of an 8 bit ini file.

NONSHARABLE_CLASS ( CIniDocument8Impl )

NONSHARABLE_CLASS(CIniDocument8Impl)

NONSHARABLE_CLASS ( CIniDocumentTmplX )

NONSHARABLE_CLASS(CIniDocumentTmplX)

NONSHARABLE_CLASS ( CIniFile16 )

NONSHARABLE_CLASS(CIniFile16)

A light weight parser for reading setting values from a 16 or 8 bit ini file. The aConvert8To16 parameter of NewL controls whether or not 8 bit files are accepted. Note that this does not guarantee checking that the ini file is wellformed.

NONSHARABLE_CLASS ( CIniFile16Impl )

NONSHARABLE_CLASS(CIniFile16Impl)

NONSHARABLE_CLASS ( CIniFile8 )

NONSHARABLE_CLASS(CIniFile8)

A light weight parser for reading setting values from an 8 bit ini file. Note that this does not guarantee checking that the ini file is wellformed. See CIniFile16 for a class that handles both 8 and 16 bit files.

NONSHARABLE_CLASS ( CIniFile8Impl )

NONSHARABLE_CLASS(CIniFile8Impl)

NONSHARABLE_CLASS ( CIniFileImplX )

NONSHARABLE_CLASS(CIniFileImplX)

NONSHARABLE_CLASS ( CIniKey )

NONSHARABLE_CLASS(CIniKey)

NONSHARABLE_CLASS ( CIniLine )

NONSHARABLE_CLASS(CIniLine)

NONSHARABLE_CLASS ( CIniSecIter16 )

NONSHARABLE_CLASS(CIniSecIter16)

Section iterator for 16 bit ini file. This class provides an iterator to navigate through the settings within a section inside an 16 bit ini file.

NONSHARABLE_CLASS ( CIniSecIter16Impl )

NONSHARABLE_CLASS(CIniSecIter16Impl)

NONSHARABLE_CLASS ( CIniSecIter8 )

NONSHARABLE_CLASS(CIniSecIter8)

Section iterator for 8 bit ini file. This class provides an iterator to navigate through the settings within a section inside an 8 bit ini file.

NONSHARABLE_CLASS ( CIniSecIter8Impl )

NONSHARABLE_CLASS(CIniSecIter8Impl)

NONSHARABLE_CLASS ( CIniSecIterImplX )

NONSHARABLE_CLASS(CIniSecIterImplX)

NONSHARABLE_CLASS ( CIniSection )

NONSHARABLE_CLASS(CIniSection)

NONSHARABLE_CLASS ( CIntParameter )

NONSHARABLE_CLASS(CIntParameter)

This class implements the behaviour for a TInt parameter type. The ValidateL function reads the Int value from the clients message and checks that the value read is between the iMax and iMin constraints defined in the message schema.

NONSHARABLE_CLASS ( CMessageParameterBase )

NONSHARABLE_CLASS(CMessageParameterBase)

This is the abstract base class for all message parameter classes. The class defines one pure virtual function, ValidateL, which all derived classes must implement. This class also defines default implementation for the access methods which should be properly defined in all derived classes. This class is not intended for external derivation.

NONSHARABLE_CLASS ( CPckgParameter )

NONSHARABLE_CLASS(CPckgParameter)

This class implements the behaviour for a generic TPckg<> parameter type. The ValidateL function calls the custom validation function passed in to the object on creation.

NONSHARABLE_CLASS ( CPtrParameter )

NONSHARABLE_CLASS(CPtrParameter)

This class implements the behaviour for a Ptr parameter type. The ValidateL function reads the TAny* from the clients message and stores it for retrieval.

RemoveComment ( TPtrCX & )

voidRemoveComment(TPtrCX &aLine)

RemoveWSBeforeAndAfter ( const TPtrCX &, TPtrCX & )

voidRemoveWSBeforeAndAfter(const TPtrCX &aString,
TPtrCX &aOutput
)