commsfwsupport/commselements/meshmachine/inc/mm_activities_internal.h
branchRCL_3
changeset 18 9644881fedd0
parent 0 dfb7c4ff071f
child 23 cbb19216b74d
equal deleted inserted replaced
17:9ddb1d67ebaf 18:9644881fedd0
    44 //-=========================================================
    44 //-=========================================================
    45 struct TNodeActivity
    45 struct TNodeActivity
    46 /**
    46 /**
    47 */
    47 */
    48 	{
    48 	{
       
    49 	enum TNodeActivityFlags
       
    50 	{
       
    51 	EContextCtor = 1
       
    52 	};
       
    53 	
       
    54 	/*There are now two types of activity c'tors (hence TAny iCtor supported:
       
    55 	(1) The legacy ctor based on AMMNodeBase that must be supported for source backwards compatibility
       
    56 	(2) The new ctor based on TNodeContextBase that is desired because TNodeContextBase gives access to AMMNodeBase as well as the message 
       
    57 	    and peer and it is therefore more powerful. This new ctor has been introduced to aid leave activities to be infallible
       
    58 		by allowing access to the peer, which stores the space preallocated for the activity
       
    59 	Ideally this once fixed to only leave (2) especially since differentiating (1) from (2) is rather obscure. iCtor is a pointer
       
    60 	to a pointer to a ctor function and the distinction is based on where iCtor points (see AMMNodeBase::StartActivityL) */
    49 	typedef CNodeActivityBase* (*TStaticActivityCtor)(const TNodeActivity& aActivitySig, AMMNodeBase& aNode);
    61 	typedef CNodeActivityBase* (*TStaticActivityCtor)(const TNodeActivity& aActivitySig, AMMNodeBase& aNode);
       
    62 	typedef CNodeActivityBase* (*TStaticActivityContextCtor)(const TNodeActivity& aActivitySig, TNodeContextBase& aCtx);
    50 	const TUint8 iId;
    63 	const TUint8 iId;
       
    64 	const TUint8 iFlags;
    51 	//Message starting the activity (state in iFirstTriple is waiting for),
    65 	//Message starting the activity (state in iFirstTriple is waiting for),
    52 	//used by error handling, could be NULL for "single triple" activities because
    66 	//used by error handling, could be NULL for "single triple" activities because
    53 	//than the current message associated with context is used.
    67 	//than the current message associated with context is used.
    54     const TUint16 iKickOffMessageId;
    68     const TUint16 iKickOffMessageId;
    55     const TUint32 iKickOffMessageRealm;
    69     const TUint32 iKickOffMessageRealm;
    56 	const NetStateMachine::TStateTriple& iFirstTriple;
    70 	const NetStateMachine::TStateTriple& iFirstTriple;
    57 	const TStaticActivityCtor iCtor;
    71 	const TAny* iCtor;
    58 	const TText8* iName;
    72 	const TText8* iName;
    59 	};
    73 	};
    60 
    74 
    61 //-=========================================================
    75 //-=========================================================
    62 //
    76 //