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: |
49 /*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 |
50 (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 |
51 (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 |
52 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 |
53 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 |
54 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) */ |
55 to a pointer to a ctor function and the distinction is based on where iCtor points (see AMMNodeBase::StartActivityL) */ |
|
56 enum TNodeActivityFlags |
|
57 { |
|
58 ENodeCtor = 0, |
|
59 EContextCtor = 1 |
|
60 }; |
|
61 |
61 typedef CNodeActivityBase* (*TStaticActivityCtor)(const TNodeActivity& aActivitySig, AMMNodeBase& aNode); |
62 typedef CNodeActivityBase* (*TStaticActivityCtor)(const TNodeActivity& aActivitySig, AMMNodeBase& aNode); |
62 typedef CNodeActivityBase* (*TStaticActivityContextCtor)(const TNodeActivity& aActivitySig, TNodeContextBase& aCtx); |
63 typedef CNodeActivityBase* (*TStaticActivityContextCtor)(const TNodeActivity& aActivitySig, TNodeContextBase& aCtx); |
63 const TUint8 iId; |
64 const TUint8 iId; |
64 const TUint8 iFlags; |
65 const TUint8 iFlags; |
65 //Message starting the activity (state in iFirstTriple is waiting for), |
66 //Message starting the activity (state in iFirstTriple is waiting for), |