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 TIntCancelReceiveEvents()
IMPORT_C voidReceiveEvents(TMMFEventPckg &, TRequestStatus &)
IMPORT_C voidShutdown()
TThreadId SubThreadId()
Protected Member Functions
TInt DoCreateSubThread(const TDesC &, TThreadFunction, TBool)
voidPanic(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(TTimeIntervalMicroSeconds32aShutdownTimeout)[inline]

Parameters

TTimeIntervalMicroSeconds32 aShutdownTimeout

Member Functions Documentation

CancelReceiveEvents()

IMPORT_C TIntCancelReceiveEvents()

DoCreateSubThread(const TDesC &, TThreadFunction, TBool)

TInt DoCreateSubThread(const TDesC &aName,
TThreadFunctionaFunction,
TBoolaUseNewHeap = EFalse
)[protected]

Should be called by derived classes to start the subthread.

Parameters

const TDesC & aName
TThreadFunction aFunction
TBool aUseNewHeap = EFalse

Panic(TMMFSubThreadPanicCode)

voidPanic(TMMFSubThreadPanicCodeaPanicCode)[protected]

Parameters

TMMFSubThreadPanicCode aPanicCode

ReceiveEvents(TMMFEventPckg &, TRequestStatus &)

IMPORT_C voidReceiveEvents(TMMFEventPckg &aEventPckg,
TRequestStatus &aStatus
)

Allows a client to receive events from the subthread.

Parameters

TMMFEventPckg & aEventPckg
TRequestStatus & aStatus

Shutdown()

IMPORT_C voidShutdown()

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]