#include <e32cmn.h>
class RMessagePtr2 |
Protected Attributes | |
---|---|
TInt | iHandle |
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.
See also: RMessage2
IMPORT_C TInt | Client | ( | RThread & | aClient, |
TOwnerType | aOwnerType = EOwnerProcess | |||
) | const |
Opens a handle on the client thread.
Parameter | Description |
---|---|
aClient | On successful return, the handle to the client thread. |
aOwnerType | An enumeration whose enumerators define the ownership of the handle. If not explicitly specified, EOwnerProcess is taken as default. |
Returns: KErrNone.
void | ClientL | ( | RThread & | aClient, |
TOwnerType | aOwnerType = EOwnerProcess | |||
) | const [inline] |
Opens a handle on the client thread.
Parameter | Description |
---|---|
aClient | On successful return, the handle to the client thread. |
aOwnerType | 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.
Returns: The clients TRequestStatus (returns NULL if the request is not asynchronous)
IMPORT_C void | Complete | ( | TInt | aReason | ) | const |
Frees this message.
Parameter | Description |
---|---|
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
Parameter | Description |
---|---|
aHandle | The handle to be duplicated. |
Gets the length of a descriptor argument in the client's process.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
Returns: The length of the descriptor, if successful. KErrArgument, if aParam has a value outside the valid range. KErrBadDescriptor, if the message argument is not a descriptor type.
Gets the length of a descriptor argument in the client's process, leaving on failure.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
Returns: The length of the descriptor.
Gets the maximum length of a descriptor argument in the client's process.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
Returns: The maximum length of the descriptor, if successful. KErrArgument, if aParam has a value outside the valid range. KErrBadDescriptor, if the message argument is not a descriptor type.
Gets the maximum length of a descriptor argument in the client's process, leaving on failure.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
Returns: The length of the descriptor.
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.
Parameter | Description |
---|---|
aCapability | The capability to test. |
aDiagnostic | 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. |
Returns: ETrue if process which sent this message has the capability, EFalse otherwise.
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.
Parameter | Description |
---|---|
aCapability1 | The first capability to test. |
aCapability2 | The second capability to test. |
aDiagnostic | 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. |
Returns: ETrue if the process which sent this message has both the capabilities, EFalse otherwise.
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.
Parameter | Description |
---|---|
aCapability | The capability to test. |
aDiagnosticMessage | 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.
Parameter | Description |
---|---|
aCapability1 | The first capability to test. |
aCapability2 | The second capability to test. |
aDiagnosticMessage | 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. |
TBool | IsNull | ( | ) | const [inline] |
Tests whether this message handle is empty.
Returns: True, if this message handle is empty, false, otherwise.
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.
Parameter | Description |
---|---|
aReason | The reason code associated with killing the client. |
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.
Parameter | Description |
---|---|
aCategory | The panic category. |
aReason | The panic code. |
Reads data from the specified offset within the 8-bit descriptor argument, into the specified target descriptor.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The target descriptor into which the client data is to be written. |
aOffset | The offset from the start of the client's descriptor data. If not explicitly specified, the offset defaults to zero. |
Returns: KErrNone, if successful; KErrArgument if aParam has a value outside the valid range, or if aOffset is negative. KErrBadDescriptor, if the message argument is not an 8-bit descriptor.
Reads data from the specified offset within the 16-bit descriptor argument, into the specified target descriptor.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The target descriptor into which the client data is to be written. |
aOffset | The offset from the start of the client's descriptor data. If not explicitly specified, the offset defaults to zero. |
Returns: KErrNone, if successful; KErrArgument if aParam has a value outside the valid range, or if aOffset is negative. KErrBadDescriptor, if the message argument is not a 16-bit descriptor.
Reads data from the specified offset within the 8-bit descriptor argument, into the specified target descriptor, and leaving on failure.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The target descriptor into which the client data is to be written. |
aOffset | The offset from the start of the client's descriptor data. If not explicitly specified, the offset defaults to zero. |
Reads data from the specified offset within the 16-bit descriptor argument, into the specified target descriptor, and leaving on failure.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The target descriptor into which the client data is to be written. |
aOffset | 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.
See also: TSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, const char* aDiagnostic) const _LIT_SECURITY_POLICY_S0
Returns: The Secure ID.
IMPORT_C TInt | SetProcessPriority | ( | TProcessPriority | aPriority | ) | const |
Sets the priority of the client's process.
Parameter | Description |
---|---|
aPriority | The priority value. |
Returns: KErrNone, if successful, otherwise one of the other system-wide error codes.
void | SetProcessPriorityL | ( | TProcessPriority | aPriority | ) | const [inline] |
Sets the priority of the client's process.
Parameter | Description |
---|---|
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.
Parameter | Description |
---|---|
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.
See also: TSecurityPolicy::CheckPolicy(RMessagePtr2 aMsgPtr, const char* aDiagnostic) const _LIT_SECURITY_POLICY_V0
Returns: The Vendor ID.
Writes data from the specified source descriptor to the specified offset within the 8-bit descriptor argument.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The source descriptor containing the data to be written. |
aOffset | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |
Returns: KErrNone, if successful; KErrArgument if aParam has a value outside the valid range, or if aOffset is negative. KErrBadDescriptor, if the message argument is not an 8-bit descriptor; KErrOverflow, if the target descriptor is too small to containt the data.
Writes data from the specified source descriptor to the specified offset within the 16-bit descriptor argument.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The source descriptor containing the data to be written. |
aOffset | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |
Returns: KErrNone, if successful; KErrArgument if aParam has a value outside the valid range, or if aOffset is negative. KErrBadDescriptor, if the message argument is not an 16-bit descriptor; KErrOverflow, if the target descriptor is too small to containt the data.
Writes data from the specified source descriptor to the specified offset within the 8-bit descriptor argument, and leaving on failure.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The source descriptor containing the data to be written. |
aOffset | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |
Writes data from the specified source descriptor to the specified offset within the 16-bit descriptor argument, and leaving on failure.
Parameter | Description |
---|---|
aParam | The index value identifying the argument. This is a value in the range 0 to (KMaxMessageArguments-1) inclusive. |
aDes | The source descriptor containing the data to be written. |
aOffset | The offset from the start of the client's descriptor. If not explicitly specified, the offset defaults to zero. |