class TIpcArgs |
A Version 2 client/server class that clients use to package the arguments to be sent to a server.
The object can package up to 4 arguments together with information about each argument's type, width and accessibility; it is also possible for the package to contain zero arguments. In addition to the default constructor, the class has four templated constructors, allowing an object of this type to be constructed for 0, 1, 2, 3 or 4 arguments.
Internally, the arguments are stored in a simple TInt array. Consecutive arguments in a constructor's parameter list are put into consecutive slots in the array. The Set() overloaded functions can be used to set argument values into specific slots within this array.
Public Member Functions | |
---|---|
TIpcArgs() | |
TIpcArgs(T0) | |
TIpcArgs(T0, T1) | |
TIpcArgs(T0, T1, T2) | |
TIpcArgs(T0, T1, T2, T3) | |
TIpcArgs & | PinArgs(TBool, TBool, TBool, TBool) |
void | Set(TInt, TNothing) |
void | Set(TInt, TInt) |
void | Set(TInt, const TAny *) |
void | Set(TInt, RHandleBase) |
void | Set(TInt, const TDesC8 *) |
void | Set(TInt, const TDesC16 *) |
void | Set(TInt, TDes8 *) |
void | Set(TInt, TDes16 *) |
Private Member Functions | |
---|---|
void | Assign(TInt &, TNothing) |
void | Assign(TInt &, TInt) |
void | Assign(TInt &, const TAny *) |
void | Assign(TInt &, RHandleBase) |
void | Assign(TInt &, const TDesC8 *) |
void | Assign(TInt &, const TDesC16 *) |
void | Assign(TInt &, TDes8 *) |
void | Assign(TInt &, TDes16 *) |
TArgType | Type(TNothing) |
TArgType | Type(TInt) |
TArgType | Type(const TAny *) |
TArgType | Type(RHandleBase) |
TArgType | Type(const TDesC8 *) |
TArgType | Type(const TDesC16 *) |
TArgType | Type(TDes8 *) |
TArgType | Type(TDes16 *) |
Public Member Enumerations | |
---|---|
enum | anonymous { KBitsPerType = 3, KPinArgShift = KBitsPerType*KMaxMessageArguments, KPinArg0 = 1<<(KPinArgShift+0), KPinArg1 = 1<<(KPinArgShift+1), KPinArg2 = 1<<(KPinArgShift+2), KPinArg3 = 1<<(KPinArgShift+3), KPinMask = 0xf<<KPinArgShift } |
enum | TArgType { EUnspecified = 0, EHandle = 1, EFlagDes = 4, EFlagConst = 2, EFlag16Bit = 1, EDes8 = EFlagDes, EDes16 = EFlagDes|EFlag16Bit, EDesC8 = EFlagDes|EFlagConst, EDesC16 = EFlagDes|EFlagConst|EFlag16Bit } |
enum | TNothing { ENothing } |
Public Attributes | |
---|---|
TInt | iArgs |
TInt | iFlags |
TIpcArgs | ( | ) | [inline] |
Default constructor.
An argument package constructed using this constructor has no arguments; however, arguments can subsequently be set into this argument package object using the Set() member functions.
TIpcArgs | ( | T0 | a0 | ) | [inline, explicit] |
A templated constructor that constructs the argument package; it takes 1 argument.
T0 a0 | An argument of general class type T0 to be contained by this object. |
TIpcArgs | ( | T0 | a0, |
T1 | a1 | ||
) | [inline] |
A templated constructor that constructs the argument package; it takes 2 arguments.
T0 a0 | An argument of general class type T0 to be contained by this object. |
T1 a1 | An argument of general class type T1 to be contained by this object. |
TIpcArgs | ( | T0 | a0, |
T1 | a1, | ||
T2 | a2 | ||
) | [inline] |
A templated constructor that constructs the argument package; it takes 3 arguments.
T0 a0 | An argument of general class type T0 to be contained by this object. |
T1 a1 | An argument of general class type T1 to be contained by this object. |
T2 a2 | An argument of general class type T2 to be contained by this object. |
TIpcArgs | ( | T0 | a0, |
T1 | a1, | ||
T2 | a2, | ||
T3 | a3 | ||
) | [inline] |
A templated constructor that constructs the argument package; it takes 4 arguments.
T0 a0 | An argument of general class type T0 to be contained by this object. |
T1 a1 | An argument of general class type T1 to be contained by this object. |
T2 a2 | An argument of general class type T2 to be contained by this object. |
T3 a3 | An argument of general class type T3 to be contained by this object. |
void | Assign | ( | TInt & | aArg, |
RHandleBase | aValue | |||
) | [private, static, inline] |
TInt & aArg | |
RHandleBase aValue |
void | Assign | ( | TInt & | aArg, |
const TDesC8 * | aValue | |||
) | [private, static, inline] |
void | Assign | ( | TInt & | aArg, |
const TDesC16 * | aValue | |||
) | [private, static, inline] |
TIpcArgs & | PinArgs | ( | TBool | aPinArg0 = ETrue, |
TBool | aPinArg1 = ETrue, | |||
TBool | aPinArg2 = ETrue, | |||
TBool | aPinArg3 = ETrue | |||
) | [inline] |
Allows the client to specify whether each argument of the TIpcArgs object will be pinned before being sent to the server.
To pin all the arguments in the TIpcArgs object pass no parameters to this method.
A reference to this TIpcArgs object that can be passed as a parameter to one of the overloads the DSession::Send() and DSession::SendReceive() methods.
void | Set | ( | TInt | aIndex, |
TNothing | ||||
) | [inline] |
Sets an argument to default value and type.
void | Set | ( | TInt | aIndex, |
const TAny * | aValue | |||
) | [inline] |
Sets an argument value of TAny* type.
void | Set | ( | TInt | aIndex, |
RHandleBase | aValue | |||
) | [inline] |
Sets an argument value of RHandleBase type.
TInt aIndex | An index value that identifies the slot in the array of arguments into which the argument value is to be placed. This must be a value in the range 0 to 3. |
RHandleBase aValue | The argument value. |
void | Set | ( | TInt | aIndex, |
const TDesC8 * | aValue | |||
) | [inline] |
Sets an argument value TDesC8* type.
void | Set | ( | TInt | aIndex, |
const TDesC16 * | aValue | |||
) | [inline] |
Sets an argument value of TDesC16* type.
void | Set | ( | TInt | aIndex, |
TDes8 * | aValue | |||
) | [inline] |
Sets an argument value of TDes8* type.
void | Set | ( | TInt | aIndex, |
TDes16 * | aValue | |||
) | [inline] |
Sets an argument value of TDes16* type.
TArgType | Type | ( | RHandleBase | aValue | ) | [private, static, inline] |
RHandleBase aValue |
TArgType | Type | ( | const TDesC8 * | ) | [private, static, inline] |
const TDesC8 * |
TArgType | Type | ( | const TDesC16 * | ) | [private, static, inline] |
const TDesC16 * |
KBitsPerType = 3 |
Number of bits of type information used for each of the 4 arguments. |
KPinArgShift = KBitsPerType*KMaxMessageArguments |
Bit number of the start of the pin flags. |
KPinArg0 = 1<<(KPinArgShift+0) |
Set to pin argument at index 0. |
KPinArg1 = 1<<(KPinArgShift+1) |
Set to pin argument at index 1. |
KPinArg2 = 1<<(KPinArgShift+2) |
Set to pin argument at index 2. |
KPinArg3 = 1<<(KPinArgShift+3) |
Set to pin argument at index 3. |
KPinMask = 0xf<<KPinArgShift |
The bits used for the pinning attributes of each argument. |
Argument types; some of these may be ORed together to specify type, accessibility, and width.
EUnspecified = 0 |
Type not specified. |
EHandle = 1 |
Handle type. |
EFlagDes = 4 |
Descriptor type. |
EFlagConst = 2 |
Read only type. |
EFlag16Bit = 1 |
16 bit rather than 8 bit. |
EDes8 = EFlagDes |
8 bit read/write descriptor. |
EDes16 = EFlagDes|EFlag16Bit |
16 bit read/write descriptor. |
EDesC8 = EFlagDes|EFlagConst |
8 bit read only descriptor. |
EDesC16 = EFlagDes|EFlagConst|EFlag16Bit |
16 bit read only descriptor. |
Indicates a Null argument.
ENothing |
An enum value that can be used to indicate an empty or unused argument to a server. For example: TIpcArgs args(arg1, TIpcArgs::ENothing, arg2); This argument will have an undefined value when the server receives the message. |
TInt | iArgs |
The location where the message arguments are stored.
There is no reason to access this data member directly and it should be considered as internal.
TInt | iFlags |
The location where the flag bits describing the argument types are stored.
The symbolic values describing the argument types are internal to Symbian, and there is therefore no reason to access this data member directly. It should be considered as internal.