#include <scs/scsclient.h>
class RScsClientBase : public RSessionBase |
Public Member Functions | |
---|---|
IMPORT_C void | Close() |
IMPORT_C TInt | ResetServerHeapFail() |
IMPORT_C TInt | SetServerHeapFail(TInt) |
IMPORT_C TInt | ShutdownServer() |
Protected Member Functions | |
---|---|
RScsClientBase() | |
IMPORT_C TInt | CallSessionFunction(TInt) |
IMPORT_C TInt | CallSessionFunction(TInt, const TIpcArgs &) |
IMPORT_C void | CallSessionFunction(TInt, const TIpcArgs &, TRequestStatus &) |
IMPORT_C void | CancelSessionFunction(TInt) |
IMPORT_C TInt | Connect(const TDesC &, const TVersion &, const TDesC &, const TUidType &) |
Inherited Attributes | |
---|---|
RHandleBase::iHandle |
Inherited Enumerations | |
---|---|
RHandleBase:TAttributes | |
RSessionBase:TAttachMode |
Provides functionality to connect to the server, starting the server process if necessary. This class cannot be used directly - the SCS implementor must define a subclass.
IMPORT_C | RScsClientBase | ( | ) | [protected] |
This constructor is protected to ensure this class is not instantiated directly.
Send a command to the corresponding server-side session. The subclass uses this function instead of directly calling RSubSessionBase::SendReceive because it adds the SCS code which marks this as an ordinary session call.
Parameter | Description |
---|---|
aFunction | Function identifier. Bits 31:24 must be zero, because they are reserved for SCS commands. |
Returns: Error code with which the server completed the request.
Send a command to the corresponding server-side session. The subclass uses this function instead of directly calling RSubSessionBase::SendReceive because it adds the SCS code which marks this as an ordinary session call.
Parameter | Description |
---|---|
aFunction | Session function identifier. Bits 31:24 must be zero, because they are reserved for SCS commands. |
aArgs | Standard IPC arguments. |
Returns: Error code with which the server completed the request.
IMPORT_C void | CallSessionFunction | ( | TInt | aFunction, |
const TIpcArgs & | aArgs, | |||
TRequestStatus & | aStatus | |||
) | const [protected] |
Send the supplied function identifier and arguments to the server-side session. The subclass uses this function instead of directly calling RSubSessionBase::SendReceive because it adds the SCS code which marks this as an ordinary session call.
Parameter | Description |
---|---|
aFunction | Session function identifier. Bits 31:24 must be zero, because they are reserved for SCS commands. |
aArgs | Standard IPC arguments. |
aStatus | This will be completed by the server when it has finished handling the function. |
IMPORT_C void | CancelSessionFunction | ( | TInt | aFunction | ) | const [protected] |
Cancel an outstanding session request. This has no effect if the request is not outstanding.
Parameter | Description |
---|---|
aFunction | Implementation function. This must be the same value that was supplied to CallSessionFunction. |
IMPORT_C void | Close | ( | ) |
Reimplemented from RHandleBase::Close()
This method should be used in preference to RScsSessionBase::Close because it sends a message to cancel any outstanding requests on the session or its subsessions.
IMPORT_C TInt | Connect | ( | const TDesC & | aSvrName, |
const TVersion & | aReqVer, | |||
const TDesC & | aExeName, | |||
const TUidType & | aFullExeUid | |||
) | [protected] |
Attempt to connect to the named server. If the server is not available then attempt to start its hosting process.
Parameter | Description |
---|---|
aSvrName | Name of server to connect to. |
aReqVer | Required server version. |
aExeName | Executable which hosts the server. This function will launch this executable if the server is not running. |
aFullExeUid | The server executable's full UID. This ensures the intended executable is started, and not another executable with the same name. |
Returns: Symbian OS error code. KErrNone indicates success, and any other value indicates failure.
IMPORT_C TInt | ResetServerHeapFail | ( | ) |
Finish marking the server heap and reset the failure rate. This should match a previous call to SetServerHeapFail.
If there is a heap imbalance, then the server will be panicked.
This function is empty in release builds.
See also: SetServerHeapFail __UHEAP_MARKEND __UHEAP_RESET
Start marking the server heap and set a deterministic fail rate. This should matched with a call to EndServerHeapFail.
This function is empty in release builds.
See also: EndServerHeapFail __UHEAP_MARK __UHEAP_SETFAIL
Parameter | Description |
---|---|
aRate | Number of allocations after which allocation should fail on the server heap. |
IMPORT_C TInt | ShutdownServer | ( | ) |
DEBUG USE ONLY - Tells the server to shutdown down ASAP, and block until it has done so. This also closes the current session.
If the server is not configured to use a inactivity shutdown timer, this will fail with KErrNotSupported.
nb. You may still need to call the Close function of a derived class to ensure it gets to cleanup...
Returns: Symbian OS error code where KErrNone indicates success and any other value indicates failure.