PRActivities::CCommsBinderActivity Class Reference

class PRActivities::CCommsBinderActivity : public MeshMachine::CNodeRetryParallelActivity
Public Member Functions
voidBindToComplete()
IMPORT_C Messages::RNodeInterface *Binder()
IMPORT_C voidCancel(MeshMachine::TNodeContextBase &)
DECLARE_SMELEMENT_FOOTER(TNoTagOrUseExisting)
DECLARE_SMELEMENT_FOOTER(TAwaitingBindToComplete)
DECLARE_SMELEMENT_FOOTER(TNoTagOrWaitForIncomingOrUseExisting)
DECLARE_SMELEMENT_FOOTER(TNoTagOrWaitForIncomingOrUseExistingDefault)
DECLARE_SMELEMENT_FOOTER(TStorePendingBinder)
DECLARE_SMELEMENT_FOOTER(TSendCustomFlowProvision)
DECLARE_SMELEMENT_FOOTER(TSendBinderResponse)
TContext virtual IMPORT_C voidDoL()
EXPORT_DECLARE_SMELEMENT_HEADER(TNoTagOrUseExisting, MeshMachine::TStateFork< TContext >, NetStateMachine::MStateFork, TContext)
CCommsBinderActivity::TNoTagOrUseExisting EXPORT_DECLARE_SMELEMENT_HEADER(TAwaitingBindToComplete, MeshMachine::TState< TContext >, NetStateMachine::MState, TContext)
CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExisting EXPORT_DECLARE_SMELEMENT_HEADER(TNoTagOrWaitForIncomingOrUseExistingDefault, MeshMachine::TStateFork< TContext >, NetStateMachine::MStateFork, TContext)
CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExistingDefault EXPORT_DECLARE_SMELEMENT_HEADER(TStorePendingBinder, MeshMachine::TStateTransition< TContext >, NetStateMachine::MStateTransition, TContext)
typedefITFHIERARCHY_LINK_1(CCommsBinderActivity, MeshMachine::CNodeRetryParallelActivity, CCommsBinderActivity)
IMPORT_C Messages::RNodeInterface *IsDataClientPresent(MeshMachine::TNodeContextBase &, TUint)
IMPORT_C MeshMachine::CNodeActivityBase *NewL(const MeshMachine::TNodeActivity &, MeshMachine::AMMNodeBase &)
voidReturnInterfacePtrL(CCommsBinderActivity *&)
voidSendBinderResponseToOriginator()
voidSendCustomFlowProvision()
IMPORT_C voidStoreBinder(Messages::RNodeInterface *)
IMPORT_C voidStoreBinderRequestParameters(const ESock::RCFParameterFamilyBundleC &)
TContext virtual IMPORT_C TIntTransitionTag()
Protected Member Functions
CCommsBinderActivity(const MeshMachine::TNodeActivity &, MeshMachine::AMMNodeBase &, TUint)
~CCommsBinderActivity()
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()
MeshMachine::CNodeActivityBase::Abort(TNodeContextBase &,TBool)
MeshMachine::CNodeActivityBase::Accept(TNodeContextBase &,const TNodeActivity &,TInt)
MeshMachine::CNodeActivityBase::ActivitySigId()const
MeshMachine::CNodeActivityBase::AppendActivityL()
MeshMachine::CNodeActivityBase::AppendPreallocatedActivity()
MeshMachine::CNodeActivityBase::BorrowPreallocatedSpace(AMMNodeBase &,TUint)
MeshMachine::CNodeActivityBase::CNodeActivityBase(const TNodeActivity &,AMMNodeBase &)
MeshMachine::CNodeActivityBase::ClearPostedTo()
MeshMachine::CNodeActivityBase::Destroy()
MeshMachine::CNodeActivityBase::DoFetchInterfaceControlL(TInt)
MeshMachine::CNodeActivityBase::Error()const
MeshMachine::CNodeActivityBase::FindOriginator(const Messages::RNodeInterface &)const
MeshMachine::CNodeActivityBase::FindOriginator(const Messages::TNodePeerId &)const
MeshMachine::CNodeActivityBase::FindOriginator(const Messages::TRuntimeCtxId &)const
MeshMachine::CNodeActivityBase::FirstOriginator()const
MeshMachine::CNodeActivityBase::InsertPreallocatedDestroyActivity()
MeshMachine::CNodeActivityBase::KickOffMessageId()const
MeshMachine::CNodeActivityBase::MatchSender(const TNodeContextBase &)const
MeshMachine::CNodeActivityBase::Next(TNodeContextBase &)
MeshMachine::CNodeActivityBase::PostRequestTo(const Messages::RNodeInterface &,const Messages::TSignalBase &,const TBool)
MeshMachine::CNodeActivityBase::PostRequestTo(const Messages::TNodeId &,const Messages::TSignalBase &,const TBool)
MeshMachine::CNodeActivityBase::PostToOriginator(const Messages::TNodePeerId &,const Messages::TSignalBase &)const
MeshMachine::CNodeActivityBase::PostToOriginators(const Messages::TSignalBase &,TUint32,TUint32)
MeshMachine::CNodeActivityBase::PostedToNodeId()const
MeshMachine::CNodeActivityBase::PostedToPeer()const
MeshMachine::CNodeActivityBase::RemoveOriginator(TInt)
MeshMachine::CNodeActivityBase::ReturnPreallocatedSpace(TAny *)
MeshMachine::CNodeActivityBase::SetError(TInt)
MeshMachine::CNodeActivityBase::SetPostedTo(const Messages::RNodeInterface &)
MeshMachine::CNodeActivityBase::SetPostedTo(const Messages::TNodeId &)
MeshMachine::CNodeActivityBase::SoleOriginator()const
MeshMachine::CNodeActivityBase::StartL(TNodeContextBase &,const Messages::XNodePeerId &,const NetStateMachine::TStateTriple &)
MeshMachine::CNodeActivityBase::~CNodeActivityBase()
MeshMachine::CNodeParallelActivityBase::ActivityId()const
MeshMachine::CNodeParallelActivityBase::CNodeParallelActivityBase(const TNodeActivity &,AMMNodeBase &,TUint)
MeshMachine::CNodeParallelActivityBase::GetNextActivityCount(const TNodeActivity &,const AMMNodeBase &)
MeshMachine::CNodeParallelActivityBase::GetNextActivityCountL(const TNodeActivity &,const AMMNodeBase &)
MeshMachine::CNodeRetryParallelActivity::CNodeRetryParallelActivity(const TNodeActivity &,AMMNodeBase &,TUint)
MeshMachine::CNodeRetryParallelActivity::IsIdle()const
MeshMachine::CNodeRetryParallelActivity::ReturnInterfacePtrL(AActivitySemaphore *&)
MeshMachine::CNodeRetryParallelActivity::ReturnInterfacePtrL(AContextStore *&)
MeshMachine::CNodeRetryParallelActivity::SetIdle()
MeshMachine::CNodeRetryParallelActivity::Signal(TNodeContextBase &)
Public Member Type Definitions
typedef PRStates::TContext TContext
typedef MeshMachine::TSerializableStateFork< CCommsBinderActivity::TDataClientMutex, CCommsBinderActivity::TNoTagOrUseExisting > TNoTagOrUseExistingBlockedByBinderRequest
typedef MeshMachine::TSerializableStateFork< CCommsBinderActivity::TDefaultDataClientMutex, CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExisting > TNoTagOrWaitForIncomingOrUseExistingBlockedByBinderRequest
typedef MeshMachine::TSerializableStateFork< CCommsBinderActivity::TDefaultDataClientMutex, CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExistingDefault > TNoTagOrWaitForIncomingOrUseExistingDefaultBlockedByBinderRequest
typedef MeshMachine::TAggregatedTransition< PRStates::TProcessDataClientCreation, CCommsBinderActivity::TStorePendingBinder, TContext > TProcessDataClientCreationName__TR3
Public Attributes
const TIntKInterfaceId
Private Attributes
ESock::RCFParameterFamilyBundleC iBinderRequestParameters
Messages::RNodeInterface *iPendingBinder
Inherited Attributes
MeshMachine::CNodeActivityBase::iNode
MeshMachine::CNodeActivityBase::iOriginators
MeshMachine::CNodeParallelActivityBase::iActivityId

Constructor & Destructor Documentation

CCommsBinderActivity(const MeshMachine::TNodeActivity &, MeshMachine::AMMNodeBase &, TUint)

IMPORT_CCCommsBinderActivity(const MeshMachine::TNodeActivity &aActivitySig,
MeshMachine::AMMNodeBase &aNode,
TUintaNextActivityCount
)[protected]

Parameters

const MeshMachine::TNodeActivity & aActivitySig
MeshMachine::AMMNodeBase & aNode
TUint aNextActivityCount

~CCommsBinderActivity()

IMPORT_C~CCommsBinderActivity()[protected, virtual]

Member Functions Documentation

BindToComplete()

voidBindToComplete()

Binder()

IMPORT_C Messages::RNodeInterface *Binder()const

Cancel(MeshMachine::TNodeContextBase &)

IMPORT_C voidCancel(MeshMachine::TNodeContextBase &aContext)[virtual]

Cancels the activity. Only to be called by the meshmachine.

Parameters

MeshMachine::TNodeContextBase & aContextthe context in which the activity is being executed

DECLARE_SMELEMENT_FOOTER(TNoTagOrUseExisting)

DECLARE_SMELEMENT_FOOTER(TNoTagOrUseExisting)

DECLARE_SMELEMENT_FOOTER(TAwaitingBindToComplete)

DECLARE_SMELEMENT_FOOTER(TAwaitingBindToComplete)

DECLARE_SMELEMENT_FOOTER(TNoTagOrWaitForIncomingOrUseExisting)

DECLARE_SMELEMENT_FOOTER(TNoTagOrWaitForIncomingOrUseExisting)

DECLARE_SMELEMENT_FOOTER(TNoTagOrWaitForIncomingOrUseExistingDefault)

DECLARE_SMELEMENT_FOOTER(TNoTagOrWaitForIncomingOrUseExistingDefault)

DECLARE_SMELEMENT_FOOTER(TStorePendingBinder)

DECLARE_SMELEMENT_FOOTER(TStorePendingBinder)

DECLARE_SMELEMENT_FOOTER(TSendCustomFlowProvision)

DECLARE_SMELEMENT_FOOTER(TSendCustomFlowProvision)

DECLARE_SMELEMENT_FOOTER(TSendBinderResponse)

DECLARE_SMELEMENT_FOOTER(TSendBinderResponse)

DoL()

TContext virtual IMPORT_C voidDoL()[virtual]

EXPORT_DECLARE_SMELEMENT_HEADER(TNoTagOrUseExisting, MeshMachine::TStateFork< TContext >, NetStateMachine::MStateFork, TContext)

EXPORT_DECLARE_SMELEMENT_HEADER(TNoTagOrUseExisting,
MeshMachine::TStateFork< TContext >,
NetStateMachine::MStateFork,
TContext
)

EXPORT_DECLARE_SMELEMENT_HEADER(TAwaitingBindToComplete, MeshMachine::TState< TContext >, NetStateMachine::MState, TContext)

CCommsBinderActivity::TNoTagOrUseExisting EXPORT_DECLARE_SMELEMENT_HEADER(TAwaitingBindToComplete,
MeshMachine::TState< TContext >,
NetStateMachine::MState,
TContext
)

EXPORT_DECLARE_SMELEMENT_HEADER(TNoTagOrWaitForIncomingOrUseExistingDefault, MeshMachine::TStateFork< TContext >, NetStateMachine::MStateFork, TContext)

CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExisting EXPORT_DECLARE_SMELEMENT_HEADER(TNoTagOrWaitForIncomingOrUseExistingDefault,
MeshMachine::TStateFork< TContext >,
NetStateMachine::MStateFork,
TContext
)

EXPORT_DECLARE_SMELEMENT_HEADER(TStorePendingBinder, MeshMachine::TStateTransition< TContext >, NetStateMachine::MStateTransition, TContext)

CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExistingDefault EXPORT_DECLARE_SMELEMENT_HEADER(TStorePendingBinder,
MeshMachine::TStateTransition< TContext >,
NetStateMachine::MStateTransition,
TContext
)

ITFHIERARCHY_LINK_1(CCommsBinderActivity, MeshMachine::CNodeRetryParallelActivity, CCommsBinderActivity)

typedefITFHIERARCHY_LINK_1(CCommsBinderActivity,
MeshMachine::CNodeRetryParallelActivity,
CCommsBinderActivity
)

IsDataClientPresent(MeshMachine::TNodeContextBase &, TUint)

IMPORT_C Messages::RNodeInterface *IsDataClientPresent(MeshMachine::TNodeContextBase &aContext,
TUintaClientFlags = 0
)[static]

Check if we have a data client and, if so, store it as the binder for this activity.

Parameters

MeshMachine::TNodeContextBase & aContextNode context
TUint aClientFlags = 0client flags to use in iterator check

NewL(const MeshMachine::TNodeActivity &, MeshMachine::AMMNodeBase &)

IMPORT_C MeshMachine::CNodeActivityBase *NewL(const MeshMachine::TNodeActivity &aActivitySig,
MeshMachine::AMMNodeBase &aNode
)[static]

Create a new activity. This should never be called by user code.

Parameters

const MeshMachine::TNodeActivity & aActivitySigContext information about how the activity is to be started
MeshMachine::AMMNodeBase & aNodeThe node to which this activity will belong.

ReturnInterfacePtrL(CCommsBinderActivity *&)

voidReturnInterfacePtrL(CCommsBinderActivity *&aInterface)[inline]

Parameters

CCommsBinderActivity *& aInterface

SendBinderResponseToOriginator()

voidSendBinderResponseToOriginator()

Send out CommsBinderResponse to all originators.

We send to all originators that have joined up until this point, and store this count in iOriginatorsCountSnapshot. See comment in ProcessBindToComplete().

SendCustomFlowProvision()

voidSendCustomFlowProvision()

Send a custom message that provisions a flow with flow parameters

StoreBinder(Messages::RNodeInterface *)

IMPORT_C voidStoreBinder(Messages::RNodeInterface *aDataClient)

Parameters

Messages::RNodeInterface * aDataClient

StoreBinderRequestParameters(const ESock::RCFParameterFamilyBundleC &)

IMPORT_C voidStoreBinderRequestParameters(const ESock::RCFParameterFamilyBundleC &aBinderRequestParameters)

Parameters

const ESock::RCFParameterFamilyBundleC & aBinderRequestParameters

TransitionTag()

TContext virtual IMPORT_C TIntTransitionTag()[virtual]

Member Type Definitions Documentation

Typedef TContext

typedef PRStates::TContext TContext

Typedef TNoTagOrUseExistingBlockedByBinderRequest

typedef MeshMachine::TSerializableStateFork< CCommsBinderActivity::TDataClientMutex, CCommsBinderActivity::TNoTagOrUseExisting >TNoTagOrUseExistingBlockedByBinderRequest

Typedef TNoTagOrWaitForIncomingOrUseExistingBlockedByBinderRequest

typedef MeshMachine::TSerializableStateFork< CCommsBinderActivity::TDefaultDataClientMutex, CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExisting >TNoTagOrWaitForIncomingOrUseExistingBlockedByBinderRequest

Typedef TNoTagOrWaitForIncomingOrUseExistingDefaultBlockedByBinderRequest

typedef MeshMachine::TSerializableStateFork< CCommsBinderActivity::TDefaultDataClientMutex, CCommsBinderActivity::TNoTagOrWaitForIncomingOrUseExistingDefault >TNoTagOrWaitForIncomingOrUseExistingDefaultBlockedByBinderRequest

Typedef TProcessDataClientCreationName__TR3

typedef MeshMachine::TAggregatedTransition< PRStates::TProcessDataClientCreation, CCommsBinderActivity::TStorePendingBinder, TContext >TProcessDataClientCreationName__TR3

Member Data Documentation

const TInt KInterfaceId

const TIntKInterfaceId[static]

ESock::RCFParameterFamilyBundleC iBinderRequestParameters

ESock::RCFParameterFamilyBundleC iBinderRequestParameters[private]

Messages::RNodeInterface * iPendingBinder

Messages::RNodeInterface *iPendingBinder[private]