Location:
e32std.h
Link against: euser.lib
class RSubSessionBase;
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:
1. provide a function to create a new sub-session with the server; this should call CreateSubSession()
.
2. 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()
, CreateAutoCloseSubSession()
, CreateSubSession()
, CreateSubSession()
, RSubSessionBase()
, Send()
, Send()
, SendReceive()
, SendReceive()
, SendReceive()
, SendReceive()
, Session()
, SubSessionHandle()
inline TInt SubSessionHandle() const;
Gets 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.
|
protected: IMPORT_C const RSessionBase Session() const;
Returns a copy of the session associated with this sub-session.
|
protected: inline TInt CreateSubSession(const RSessionBase &aSession, TInt aFunction, const TIpcArgs &aArgs);
Creates a new sub-session within an existing session.
|
|
protected: inline TInt CreateSubSession(const RSessionBase &aSession, TInt aFunction);
Creates a new sub-session within an existing session.
This variant sends no message arguments to the server.
|
|
protected: IMPORT_C TInt CreateAutoCloseSubSession(RSessionBase &aSession, TInt aFunction, const TIpcArgs &aArgs);
Creates a new sub-session within an existing session. The new sub-session takes ownership of the session so that when the sub-session is closed, the session is closed too. If the creation of the sub-session fails, the session is closed immediately. In other words, this method will always take ownership of the session, whether it succeeds or not and the caller should never need to close it.
|
|
protected: IMPORT_C void CloseSubSession(TInt aFunction);
Closes the sub-session.
|
protected: inline TInt Send(TInt aFunction, const TIpcArgs &aArgs) const;
Sends a blind message to the server - no reply is expected.
A set of message arguments is passed that can 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: inline void SendReceive(TInt aFunction, const TIpcArgs &aArgs, TRequestStatus &aStatus) const;
Sends a message to the server and waits asynchronously for the reply.
An opcode specifies the service required. A set of message arguments is passed that can 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: inline TInt SendReceive(TInt aFunction, const TIpcArgs &aArgs) const;
Sends a message to the server and waits synchronously for a reply.
An opcode specifies the service required. A set of message arguments is passed that can 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()
.
|
|
protected: inline TInt Send(TInt aFunction) const;
Sends a blind message to the server - no reply is expected.
This variant sends no message arguments to the server.
|
|
protected: inline void SendReceive(TInt aFunction, TRequestStatus &aStatus) const;
Sends a message to the server and waits asynchronously for the reply.
An opcode specifies the service required. This variant sends no message arguments to the server.
|
protected: inline TInt SendReceive(TInt aFunction) const;
Sends a message to the server and waits synchronously for a reply.
An opcode specifies the service required. This variant sends no message arguments to the server.
|
|