RMMFSubThreadBase Class Reference

#include <mmf/server/mmfsubthreadbase.h>

Link against: mmfserverbaseclasses.lib

class RMMFSubThreadBase : public RMmfSessionBase

Inherits from

Protected Attributes
TTimeIntervalMicroSeconds32 iShutdownTimeout
RThread iSubThread
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 Attributes
RHandleBase::iHandle
Inherited Enumerations
RHandleBase:TAttributes
RSessionBase:TAttachMode
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()

Detailed Description

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

Member Attribute Documentation

iShutdownTimeout

TTimeIntervalMicroSeconds32 iShutdownTimeout[protected]

iSubThread

RThread iSubThread[protected]

Constructor & Destructor Documentation

RMMFSubThreadBase ( TTimeIntervalMicroSeconds32 )

RMMFSubThreadBase(TTimeIntervalMicroSeconds32aShutdownTimeout)[inline]

Member Function 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.

Panic ( TMMFSubThreadPanicCode )

voidPanic(TMMFSubThreadPanicCodeaPanicCode)[protected]

ReceiveEvents ( TMMFEventPckg &, TRequestStatus & )

IMPORT_C voidReceiveEvents(TMMFEventPckg &aEventPckg,
TRequestStatus &aStatus
)

Allows a client to receive events from the subthread.

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.