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.
Private Member Functions | |
---|---|
IMPORT_C TBool | DoHasCapability ( TCapability , const char *) |
IMPORT_C TBool | DoHasCapability ( TCapability ) |
IMPORT_C TBool | DoHasCapability ( TCapability , TCapability , const char *) |
IMPORT_C TBool | DoHasCapability ( TCapability , TCapability ) |
Protected Attributes | |
---|---|
TInt | iHandle |
IMPORT_C TInt | Client | ( | RThread & | aClient, |
TOwnerType | aOwnerType = EOwnerProcess | |||
) | const |
Opens a handle on the client thread.
RThread & aClient | On successful return, the handle to the client thread. |
TOwnerType aOwnerType = EOwnerProcess | An enumeration whose enumerators define the ownership of the handle. If not explicitly specified, EOwnerProcess is taken as default. |
void | ClientL | ( | RThread & | aClient, |
TOwnerType | aOwnerType = EOwnerProcess | |||
) | const [inline] |
Opens a handle on the client thread.
RThread & aClient | On successful return, the handle to the client thread. |
TOwnerType aOwnerType = EOwnerProcess | An enumeration whose enumerators define the ownership of the handle. If not explicitly specified, EOwnerProcess is taken as default. |
IMPORT_C const TRequestStatus * | ClientStatus | ( | ) | const |
Returns the pointer to the clients TRequestStatus associated with the message.
The return value is intended to be used as a unique identifier (for example, to uniquely identify an asynchronous message when cancelling the request). The memory must never be accessed directly or completed.
IMPORT_C void | Complete | ( | TInt | aReason | ) | const |
Frees this message.
TInt aReason | The completion code. |
IMPORT_C void | Complete | ( | RHandleBase | aHandle | ) | const |
Duplicates the specified handle in the client thread, and returns this handle as a message completion code
RHandleBase aHandle | The handle to be duplicated. |
IMPORT_C TBool | DoHasCapability | ( | TCapability | aCapability, |
const char * | aDiagnostic | |||
) | const [private] |
TCapability aCapability | |
const char * aDiagnostic |
IMPORT_C TBool | DoHasCapability | ( | TCapability | aCapability | ) | const [private] |
TCapability aCapability |
IMPORT_C TBool | DoHasCapability | ( | TCapability | aCapability, |
TCapability | aCapability2, | |||
const char * | aDiagnostic | |||
) | const [private] |
TCapability aCapability | |
TCapability aCapability2 | |
const char * aDiagnostic |
IMPORT_C TBool | DoHasCapability | ( | TCapability | aCapability, |
TCapability | aCapability2 | |||
) | const [private] |
TCapability aCapability | |
TCapability aCapability2 |
IMPORT_C TInt | GetDesLength | ( | TInt | aParam | ) | const |
Gets the length of a descriptor argument in the client's process.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
IMPORT_C TInt | GetDesLengthL | ( | TInt | aParam | ) | const |
Gets the length of a descriptor argument in the client's process, leaving on failure.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
IMPORT_C TInt | GetDesMaxLength | ( | TInt | aParam | ) | const |
Gets the maximum length of a descriptor argument in the client's process.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
IMPORT_C TInt | GetDesMaxLengthL | ( | TInt | aParam | ) | const |
Gets the maximum length of a descriptor argument in the client's process, leaving on failure.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
TBool | HasCapability | ( | TCapability | aCapability, |
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.
TCapability aCapability | The capability to test. |
const char * aDiagnostic = 0 | A 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. |
TBool | HasCapability | ( | TCapability | aCapability1, |
TCapability | aCapability2, | |||
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.
TCapability aCapability1 | The first capability to test. |
TCapability aCapability2 | The second capability to test. |
const char * aDiagnostic = 0 | A 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. |
void | HasCapabilityL | ( | TCapability | aCapability, |
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.
TCapability aCapability | The capability to test. |
const char * aDiagnosticMessage = 0 | A 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. |
void | HasCapabilityL | ( | TCapability | aCapability1, |
TCapability | aCapability2, | |||
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.
TCapability aCapability1 | The first capability to test. |
TCapability aCapability2 | The second capability to test. |
const char * aDiagnosticMessage = 0 | A 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. |
IMPORT_C void | Kill | ( | TInt | aReason | ) | const |
Kills the client.
Note that this method also completes the message. A subsequent call to Complete(TInt aReason) would cause a server panic.
TInt aReason | The reason code associated with killing the client. |
IMPORT_C void | Panic | ( | const TDesC & | aCategory, |
TInt | aReason | |||
) | const |
Panics the client.
The length of the category name should be no greater than 16; any name with a length greater than 16 is truncated to 16.
Note that this method also completes the message. A subsequent call to Complete(TInt aReason) would cause a server panic.
IMPORT_C TInt | Read | ( | TInt | aParam, |
TDes8 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Reads data from the specified offset within the 8-bit descriptor argument, into the specified target descriptor.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
TDes8 & aDes | The target descriptor into which the client data is to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor data. If not explicitly specified, the offset defaults to zero. |
IMPORT_C TInt | Read | ( | TInt | aParam, |
TDes16 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Reads data from the specified offset within the 16-bit descriptor argument, into the specified target descriptor.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
TDes16 & aDes | The target descriptor into which the client data is to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor data. If not explicitly specified, the offset defaults to zero. |
IMPORT_C void | ReadL | ( | TInt | aParam, |
TDes8 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Reads data from the specified offset within the 8-bit descriptor argument, into the specified target descriptor, and leaving on failure.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
TDes8 & aDes | The target descriptor into which the client data is to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor data. If not explicitly specified, the offset defaults to zero. |
IMPORT_C void | ReadL | ( | TInt | aParam, |
TDes16 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Reads data from the specified offset within the 16-bit descriptor argument, into the specified target descriptor, and leaving on failure.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
TDes16 & aDes | The target descriptor into which the client data is to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor data. If not explicitly specified, the offset defaults to zero. |
IMPORT_C TSecureId | SecureId | ( | ) | 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
IMPORT_C TInt | SetProcessPriority | ( | TProcessPriority | aPriority | ) | const |
Sets the priority of the client's process.
TProcessPriority aPriority | The priority value. |
void | SetProcessPriorityL | ( | TProcessPriority | aPriority | ) | const [inline] |
Sets the priority of the client's process.
TProcessPriority aPriority | The priority value. |
IMPORT_C void | Terminate | ( | TInt | aReason | ) | const |
Terminates the client.
Note that this method also completes the message. A subsequent call to Complete(TInt aReason) would cause a server panic.
TInt aReason | The reason code associated with terminating the client. |
IMPORT_C TVendorId | VendorId | ( | ) | 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
IMPORT_C TInt | Write | ( | TInt | aParam, |
const TDesC8 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Writes data from the specified source descriptor to the specified offset within the 8-bit descriptor argument.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
const TDesC8 & aDes | The source descriptor containing the data to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |
IMPORT_C TInt | Write | ( | TInt | aParam, |
const TDesC16 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Writes data from the specified source descriptor to the specified offset within the 16-bit descriptor argument.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
const TDesC16 & aDes | The source descriptor containing the data to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |
IMPORT_C void | WriteL | ( | TInt | aParam, |
const TDesC8 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Writes data from the specified source descriptor to the specified offset within the 8-bit descriptor argument, and leaving on failure.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
const TDesC8 & aDes | The source descriptor containing the data to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |
IMPORT_C void | WriteL | ( | TInt | aParam, |
const TDesC16 & | aDes, | |||
TInt | aOffset = 0 | |||
) | const |
Writes data from the specified source descriptor to the specified offset within the 16-bit descriptor argument, and leaving on failure.
TInt aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
const TDesC16 & aDes | The source descriptor containing the data to be written. |
TInt aOffset = 0 | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.