CRootServerSession Class Reference

class CRootServerSession : public CSession2

Required session object as required by the client/server framework. Implements the "Secure IPC" API.

Inherits from

Public Member Functions
CRootServerSession(const CRootServer *)
~CRootServerSession()
voidCloseSession()
RMessage2 &GetMessage()
voidRegisterHandler(CSessionHandler &)
CRootServer *RootServer()
IMPORT_C voidServiceL(const RMessage2 &)
IMPORT_C voidSuddenDeath(TInt)
Protected Member Functions
TInt BindL(const RMessage2 &)
TInt CancelBind(const RMessage2 &)
TInt CancelLoadCPM(const RMessage2 &)
TInt CancelUnbind(const RMessage2 &)
TInt CancelUnloadCPM(const RMessage2 &)
IMPORT_C voidDisconnect(const RMessage2 &)
TInt EnumerateBindings(const RMessage2 &)
TInt EnumerateModules(const RMessage2 &)
TInt EnumerateSubModules(const RMessage2 &)
TInt Forward(const RMessage2 &)
TInt GetModuleInfo(const RMessage2 &)
TInt IsCallerConfigurator(const RMessage2 &)
TInt LoadCPML(const RMessage2 &)
TInt Shutdown()
TInt UnbindL(const RMessage2 &)
TInt UnloadCPML(const RMessage2 &)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
CSession2::CSession2()
CSession2::CountResources()
CSession2::Extension_(TUint,TAny *&,TAny *)
CSession2::ResourceCountMarkEnd(const RMessage2 &)
CSession2::ResourceCountMarkStart()
CSession2::Server()const
CSession2::ServiceError(const RMessage2 &,TInt)
CSession2::SetServer(const CServer2 *)
CSession2::~CSession2()
Inherited Enumerations
CSession2:TPanicNo
Protected Attributes
CRootServer *iRootServer
Private Attributes
TDblQue< CSessionHandler >iActiveHandlers
CommsFW::TCFSubModuleAddress iEnumBindings
CommsFW::TCFSubModuleNameF iEnumSubs
TInt iEnumerateBindingsIndex
TInt iEnumerateModulesIndex
TInt iEnumerateSubModulesIndex
RMessage2 iMessage
TBool iRequestActive
TBool iSuddenDeathListener
RMessage2 iSuddenDeathMessage

Constructor & Destructor Documentation

CRootServerSession(const CRootServer *)

IMPORT_CCRootServerSession(const CRootServer *aRootServer)

Parameters

const CRootServer * aRootServer

~CRootServerSession()

IMPORT_C~CRootServerSession()[virtual]

RootserverSession destructor.

Member Functions Documentation

BindL(const RMessage2 &)

TInt BindL(const RMessage2 &aMessage)[protected]

Bind two submodules. Binds two modules together by prompting the binding manager in the right way. If the top module is a server, then the bind type must be a hierarchical bind!

Parameters

const RMessage2 & aMessageThe message which will be completed.

CancelBind(const RMessage2 &)

TInt CancelBind(const RMessage2 &aMessage)[protected]

Cancel a bind request. Attempt to cancel a pending bind request between two modules. Simply looks for a match in the list of pending session handler requests.

Parameters

const RMessage2 & aMessageThe message which will be completed.

CancelLoadCPM(const RMessage2 &)

TInt CancelLoadCPM(const RMessage2 &aMessage)[protected]

Attempt to cancel a load cpm request. If a pending request is not found, we check that the module is running already. We cannot actually cancel a request as we cannot guarantee that it will not be completed just after we delete the request, which will therefore lead to a stray event - bad!

Parameters

const RMessage2 & aMessageThe message which will be completed.

CancelUnbind(const RMessage2 &)

TInt CancelUnbind(const RMessage2 &aMessage)[protected]

Cancel an unbind request. Attempt to cancel a previous request to unbind two submodules. Again tries to match a pending session handler request.

Parameters

const RMessage2 & aMessageThe message which will be completed.

CancelUnloadCPM(const RMessage2 &)

TInt CancelUnloadCPM(const RMessage2 &aMessage)[protected]

Cancel an unload cpm request. If a pending unload request is found, then we still cannot cancel it, otherwise we may have a stray event as we cannot guarantee that the request would not be completed just after we attempt to cancel it.

Parameters

const RMessage2 & aMessageThe message which will be completed.

CloseSession()

voidCloseSession()

Close session to rootserver.

Disconnect(const RMessage2 &)

IMPORT_C voidDisconnect(const RMessage2 &aMessage)[protected, virtual]

Parameters

const RMessage2 & aMessage

EnumerateBindings(const RMessage2 &)

TInt EnumerateBindings(const RMessage2 &aMessage)[protected]

Get binding info for a module. We fill a descriptor with bindInfo objects

Parameters

const RMessage2 & aMessageThe message to be filled with bindInfo.

EnumerateModules(const RMessage2 &)

TInt EnumerateModules(const RMessage2 &aMessage)[protected]

Enumerate the rootserver. Finds loaded modules in the root server and fills a descriptor list in the message

Parameters

const RMessage2 & aMessageThe client message.

EnumerateSubModules(const RMessage2 &)

TInt EnumerateSubModules(const RMessage2 &aMessage)[protected]

Enumerate the rootserver. Finds loaded modules in the root server and fills a descriptor list in the message

Parameters

const RMessage2 & aMessageThe message to be filled with list of modules found.

Forward(const RMessage2 &)

TInt Forward(const RMessage2 &aMessage)[protected]

Forwards a message to a module

Parameters

const RMessage2 & aMessage

GetMessage()

RMessage2 &GetMessage()

GetModuleInfo(const RMessage2 &)

TInt GetModuleInfo(const RMessage2 &aMessage)[protected]

Get info for a module. Fills a descriptor with information regarding the module specified in the message

Parameters

const RMessage2 & aMessageThe message to be filled with moduleInfo.

IsCallerConfigurator(const RMessage2 &)

TInt IsCallerConfigurator(const RMessage2 &aMessage)[protected, virtual]

Parameters

const RMessage2 & aMessage

LoadCPML(const RMessage2 &)

TInt LoadCPML(const RMessage2 &aMessage)[protected]

Load a module. Generic load function for both servers and providers. Simply reads data from message and uses aModuleRequest to decide which type of load to kick off

Parameters

const RMessage2 & aMessageThe message which will be completed.

RegisterHandler(CSessionHandler &)

voidRegisterHandler(CSessionHandler &aHandler)

Register session handlers.

Parameters

CSessionHandler & aHandlerReference to handler to be registered to allow deletion

RootServer()

CRootServer *RootServer()

ServiceL(const RMessage2 &)

IMPORT_C voidServiceL(const RMessage2 &aMessage)[virtual]

Messages are handled here.

Parameters

const RMessage2 & aMessage

Shutdown()

TInt Shutdown()[protected]

Shutdown root server If there are any modules running, it creates a new handler for each one, which unload their module. When there are no more modules left running, the root server is shutdown

SuddenDeath(TInt)

IMPORT_C voidSuddenDeath(TIntaError)

Handles Sudden Death completion events

Parameters

TInt aError

UnbindL(const RMessage2 &)

TInt UnbindL(const RMessage2 &aMessage)[protected]

Unbind two submodules. Unbinds two modules by asking the bind manager to deal with request. Uses rootserver findProvider() and findServer() functions to check if requested modules are loaded

Parameters

const RMessage2 & aMessageThe message which will be completed.

UnloadCPML(const RMessage2 &)

TInt UnloadCPML(const RMessage2 &aMessage)[protected]

Unload a cpm. If the cpm requested to unload is found, then the bindmgr is called to shutdown the module

Parameters

const RMessage2 & aMessageThe message which will be completed.

Member Data Documentation

TDblQue< CSessionHandler > iActiveHandlers

TDblQue< CSessionHandler >iActiveHandlers[private]

CommsFW::TCFSubModuleAddress iEnumBindings

CommsFW::TCFSubModuleAddress iEnumBindings[private]

CommsFW::TCFSubModuleNameF iEnumSubs

CommsFW::TCFSubModuleNameF iEnumSubs[private]

TInt iEnumerateBindingsIndex

TInt iEnumerateBindingsIndex[private]

TInt iEnumerateModulesIndex

TInt iEnumerateModulesIndex[private]

TInt iEnumerateSubModulesIndex

TInt iEnumerateSubModulesIndex[private]

RMessage2 iMessage

RMessage2 iMessage[private]

TBool iRequestActive

TBool iRequestActive[private]

CRootServer * iRootServer

CRootServer *iRootServer[protected]

TBool iSuddenDeathListener

TBool iSuddenDeathListener[private]

RMessage2 iSuddenDeathMessage

RMessage2 iSuddenDeathMessage[private]