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 // |