datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcpractivities.h
branchRCL_3
changeset 13 0b0e9fce0b58
parent 4 928ed51ddc43
equal deleted inserted replaced
12:8b5d60ce1e94 13:0b0e9fce0b58
    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