47 |
47 |
48 protected: |
48 protected: |
49 CMobilityActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode); |
49 CMobilityActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode); |
50 virtual ~CMobilityActivity(); |
50 virtual ~CMobilityActivity(); |
51 typedef MeshMachine::TNodeContext<CMobilityMetaConnectionProvider, MCprStates::TContext> TContext; |
51 typedef MeshMachine::TNodeContext<CMobilityMetaConnectionProvider, MCprStates::TContext> TContext; |
52 |
52 |
53 private: |
53 private: |
54 TBool EvaluatePreference(TContext& aContext); |
54 TBool EvaluatePreference(TContext& aContext); |
55 |
55 |
56 void SetHandshakingFlag(); |
56 void SetHandshakingFlag(); |
57 void ClearHandshakingFlag(); |
57 void ClearHandshakingFlag(); |
58 |
58 |
59 private: |
59 private: |
60 ESock::RMetaServiceProviderInterface* iCurrent; |
60 ESock::RMetaServiceProviderInterface* iCurrent; |
61 ESock::RMetaServiceProviderInterface* iPreferred; |
61 ESock::RMetaServiceProviderInterface* iAvailable; |
|
62 ESock::RMetaServiceProviderInterface* iCandidate; |
62 const TUint iAvailabilityScoreTreshold; |
63 const TUint iAvailabilityScoreTreshold; |
63 |
64 |
64 |
65 |
65 public: |
66 public: |
66 |
67 |
67 DECLARE_SMELEMENT_HEADER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext) |
68 DECLARE_SMELEMENT_HEADER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext) |
68 virtual TBool Accept(); |
69 virtual TBool Accept(); |
69 DECLARE_SMELEMENT_FOOTER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange) |
70 DECLARE_SMELEMENT_FOOTER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange) |
70 |
71 |
71 DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobility, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext) |
72 DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobility, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext) |
72 virtual TInt TransitionTag(); |
73 virtual TInt TransitionTag(); |
73 DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobility) |
74 DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobility) |
|
75 |
|
76 DECLARE_SMELEMENT_HEADER(TNoTagOrReConnectOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext) |
|
77 virtual TInt TransitionTag(); |
|
78 DECLARE_SMELEMENT_FOOTER(TNoTagOrReConnectOrStartMobilityHandshakeBackwards) |
74 |
79 |
75 DECLARE_SMELEMENT_HEADER(TNoTagOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext) |
80 DECLARE_SMELEMENT_HEADER(TNoTagOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext) |
76 virtual TInt TransitionTag(); |
81 virtual TInt TransitionTag(); |
77 DECLARE_SMELEMENT_FOOTER(TNoTagOrStartMobilityHandshakeBackwards) |
82 DECLARE_SMELEMENT_FOOTER(TNoTagOrStartMobilityHandshakeBackwards) |
78 |
83 |
79 DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext) |
84 DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext) |
80 virtual TInt TransitionTag(); |
85 virtual TInt TransitionTag(); |
81 DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger) |
86 DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger) |
82 |
87 |
83 DECLARE_SMELEMENT_HEADER(TRejectedOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext) |
88 DECLARE_SMELEMENT_HEADER(TRejectedOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, TContext) |
84 virtual TInt TransitionTag(); |
89 virtual TInt TransitionTag(); |
85 DECLARE_SMELEMENT_FOOTER(TRejectedOrStartMobilityHandshakeBackwards) |
90 DECLARE_SMELEMENT_FOOTER(TRejectedOrStartMobilityHandshakeBackwards) |
86 |
91 |
87 DECLARE_SMELEMENT_HEADER(TClearHandshakingFlag, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext) |
92 DECLARE_SMELEMENT_HEADER(TClearHandshakingFlag, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext) |
88 virtual void DoL(); |
93 virtual void DoL(); |
89 DECLARE_SMELEMENT_FOOTER(TClearHandshakingFlag) |
94 DECLARE_SMELEMENT_FOOTER(TClearHandshakingFlag) |
90 |
95 |
91 DECLARE_SMELEMENT_HEADER(TSendAvailabilityRequest, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext) |
96 DECLARE_SMELEMENT_HEADER(TSendAvailabilityRequest, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext) |
103 DECLARE_SMELEMENT_FOOTER(TRequestReConnect) |
108 DECLARE_SMELEMENT_FOOTER(TRequestReConnect) |
104 |
109 |
105 DECLARE_SMELEMENT_HEADER(TInformMigrationCompleted, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext) |
110 DECLARE_SMELEMENT_HEADER(TInformMigrationCompleted, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext) |
106 virtual void DoL(); |
111 virtual void DoL(); |
107 DECLARE_SMELEMENT_FOOTER(TInformMigrationCompleted) |
112 DECLARE_SMELEMENT_FOOTER(TInformMigrationCompleted) |
108 |
113 |
109 typedef MeshMachine::TActivitiesIdMutex<ESock::ECFActivityConnectionStartRecovery, |
114 typedef MeshMachine::TActivitiesIdMutex<ESock::ECFActivityConnectionStartRecovery, |
110 ESock::ECFActivityConnectionGoneDownRecovery> TActivityErrorRecoveryMutex; |
115 ESock::ECFActivityConnectionGoneDownRecovery> TActivityErrorRecoveryMutex; |
111 DECLARE_SERIALIZABLE_STATE( |
116 DECLARE_SERIALIZABLE_STATE( |
112 TNoTagOrAwaitMobilityBackwardsOnMobilityTriggerBlockedByErrorRecovery, |
117 TNoTagOrAwaitMobilityBackwardsOnMobilityTriggerBlockedByErrorRecovery, |
113 TActivityErrorRecoveryMutex, |
118 TActivityErrorRecoveryMutex, |
114 TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger |
119 TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger |
115 ) |
120 ) |
116 |
121 |
117 DECLARE_SERIALIZABLE_STATE( |
122 DECLARE_SERIALIZABLE_STATE( |
118 TNoTagOrAwaitMobilityBlockedByErrorRecovery, |
123 TNoTagOrAwaitMobilityBlockedByErrorRecovery, |
119 TActivityErrorRecoveryMutex, |
124 TActivityErrorRecoveryMutex, |
120 TNoTagOrAwaitMobility |
125 TNoTagOrAwaitMobility |
121 ) |
126 ) |
122 }; |
127 }; |
123 |
128 |
124 /////////////////////////////////////////////////////////////////////////////// |
129 /////////////////////////////////////////////////////////////////////////////// |
125 //CConnectionRecoveryActivity |
130 //CConnectionRecoveryActivity |
126 class CConnectionRecoveryActivity : public MeshMachine::CNodeRetryActivity |
131 class CConnectionRecoveryActivity : public MeshMachine::CNodeRetryActivity |