RMessagePtr2 Class Reference

class RMessagePtr2

A handle to a message sent by the client to the server.

A server's interaction with its clients is channelled through an RMessagePtr2 object, which acts as a handle to a message sent by the client. The details of the original message are kept by the kernel allowing it enforce correct usage of the member functions of this class.

RMessage2

Public Member Functions
RMessagePtr2()
IMPORT_C TIntClient(RThread &, TOwnerType)
IMPORT_C TBoolClientIsRealtime()
voidClientL(RThread &, TOwnerType)
IMPORT_C TUintClientProcessFlags()
IMPORT_C const TRequestStatus *ClientStatus()
IMPORT_C voidComplete(TInt)
IMPORT_C voidComplete(RHandleBase)
IMPORT_C TIntGetDesLength(TInt)
IMPORT_C TIntGetDesLengthL(TInt)
IMPORT_C TIntGetDesMaxLength(TInt)
IMPORT_C TIntGetDesMaxLengthL(TInt)
TInt Handle()
TBool HasCapability(TCapability, const char *)
TBool HasCapability(TCapability, TCapability, const char *)
voidHasCapabilityL(TCapability, const char *)
voidHasCapabilityL(TCapability, TCapability, const char *)
TUid Identity()
TBool IsNull()
IMPORT_C voidKill(TInt)
IMPORT_C voidPanic(const TDesC &, TInt)
IMPORT_C TIntRead(TInt, TDes8 &, TInt)
IMPORT_C TIntRead(TInt, TDes16 &, TInt)
IMPORT_C voidReadL(TInt, TDes8 &, TInt)
IMPORT_C voidReadL(TInt, TDes16 &, TInt)
IMPORT_C TSecureIdSecureId()
IMPORT_C TIntSetProcessPriority(TProcessPriority)
voidSetProcessPriorityL(TProcessPriority)
IMPORT_C voidTerminate(TInt)
IMPORT_C TVendorIdVendorId()
IMPORT_C TIntWrite(TInt, const TDesC8 &, TInt)
IMPORT_C TIntWrite(TInt, const TDesC16 &, TInt)
IMPORT_C voidWriteL(TInt, const TDesC8 &, TInt)
IMPORT_C voidWriteL(TInt, const TDesC16 &, TInt)
Private Member Functions
IMPORT_C TBoolDoHasCapability(TCapability, const char *)
IMPORT_C TBoolDoHasCapability(TCapability)
IMPORT_C TBoolDoHasCapability(TCapability, TCapability, const char *)
IMPORT_C TBoolDoHasCapability(TCapability, TCapability)
Protected Attributes
TInt iHandle

Constructor & Destructor Documentation

RMessagePtr2()

RMessagePtr2()[inline]

Default constructor

Member Functions Documentation

Client(RThread &, TOwnerType)

IMPORT_C TIntClient(RThread &aClient,
TOwnerTypeaOwnerType = EOwnerProcess
)const

Parameters

RThread & aClient
TOwnerType aOwnerType = EOwnerProcess

ClientIsRealtime()

IMPORT_C TBoolClientIsRealtime()const

ClientL(RThread &, TOwnerType)

voidClientL(RThread &aClient,
TOwnerTypeaOwnerType = EOwnerProcess
)const [inline]

Opens a handle on the client thread.

Parameters

RThread & aClientOn successful return, the handle to the client thread.
TOwnerType aOwnerType = EOwnerProcessAn enumeration whose enumerators define the ownership of the handle. If not explicitly specified, EOwnerProcess is taken as default.

ClientProcessFlags()

IMPORT_C TUintClientProcessFlags()const

ClientStatus()

IMPORT_C const TRequestStatus *ClientStatus()const

Complete(TInt)

IMPORT_C voidComplete(TIntaReason)const

Parameters

TInt aReason

Complete(RHandleBase)

IMPORT_C voidComplete(RHandleBaseaHandle)const

Parameters

RHandleBase aHandle

DoHasCapability(TCapability, const char *)

IMPORT_C TBoolDoHasCapability(TCapabilityaCapability,
const char *aDiagnostic
)const [private]

Parameters

TCapability aCapability
const char * aDiagnostic

DoHasCapability(TCapability)

IMPORT_C TBoolDoHasCapability(TCapabilityaCapability)const [private]

Parameters

TCapability aCapability

DoHasCapability(TCapability, TCapability, const char *)

IMPORT_C TBoolDoHasCapability(TCapabilityaCapability,
TCapabilityaCapability2,
const char *aDiagnostic
)const [private]

Parameters

TCapability aCapability
TCapability aCapability2
const char * aDiagnostic

DoHasCapability(TCapability, TCapability)

IMPORT_C TBoolDoHasCapability(TCapabilityaCapability,
TCapabilityaCapability2
)const [private]

Parameters

TCapability aCapability
TCapability aCapability2

GetDesLength(TInt)

IMPORT_C TIntGetDesLength(TIntaParam)const

Parameters

TInt aParam

GetDesLengthL(TInt)

IMPORT_C TIntGetDesLengthL(TIntaParam)const

Parameters

TInt aParam

GetDesMaxLength(TInt)

IMPORT_C TIntGetDesMaxLength(TIntaParam)const

Parameters

TInt aParam

GetDesMaxLengthL(TInt)

IMPORT_C TIntGetDesMaxLengthL(TIntaParam)const

Parameters

TInt aParam

Handle()

TInt Handle()const [inline]

Gets the message handle value.

The message handle value.

HasCapability(TCapability, const char *)

TBool HasCapability(TCapabilityaCapability,
const char *aDiagnostic = 0
)const [inline]

Check if the process which sent this message has a given capability.

When a check fails the action taken is determined by the system wide Platform Security configuration. If PlatSecDiagnostics is ON, then a diagnostic message is emitted. If PlatSecEnforcement is OFF, then this function will return ETrue even though the check failed.

ETrue if process which sent this message has the capability, EFalse otherwise.

Parameters

TCapability aCapabilityThe capability to test.
const char * aDiagnostic = 0A string that will be emitted along with any diagnostic message that may be issued if the test finds the capability is not present. This string must be enclosed in the __PLATSEC_DIAGNOSTIC_STRING macro which enables it to be easily removed from the system.

HasCapability(TCapability, TCapability, const char *)

TBool HasCapability(TCapabilityaCapability1,
TCapabilityaCapability2,
const char *aDiagnostic = 0
)const [inline]

Check if the process which sent this message has both of the given capabilities.

When a check fails the action taken is determined by the system wide Platform Security configuration. If PlatSecDiagnostics is ON, then a diagnostic message is emitted. If PlatSecEnforcement is OFF, then this function will return ETrue even though the check failed.

ETrue if the process which sent this message has both the capabilities, EFalse otherwise.

Parameters

TCapability aCapability1The first capability to test.
TCapability aCapability2The second capability to test.
const char * aDiagnostic = 0A string that will be emitted along with any diagnostic message that may be issued if the test finds a capability is not present. This string should be enclosed in the __PLATSEC_DIAGNOSTIC_STRING macro which enables it to be easily removed from the system.

HasCapabilityL(TCapability, const char *)

voidHasCapabilityL(TCapabilityaCapability,
const char *aDiagnosticMessage = 0
)const [inline]

Check if the process which sent this message has a given capability.

When a check fails the action taken is determined by the system wide Platform Security configuration. If PlatSecDiagnostics is ON, then a diagnostic message is emitted. If PlatSecEnforcement is OFF, then this function will not leave even though the check failed.

leave

KErrPermissionDenied, if the process does not have the capability.

Parameters

TCapability aCapabilityThe capability to test.
const char * aDiagnosticMessage = 0A string that will be emitted along with any diagnostic message that may be issued if the test finds the capability is not present. This string must be enclosed in the __PLATSEC_DIAGNOSTIC_STRING macro which enables it to be easily removed from the system.

HasCapabilityL(TCapability, TCapability, const char *)

voidHasCapabilityL(TCapabilityaCapability1,
TCapabilityaCapability2,
const char *aDiagnosticMessage = 0
)const [inline]

Check if the process which sent this message has both of the given capabilities.

When a check fails the action taken is determined by the system wide Platform Security configuration. If PlatSecDiagnostics is ON, then a diagnostic message is emitted. If PlatSecEnforcement is OFF, then this function will not leave even though the check failed.

leave

KErrPermissionDenied, if the process does not have the capabilities.

Parameters

TCapability aCapability1The first capability to test.
TCapability aCapability2The second capability to test.
const char * aDiagnosticMessage = 0A string that will be emitted along with any diagnostic message that may be issued if the test finds a capability is not present. This string should be enclosed in the __PLATSEC_DIAGNOSTIC_STRING macro which enables it to be easily removed from the system.

Identity()

TUid Identity()const [inline]

IsNull()

TBool IsNull()const [inline]

Tests whether this message handle is empty.

True, if this message handle is empty, false, otherwise.

Kill(TInt)

IMPORT_C voidKill(TIntaReason)const

Parameters

TInt aReason

Panic(const TDesC &, TInt)

IMPORT_C voidPanic(const TDesC &aCategory,
TIntaReason
)const

Parameters

const TDesC & aCategory
TInt aReason

Read(TInt, TDes8 &, TInt)

IMPORT_C TIntRead(TIntaParam,
TDes8 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
TDes8 & aDes
TInt aOffset = 0

Read(TInt, TDes16 &, TInt)

IMPORT_C TIntRead(TIntaParam,
TDes16 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
TDes16 & aDes
TInt aOffset = 0

ReadL(TInt, TDes8 &, TInt)

IMPORT_C voidReadL(TIntaParam,
TDes8 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
TDes8 & aDes
TInt aOffset = 0

ReadL(TInt, TDes16 &, TInt)

IMPORT_C voidReadL(TIntaParam,
TDes16 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
TDes16 & aDes
TInt aOffset = 0

SecureId()

IMPORT_C TSecureIdSecureId()const

Return the Secure ID of the process which sent this message.

If an intended use of this method is to check that the Secure ID is a given value, then the use of a TSecurityPolicy object should be considered. E.g. Instead of something like:

		RMessagePtr2& message;
		TInt error = message.SecureId()==KRequiredSecureId ? KErrNone : KErrPermissionDenied;

this could be used;

		RMessagePtr2& message;
		static _LIT_SECURITY_POLICY_S0(mySidPolicy, KRequiredSecureId);
		TBool pass = mySidPolicy().CheckPolicy(message);

This has the benefit that the TSecurityPolicy::CheckPolicy methods are configured by the system wide Platform Security configuration. I.e. are capable of emitting diagnostic messages when a check fails and/or the check can be forced to always pass.

TSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, const char* aDiagnostic) const

_LIT_SECURITY_POLICY_S0

The Secure ID.

SetProcessPriority(TProcessPriority)

IMPORT_C TIntSetProcessPriority(TProcessPriorityaPriority)const

Parameters

TProcessPriority aPriority

SetProcessPriorityL(TProcessPriority)

voidSetProcessPriorityL(TProcessPriorityaPriority)const [inline]

Sets the priority of the client's process.

Parameters

TProcessPriority aPriorityThe priority value.

Terminate(TInt)

IMPORT_C voidTerminate(TIntaReason)const

Parameters

TInt aReason

VendorId()

IMPORT_C TVendorIdVendorId()const

Return the Vendor ID of the process which sent this message.

If an intended use of this method is to check that the Vendor ID is a given value, then the use of a TSecurityPolicy object should be considered. E.g. Instead of something like:

		RMessagePtr2& message;
		TInt error = message.VendorId()==KRequiredVendorId ? KErrNone : KErrPermissionDenied;

this could be used;

		RMessagePtr2& message;
		static _LIT_SECURITY_POLICY_V0(myVidPolicy, KRequiredVendorId);
		TBool pass = myVidPolicy().CheckPolicy(message);

This has the benefit that the TSecurityPolicy::CheckPolicy methods are configured by the system wide Platform Security configuration. I.e. are capable of emitting diagnostic messages when a check fails and/or the check can be forced to always pass.

TSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, const char* aDiagnostic) const

_LIT_SECURITY_POLICY_V0

The Vendor ID.

Write(TInt, const TDesC8 &, TInt)

IMPORT_C TIntWrite(TIntaParam,
const TDesC8 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
const TDesC8 & aDes
TInt aOffset = 0

Write(TInt, const TDesC16 &, TInt)

IMPORT_C TIntWrite(TIntaParam,
const TDesC16 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
const TDesC16 & aDes
TInt aOffset = 0

WriteL(TInt, const TDesC8 &, TInt)

IMPORT_C voidWriteL(TIntaParam,
const TDesC8 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
const TDesC8 & aDes
TInt aOffset = 0

WriteL(TInt, const TDesC16 &, TInt)

IMPORT_C voidWriteL(TIntaParam,
const TDesC16 &aDes,
TIntaOffset = 0
)const

Parameters

TInt aParam
const TDesC16 & aDes
TInt aOffset = 0

Member Data Documentation

TInt iHandle

TInt iHandle[protected]