RMMFSubThreadBase Class Reference

class RMMFSubThreadBase : public RMmfSessionBase

Base class for clients to MMF sub threads. Provides functionality to start the sub thread and transmit events from subthread to main thread.

Inherits from

Public Member Functions
RMMFSubThreadBase ( TTimeIntervalMicroSeconds32 )
IMPORT_C TInt CancelReceiveEvents ()
IMPORT_C void ReceiveEvents ( TMMFEventPckg &, TRequestStatus &)
IMPORT_C void Shutdown ()
TThreadId SubThreadId ()
Protected Member Functions
TInt DoCreateSubThread (const TDesC &, TThreadFunction , TBool )
void Panic ( TMMFSubThreadPanicCode )
Inherited Functions
RHandleBase::Attributes()const
RHandleBase::BTraceId()const
RHandleBase::Close()
RHandleBase::DoExtendedClose()
RHandleBase::Duplicate(const RThread &,TOwnerType)
RHandleBase::FullName()const
RHandleBase::FullName(TDes &)const
RHandleBase::Handle()const
RHandleBase::HandleInfo(THandleInfo *)
RHandleBase::Name()const
RHandleBase::NotifyDestruction(TRequestStatus &)
RHandleBase::Open(const TFindHandleBase &,TOwnerType)
RHandleBase::OpenByName(const TDesC &,TOwnerType,TInt)
RHandleBase::RHandleBase()
RHandleBase::RHandleBase(TInt)
RHandleBase::SetHandle(TInt)
RHandleBase::SetHandleNC(TInt)
RMmfSessionBase::SendReceive(TInt)const
RMmfSessionBase::SendReceive(TInt,TInt)const
RMmfSessionBase::SendReceive(TInt,TInt,TInt)const
RMmfSessionBase::SendReceive(TInt,TInt,TInt,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,TInt,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,TInt,const TDesC8 &,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,TInt,const TDesC8 &,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC &)const
RMmfSessionBase::SendReceive(TInt,const TDesC &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &)const
RMmfSessionBase::SendReceive(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,TDes8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,TInt,const TDesC8 &,const TDesC8 &,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,TInt,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,TDes &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &,TDes8 &)const
RMmfSessionBase::SendReceiveResult(TInt,const TDesC8 &,const TDesC8 &,const TDesC8 &,TDes8 &,TRequestStatus &)const
RSessionBase::CreateSession(RServer2,const TVersion &)
RSessionBase::CreateSession(RServer2,const TVersion &,TInt)
RSessionBase::CreateSession(RServer2,const TVersion &,TInt,TIpcSessionType,const TSecurityPolicy *,TRequestStatus *)
RSessionBase::CreateSession(const TDesC &,const TVersion &)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt,TIpcSessionType,const TSecurityPolicy *,TRequestStatus *)
RSessionBase::CreateSession(const TDesC &,const TVersion &,TInt,TRequestStatus *)
RSessionBase::Open(RMessagePtr2,TInt,TOwnerType)
RSessionBase::Open(RMessagePtr2,TInt,const TSecurityPolicy &,TOwnerType)
RSessionBase::Open(TInt,TOwnerType)
RSessionBase::Open(TInt,const TSecurityPolicy &,TOwnerType)
RSessionBase::Send(TInt)const
RSessionBase::Send(TInt,const TIpcArgs &)const
RSessionBase::SendReceive(TInt,const TIpcArgs &)const
RSessionBase::SendReceive(TInt,const TIpcArgs &,TRequestStatus &)const
RSessionBase::SetReturnedHandle(TInt)
RSessionBase::SetReturnedHandle(TInt,RHandleBase &)
RSessionBase::SetReturnedHandle(TInt,const TSecurityPolicy &)
RSessionBase::ShareAuto()
RSessionBase::ShareProtected()
Inherited Enumerations
RHandleBase:TAttributes
RSessionBase:TAttachMode
Protected Attributes
TTimeIntervalMicroSeconds32 iShutdownTimeout
RThread iSubThread
Private Attributes
TRequestStatus iLogonStatus
TInt iReserved1
TInt iReserved2
TInt iReserved3
Inherited Attributes
RHandleBase::iHandle

Constructor & Destructor Documentation

RMMFSubThreadBase(TTimeIntervalMicroSeconds32)

RMMFSubThreadBase ( TTimeIntervalMicroSeconds32 aShutdownTimeout ) [inline]

Parameters

TTimeIntervalMicroSeconds32 aShutdownTimeout

Member Functions Documentation

CancelReceiveEvents()

IMPORT_C TInt CancelReceiveEvents ( )

DoCreateSubThread(const TDesC &, TThreadFunction, TBool)

TInt DoCreateSubThread ( const TDesC & aName,
TThreadFunction aFunction,
TBool aUseNewHeap = EFalse
) [protected]

Should be called by derived classes to start the subthread.

Parameters

const TDesC & aName
TThreadFunction aFunction
TBool aUseNewHeap = EFalse

Panic(TMMFSubThreadPanicCode)

void Panic ( TMMFSubThreadPanicCode aPanicCode ) [protected]

Parameters

TMMFSubThreadPanicCode aPanicCode

ReceiveEvents(TMMFEventPckg &, TRequestStatus &)

IMPORT_C void ReceiveEvents ( TMMFEventPckg & aEventPckg,
TRequestStatus & aStatus
)

Allows a client to receive events from the subthread.

Parameters

TMMFEventPckg & aEventPckg
TRequestStatus & aStatus

Shutdown()

IMPORT_C void Shutdown ( )

Signal to the subthread to exit. Note: This function will not return until the subthread has exited, or a timeout has occurred.

SubThreadId()

TThreadId SubThreadId ( ) [inline]

Returns the id of the subthread, allowing a client to logon to the thread to receive notification of its death.

Member Data Documentation

TRequestStatus iLogonStatus

TRequestStatus iLogonStatus [private]

Used to determine the success of a logon. If the status is not pending, the logon has failed and the thread should be closed.

TInt iReserved1

TInt iReserved1 [private]

This member is internal and not intended for use.

TInt iReserved2

TInt iReserved2 [private]

TInt iReserved3

TInt iReserved3 [private]

TTimeIntervalMicroSeconds32 iShutdownTimeout

TTimeIntervalMicroSeconds32 iShutdownTimeout [protected]

RThread iSubThread

RThread iSubThread [protected]