datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcpractivities.h
changeset 1 21d2ab05f085
parent 0 dfb7c4ff071f
child 2 dee179edb159
equal deleted inserted replaced
0:dfb7c4ff071f 1:21d2ab05f085
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Symbian Foundation License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     7 //
     8 // Initial Contributors:
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
     9 // Nokia Corporation - initial contribution.
    10 //
    10 //
    11 // Contributors:
    11 // Contributors:
    12 //
    12 //
    13 // Description:
    13 // Description:
    14 // Mobility Meta Connection Provider Activities
    14 // Mobility Meta Connection Provider Activities
    15 //
    15 // 
    16 //
    16 //
    17 
    17 
    18 /**
    18 /**
    19  @file
    19  @file
    20  @internalComponent
    20  @internalComponent
    36 namespace MobilityMCprActivities
    36 namespace MobilityMCprActivities
    37 {
    37 {
    38 DECLARE_EXPORT_ACTIVITY_MAP(mobilityMCprActivities)
    38 DECLARE_EXPORT_ACTIVITY_MAP(mobilityMCprActivities)
    39 
    39 
    40 
    40 
    41 ///////////////////////////////////////////////////////////////////////////////
    41 //
    42 //CMobilityActivity
    42 //CMobilityActivity
    43 class CMobilityActivity : public MeshMachine::CNodeRetryActivity
    43 class CMobilityActivity : public MeshMachine::CNodeRetryActivity
    44 	{
    44 	{
    45 public:
    45 public:
    46     static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
    46     static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
    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     void SetHandshakingFlag();
    55     void SetHandshakingFlag();
    56     void ClearHandshakingFlag();
    56     void ClearHandshakingFlag();
    57 
    57 
    58 private:
    58 private:
    59 	ESock::RMetaServiceProviderInterface* iCurrent;
    59 	ESock::RMetaServiceProviderInterface* iCurrent;
    60 	ESock::RMetaServiceProviderInterface* iAvailable;
    60 	ESock::RMetaServiceProviderInterface* iPreferred;
    61 	ESock::RMetaServiceProviderInterface* iCandidate;
       
    62 	const TUint iAvailabilityScoreTreshold;
    61 	const TUint iAvailabilityScoreTreshold;
    63 
    62 
    64 
    63 
    65 public:
    64 public:
    66 
    65 		
    67 	DECLARE_SMELEMENT_HEADER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext)
    66 	DECLARE_SMELEMENT_HEADER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange, MeshMachine::TState<TContext>, NetStateMachine::MState, TContext)
    68 		virtual TBool Accept();
    67 		virtual TBool Accept();
    69 	DECLARE_SMELEMENT_FOOTER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange)
    68 	DECLARE_SMELEMENT_FOOTER(TAwaitingCurrentCarrierRejectedOrAvailabilityChange)
    70 
    69 	
    71 	DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobility, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext)
    70 	DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobility, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext)
    72 		virtual TInt TransitionTag();
    71 		virtual TInt TransitionTag();
    73 	DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobility)
    72 	DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobility)	
    74 
       
    75 	DECLARE_SMELEMENT_HEADER(TNoTagOrReConnectOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext)
       
    76 		virtual TInt TransitionTag();
       
    77 	DECLARE_SMELEMENT_FOOTER(TNoTagOrReConnectOrStartMobilityHandshakeBackwards)
       
    78 
    73 
    79 	DECLARE_SMELEMENT_HEADER(TNoTagOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext)
    74 	DECLARE_SMELEMENT_HEADER(TNoTagOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext)
    80 		virtual TInt TransitionTag();
    75 		virtual TInt TransitionTag();
    81 	DECLARE_SMELEMENT_FOOTER(TNoTagOrStartMobilityHandshakeBackwards)
    76 	DECLARE_SMELEMENT_FOOTER(TNoTagOrStartMobilityHandshakeBackwards)
    82 
    77 	
    83 	DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext)
    78 	DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger, MeshMachine::TStateFork<TContext>, NetStateMachine::MStateFork, CMobilityActivity::TContext)
    84 		virtual TInt TransitionTag();
    79 		virtual TInt TransitionTag();
    85 	DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger)
    80 	DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger)
    86 
    81 	
    87 	DECLARE_SMELEMENT_HEADER(TClearHandshakingFlag, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext)
    82 	DECLARE_SMELEMENT_HEADER(TClearHandshakingFlag, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext)
    88 		virtual void DoL();
    83 		virtual void DoL();
    89 	DECLARE_SMELEMENT_FOOTER(TClearHandshakingFlag)
    84 	DECLARE_SMELEMENT_FOOTER(TClearHandshakingFlag)
    90 
    85 
    91 	DECLARE_SMELEMENT_HEADER(TSendAvailabilityRequest, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext)
    86 	DECLARE_SMELEMENT_HEADER(TSendAvailabilityRequest, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CMobilityActivity::TContext)
   119 		TActivityErrorRecoveryMutex,
   114 		TActivityErrorRecoveryMutex,
   120 		TNoTagOrAwaitMobility
   115 		TNoTagOrAwaitMobility
   121 		)
   116 		)
   122 	};
   117 	};
   123 
   118 
   124 ///////////////////////////////////////////////////////////////////////////////
   119 //
   125 //CConnectionRecoveryActivity
   120 //CConnectionRecoveryActivity
   126 class CConnectionRecoveryActivity : public MeshMachine::CNodeRetryActivity
   121 class CConnectionRecoveryActivity : public MeshMachine::CNodeRetryActivity
   127 	{
   122 	{
   128 public:
   123 public:
   129     static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
   124     static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);