Den::CWorkerSubSession Class Reference

class Den::CWorkerSubSession : public CBase

Inherits from

Public Member Functions
~CWorkerSubSession ()
void CleanupDeadWorker ( CommsFW::TWorkerId )
IMPORT_C void ComposeSubSessionName (const CWorkerSubSession *, TName &)
TInt DecomposeSubSessionName (const TName &, CommsFW::TWorkerId &, CWorkerSubSession *&)
void DeleteMe ()
IMPORT_C void DontCompleteCurrentRequest ()
IMPORT_C TInt FetchSubSessionFromName (const TName &, TSubSessInfo , const CCommonWorkerThread &, CWorkerSubSession *&)
void FinalCompleteAllBlockedMessages ( TInt )
IMPORT_C void GetOwnerInfo ( TProcessId &, TUidType &, TThreadId &)
TBool IsClosing ()
CWorkerSubSession * KFlagSpecialForwardCase ()
TScopeUniqueId NextScopeUniqueId ()
CCommonPlayer & Player ()
void ProcessMessageL ()
IMPORT_C const RSafeMessage & SafeMessage ()
CWorkerSession * Session ()
const CWorkerSession * Session ()
CCommonSessionProxy * SessionProxy ()
const CCommonSessionProxy * SessionProxy ()
IMPORT_C void SetReturn ( TInt )
void SetSession ( CWorkerSession *)
void SetSessionProxy ( CCommonSessionProxy *)
IMPORT_C void SetUniqueId (const TSubSessionUniqueId &)
IMPORT_C void StoreOwnerInfo ()
TSubSessInfo Type ()
const TSubSessionUniqueId & UniqueId ()
Protected Member Functions
CWorkerSubSession ( CWorkerSession *, CCommonPlayer *, TSubSessionUniqueId )
IMPORT_C void CloseAllSubSessionIpcExtensions ()
IMPORT_C void CloseSubSessionIpcExtension (const RSafeMessage &, const TApiExtIdentification &)
IMPORT_C void CompleteMessage (const RMessage2 &, TInt )
IMPORT_C void ConstructL ()
TIpcExtensionRoutingMessageFromSubSession * DoIsSubSessionIpcExtensionSupported ( TInt , TDes8 &)
IMPORT_C TIpcExtensionRoutingMessageFromSubSession * IsSubSessionIpcExtensionSupported ( TInt , TDes8 &)
IMPORT_C void OpenSubSessionIpcExtensionL (const RSafeMessage &, const TApiExtIdentification &)
IMPORT_C void PanicClient ( TInt )
IMPORT_C void PanicClient (const TDesC &, TInt )
void RemoveAndDestroy ()
IMPORT_C void SendReceiveSubSessionIpcExtensionL (const RSafeMessage &, const TApiExtIdentification &)
void SetClosing ()
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
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()
Protected Attributes
TBool iClosing
CCommonPlayer * iPlayer
CWorkerSession * iSession
TSubSessionUniqueId iSubSessionUniqueId
TThreadId iThreadId
Private Attributes
TApiExtRegister iApiExtRegister
TUint iNextScopeUniqueId
CCommonSessionProxy * iSessionProxy

Constructor & Destructor Documentation

CWorkerSubSession(CWorkerSession *, CCommonPlayer *, TSubSessionUniqueId)

IMPORT_C CWorkerSubSession ( CWorkerSession * aSession,
CCommonPlayer * aPlayer,
TSubSessionUniqueId aSubSessionUniqueId
) [protected]

Parameters

CWorkerSession * aSession
CCommonPlayer * aPlayer
TSubSessionUniqueId aSubSessionUniqueId

~CWorkerSubSession()

IMPORT_C ~CWorkerSubSession ( ) [virtual]

Member Functions Documentation

CleanupDeadWorker(CommsFW::TWorkerId)

void CleanupDeadWorker ( CommsFW::TWorkerId aWorkerId )

Parameters

CommsFW::TWorkerId aWorkerId

CloseAllSubSessionIpcExtensions()

IMPORT_C void CloseAllSubSessionIpcExtensions ( ) [protected]

CloseSubSessionIpcExtension(const RSafeMessage &, const TApiExtIdentification &)

IMPORT_C void CloseSubSessionIpcExtension ( const RSafeMessage & aMessage,
const TApiExtIdentification & aExtIdentification
) [protected]

Parameters

const RSafeMessage & aMessage
const TApiExtIdentification & aExtIdentification

CompleteMessage(const RMessage2 &, TInt)

IMPORT_C void CompleteMessage ( const RMessage2 & aMessage,
TInt aResult
) [protected]

Parameters

const RMessage2 & aMessage
TInt aResult

ComposeSubSessionName(const CWorkerSubSession *, TName &)

IMPORT_C void ComposeSubSessionName ( const CWorkerSubSession * aSubSess,
TName & aName
) [static]

Parameters

const CWorkerSubSession * aSubSess
TName & aName

ConstructL()

IMPORT_C void ConstructL ( ) [protected]

DecomposeSubSessionName(const TName &, CommsFW::TWorkerId &, CWorkerSubSession *&)

TInt DecomposeSubSessionName ( const TName & aName,
CommsFW::TWorkerId & aWorkerId,
CWorkerSubSession *& aSubSess
) [static]

Parameters

const TName & aName
CommsFW::TWorkerId & aWorkerId
CWorkerSubSession *& aSubSess

DeleteMe()

void DeleteMe ( ) [pure virtual]

DoIsSubSessionIpcExtensionSupported(TInt, TDes8 &)

TIpcExtensionRoutingMessageFromSubSession * DoIsSubSessionIpcExtensionSupported ( TInt ,
TDes8 &
) [protected, inline, virtual]

Parameters

TInt
TDes8 &

DontCompleteCurrentRequest()

IMPORT_C void DontCompleteCurrentRequest ( ) const

FetchSubSessionFromName(const TName &, TSubSessInfo, const CCommonWorkerThread &, CWorkerSubSession *&)

IMPORT_C TInt FetchSubSessionFromName ( const TName & aName,
TSubSessInfo aType,
const CCommonWorkerThread & aWorker,
CWorkerSubSession *& aSubSess
) [static]

Parameters

const TName & aName
TSubSessInfo aType
const CCommonWorkerThread & aWorker
CWorkerSubSession *& aSubSess

FinalCompleteAllBlockedMessages(TInt)

void FinalCompleteAllBlockedMessages ( TInt aResult ) [pure virtual]

Derived objects must implement this to make sure that all RMessage2 resources are completed when called. It is used in various close/clean-up scenarios.

Parameters

TInt aResult

GetOwnerInfo(TProcessId &, TUidType &, TThreadId &)

IMPORT_C void GetOwnerInfo ( TProcessId & aProcessId,
TUidType & aUidType,
TThreadId & aThreadId
) const

Parameters

TProcessId & aProcessId
TUidType & aUidType
TThreadId & aThreadId

IsClosing()

TBool IsClosing ( ) const [inline]

IsSubSessionIpcExtensionSupported(TInt, TDes8 &)

IMPORT_C TIpcExtensionRoutingMessageFromSubSession * IsSubSessionIpcExtensionSupported ( TInt aInterfaceId,
TDes8 & aBuff
) [protected]

Parameters

TInt aInterfaceId
TDes8 & aBuff

KFlagSpecialForwardCase()

CWorkerSubSession * KFlagSpecialForwardCase ( ) [static]

Special non-zero subsession pointer, used in a very few cases to select additional behaviour on a forwarded request. For example on creating a subsession this flags that tier resolution is first required

NextScopeUniqueId()

TScopeUniqueId NextScopeUniqueId ( ) [inline]

OpenSubSessionIpcExtensionL(const RSafeMessage &, const TApiExtIdentification &)

IMPORT_C void OpenSubSessionIpcExtensionL ( const RSafeMessage & aMessage,
const TApiExtIdentification & aExtIdentification
) [protected]

Parameters

const RSafeMessage & aMessage
const TApiExtIdentification & aExtIdentification

PanicClient(TInt)

IMPORT_C void PanicClient ( TInt aPanic ) [protected]

Parameters

TInt aPanic

PanicClient(const TDesC &, TInt)

IMPORT_C void PanicClient ( const TDesC & aCategory,
TInt aPanic
) [protected]

Parameters

const TDesC & aCategory
TInt aPanic

Player()

CCommonPlayer & Player ( ) const [inline]

ProcessMessageL()

void ProcessMessageL ( ) [pure virtual]

Derived objects must implement this to continue the processing of the current message.

RemoveAndDestroy()

void RemoveAndDestroy ( ) [protected]

SafeMessage()

IMPORT_C const RSafeMessage & SafeMessage ( ) const

SendReceiveSubSessionIpcExtensionL(const RSafeMessage &, const TApiExtIdentification &)

IMPORT_C void SendReceiveSubSessionIpcExtensionL ( const RSafeMessage & aMessage,
const TApiExtIdentification & aExtIdentification
) [protected]

Parameters

const RSafeMessage & aMessage
const TApiExtIdentification & aExtIdentification

Session()

CWorkerSession * Session ( ) [inline]

Session()

const CWorkerSession * Session ( ) const [inline]

SessionProxy()

CCommonSessionProxy * SessionProxy ( ) [inline]

SessionProxy()

const CCommonSessionProxy * SessionProxy ( ) const [inline]

SetClosing()

void SetClosing ( ) [protected, inline]

SetReturn(TInt)

IMPORT_C void SetReturn ( TInt aReturnValue ) const

Parameters

TInt aReturnValue

SetSession(CWorkerSession *)

void SetSession ( CWorkerSession * aProxy ) [inline]

Parameters

CWorkerSession * aProxy

SetSessionProxy(CCommonSessionProxy *)

void SetSessionProxy ( CCommonSessionProxy * aProxy ) [inline]

Parameters

CCommonSessionProxy * aProxy

SetUniqueId(const TSubSessionUniqueId &)

IMPORT_C void SetUniqueId ( const TSubSessionUniqueId & aUniqueId )

Parameters

const TSubSessionUniqueId & aUniqueId

StoreOwnerInfo()

IMPORT_C void StoreOwnerInfo ( )

Type()

TSubSessInfo Type ( ) const [pure virtual]

UniqueId()

const TSubSessionUniqueId & UniqueId ( ) const [inline]

Member Data Documentation

TApiExtRegister iApiExtRegister

TApiExtRegister iApiExtRegister [private]

TBool iClosing

TBool iClosing [protected]

TUint iNextScopeUniqueId

TUint iNextScopeUniqueId [private]

CCommonPlayer * iPlayer

CCommonPlayer * iPlayer [protected]

CWorkerSession * iSession

CWorkerSession * iSession [protected]

CCommonSessionProxy * iSessionProxy

CCommonSessionProxy * iSessionProxy [private]

TSubSessionUniqueId iSubSessionUniqueId

TSubSessionUniqueId iSubSessionUniqueId [protected]

TThreadId iThreadId

TThreadId iThreadId [protected]

The thread id of the creator of the subsession, part of the OwnerInfo. This can be misleading, since sessions can be shared between threads of a client - to really know what thread is responsible for the current operator query its RMessage2