CRvObserver Class Reference

class CRvObserver : public CActive

Inherits from

Constructor & Destructor Documentation

CRvObserver(RProcess &, MRvObserverNotification &, CApaStarter *)

CRvObserver(RProcess &aProcess,
MRvObserverNotification &aObserved,
CApaStarter *aApaStarter
)[private]

Parameters

RProcess & aProcess
MRvObserverNotification & aObserved
CApaStarter * aApaStarter

~CRvObserver()

~CRvObserver()

Member Functions Documentation

ConstructL()

voidConstructL()[private]

DoCancel()

voidDoCancel()[protected, virtual]

Implements cancellation of an outstanding request.

This function is called as part of the active object's Cancel().

It must call the appropriate cancel function offered by the active object's asynchronous service provider. The asynchronous service provider's cancel is expected to act immediately.

DoCancel() must not wait for event completion; this is handled by Cancel().

CActive::Cancel

GetProcessHandle(RProcess &, const TThreadId &)

TInt GetProcessHandle(RProcess &aProcess,
const TThreadId &aThreadId
)[private]

Calls here are only relevant in the case of StartApp.

Parameters

RProcess & aProcess
const TThreadId & aThreadId

GoodStart()

TBool GoodStart()[private]

Has the process rv'd with an error? If so terminate it. Has the process been panicked with KErrNone? If so translate that error to KErrGeneral; If the process has panicked or been killed, the Exit reason should be conveyed via iStatus. Any leave here occurs in the context of RunL, therefore any such notifications are performed via RunError(). An error code of KErrAlreadyExists is presumed to imply that an attempt has been made to start a pre-existing server. This is translated to KErrNone which allows CSsmStartSafe::StartAndMonitorL() to apply monitoring to the running server.

InvokeL()

voidInvokeL()[private]

Leaves here occur in the context of RunL, therefore error notification is performed via RunError()

NewL(RProcess &, MRvObserverNotification &, CApaStarter *)

CRvObserver *NewL(RProcess &aProcess,
MRvObserverNotification &aObserved,
CApaStarter *aApaStarter
)[static]

Parameters

RProcess & aProcess
MRvObserverNotification & aObserved
CApaStarter * aApaStarter

NewLC(RProcess &, MRvObserverNotification &, CApaStarter *)

CRvObserver *NewLC(RProcess &aProcess,
MRvObserverNotification &aObserved,
CApaStarter *aApaStarter
)[static]

Parameters

RProcess & aProcess
MRvObserverNotification & aObserved
CApaStarter * aApaStarter

NotifyOrRetryL()

voidNotifyOrRetryL()[private]

Leaves here occur in the context of RunL, therefore error notification is performed via RunError()

NotifyTimeout()

voidNotifyTimeout()

RunError(TInt)

TInt RunError(TIntaError)[protected, virtual]

Parameters

TInt aError

RunL()

voidRunL()[protected, virtual]

We are either starting for the first time, or an app or process has rendezvouzed. If the latter, check if it has done so without error and behave as appropriate.

RvAndObserveL(CSsmStartupProperties *)

voidRvAndObserveL(CSsmStartupProperties *aStartupProperties)

Parameters

CSsmStartupProperties * aStartupProperties

Member Data Documentation

CApaStarter * iApaStarter

CApaStarter *iApaStarter[private]

TInt iHandleNumber

TInt iHandleNumber[private]

TRvObserverState iObserverState

TRvObserverState iObserverState[private]

RProcess & iProcess

RProcess &iProcess[private]

TInt iRetries

TInt iRetries[private]

MRvObserverNotification & iStarter

MRvObserverNotification &iStarter[private]

CSsmStartupProperties * iStartupProperties

CSsmStartupProperties *iStartupProperties[private]

TThreadId iThreadId

TThreadId iThreadId[private]

TBool iTimeOut

TBool iTimeOut[private]

CTimeoutWaiter * iTimeoutWaiter

CTimeoutWaiter *iTimeoutWaiter[private]