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