|
|
|
Location:
e32std.h
Link against: euser.lib
RSubSessionBase
Supported from 5.0
Client-side handle to a sub-session.
It represents a client-side sub-session and has a corresponding sub-session object on the server-side.
Clients normally define and implement a derived class to provide a richer interface. In particular, a derived class should:
provide a function to create a new sub-session with the server;
this should call CreateSubSession().
provide a function to close the current sub-session; this
should call CloseSubSession().
A session must already exist with a server before a client can establish any sub-sessions.
Defined in RSubSessionBase:
CloseSubSession(), CreateSubSession(), RSubSessionBase(), RSubSessionBase(), Send(), SendReceive(), SendReceive(), SubSessionHandle(), operator=()
protected: RSubSessionBase(const RSubSessionBase& aSubSession);
Copy constructor.
|
protected: RSubSessionBase& operator=(const RSubSessionBase& aSubSession);
Assignment constructor.
|
|
protected: TInt CreateSubSession(RSessionBase& aSession,TInt aFunction,const TAny* aPtr);
Creates a new sub-session within an existing session.
|
|
protected: void CloseSubSession(TInt aFunction);
Closes the sub-session.
|
protected: TInt Send(TInt aFunction,const TAny* aPtr) const;
Sends a blind message to the server — no reply is expected. A message argument array is passed; this may be used to specify client addresses which the server can use to read from and write to the client address space.
Note that this function can fail if there are no available message-slots, either in the system wide pool (if this is being used), or in the session reserved pool (if this is being used). If the client request is synchronous, then always use the synchronous variant of SendReceive(); this is guaranteed to reach the server.
|
|
protected: void SendReceive(TInt aFunction,const TAny* aPtr,TRequestStatus& aStatus) const;
Sends a message to the server and waits asynchronously for the reply. An opcode specifies the service required. A message argument array is passed; this may be used to specify client addresses which the server can use to read from and write to the client address space.
Note that this function can fail if there are no available message-slots, either in the system wide pool (if this is being used), or in the session reserved pool (if this is being used). If the client request is synchronous, then always use the synchronous variant of SendReceive(); this is guaranteed to reach the server.
|
protected: TInt SendReceive(TInt aFunction,const TAny* aPtr) const;
Sends a message to the server and waits synchronously for a reply. An opcode specifies the service required. A message argument array is passed; this may be used to specify client addresses which the server can use to read from and write to the client address space.
Note that this function will only fail if the server itself fails or environmental errors occur in the server.
All requests made using this function are guaranteed to reach the server.
This means that all synchronous client requests (typically those that return void) should be routed through this synchronous variant of SendReceive().
|
|
TInt SubSessionHandle();
Returns the sub-session handle number.
This number is automatically passed to the server when making requests and is used to identify the appropriate server-side sub-session.
|