--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/networkcontrol/iptransportlayer/inc/netmcpractivities.h Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,229 @@
+// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef NETMCPR_ACTIVITIES_H_INCLUDED
+#define NETMCPR_ACTIVITIES_H_INCLUDED
+
+#define SYMBIAN_NETWORKING_UPS
+
+#include <comms-infras/mobilitymcpractivities.h>
+
+#ifdef SYMBIAN_NETWORKING_UPS
+#include <comms-infras/upsmcpractivities.h>
+#endif //SYMBIAN_NETWORKING_UPS
+
+class CNetworkMetaConnectionProvider;
+
+namespace NetMCprActivities
+{
+
+#ifdef DUMMY_MOBILITY_MCPR
+// [TODO] IK remove me when we have a proper mobility mcpr
+enum {
+ECFActivityDummyMobilityActivity = ESock::ECFActivityCustom
+
+#ifdef SYMBIAN_NETWORKING_UPS
+, ECFActivityUpsNoBearer, ECFActivityUpsProviderStatus
+#endif //SYMBIAN_NETWORKING_UPS
+
+};
+
+#endif //DUMMY_MOBILITY_MCPR
+
+#ifdef SYMBIAN_NETWORKING_UPS
+
+#ifndef DUMMY_MOBILITY_MCPR
+enum {
+ECFActivityUpsNoBearer = ESock::ECFActivityCustom, ECFActivityUpsProviderStatus, ECFActivityUpsStatusChange
+};
+#endif //DUMMY_MOBILITY_MCPR
+
+#endif //SYMBIAN_NETWORKING_UPS
+
+DECLARE_ACTIVITY_MAP(netMCprActivities)
+} // namespace NetMCprActivities
+
+namespace NetMCprLegacyActivities
+{
+
+NONSHARABLE_CLASS(CDeferredSelectionActivity) : public MeshMachine::CNodeActivityBase,
+ protected MeshMachine::AContextStore
+ {
+public:
+ static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
+ void ParkReConnectRequestL(const MeshMachine::TNodeContextBase& aContext);
+ void ReDispatchReConnectRequestL(const MeshMachine::TNodeContextBase& aContext);
+ void ReplyToOriginators(Messages::TEErrorRecovery::TErrorRecoveryResponse& aCFMessageSig);
+ ~CDeferredSelectionActivity();
+
+protected:
+ CDeferredSelectionActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
+
+public:
+ Messages::TErrContext iOriginalErrContext; //Error context on which this activity started
+ Messages::TNodeId iSelectedMcpr;
+ Messages::TNodeId iTierManager;
+
+protected:
+ typedef MeshMachine::TNodeContext<CCoreMetaConnectionProvider, MCprStates::TContext> TContext;
+
+public:
+
+ //
+ // Default Error handling for mcpr states of CReConnectionActivity
+ template<class TSTATE, class TCONTEXT = TContext>
+ NONSHARABLE_CLASS(TState) : public TSTATE
+ {
+ public:
+ NETSM_TPL_DECLARE_CTR(TState, NetStateMachine::MState, TCONTEXT)
+
+ explicit TState(TCONTEXT& aContext)
+ : TSTATE(aContext)
+ {
+ }
+
+ virtual TBool Accept()
+ {
+ Messages::TEBase::TError* msg = Messages::message_cast<Messages::TEBase::TError>(&this->iContext.iMessage);
+ if(msg && this->iContext.iNodeActivity != NULL)
+ {
+ CDeferredSelectionActivity& ac = static_cast<CDeferredSelectionActivity&>(*this->iContext.iNodeActivity);
+ Messages::TEErrorRecovery::TErrorRecoveryResponse errResp(Messages::TErrResponse(Messages::TErrResponse::EPropagate,ac.iOriginalErrContext.iStateChange.iError,ac.iOriginalErrContext.iMessageId));
+ ac.ReplyToOriginators(errResp);
+ ac.SetIdle();
+ this->iContext.iMessage.ClearMessageId();
+ return EFalse;
+ }
+ return TSTATE::Accept();
+ }
+ };
+
+ DECLARE_SMELEMENT_HEADER( TAwaitingConnectionStartRecoveryRequest, MCprStates::TAwaitingConnectionStartRecoveryRequest, NetStateMachine::MState, CDeferredSelectionActivity::TContext )
+ virtual TBool Accept();
+ DECLARE_SMELEMENT_FOOTER( TAwaitingConnectionStartRecoveryRequest )
+
+ DECLARE_SMELEMENT_HEADER( TParkReConnectRequestAndFindOrCreateTierManager, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CDeferredSelectionActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TParkReConnectRequestAndFindOrCreateTierManager )
+
+ DECLARE_SMELEMENT_HEADER( TCompleteDeferredSelection, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CDeferredSelectionActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TCompleteDeferredSelection )
+
+ DECLARE_SMELEMENT_HEADER( TProcessSelectComplete, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CDeferredSelectionActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TProcessSelectComplete )
+
+ DECLARE_SMELEMENT_HEADER( TJoinServiceProvider, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CDeferredSelectionActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TJoinServiceProvider )
+
+ DECLARE_SMELEMENT_HEADER( TReDispatchReConnectRequest, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CDeferredSelectionActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TReDispatchReConnectRequest )
+
+ DECLARE_SMELEMENT_HEADER( TJoinTierManager, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CDeferredSelectionActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TJoinTierManager )
+ };
+
+} //NetMCprLegacyActivities
+
+namespace NetMCprActivities
+{
+NONSHARABLE_CLASS(CPromptingReSelectActivity) : public MeshMachine::CNodeActivityBase,
+ protected MeshMachine::AContextStore
+ {
+public:
+ static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
+ void ParkReConnectRequestL(const MeshMachine::TNodeContextBase& aContext);
+ void ReDispatchReConnectRequestL(const MeshMachine::TNodeContextBase& aContext);
+ void ReplyToOriginators(Messages::TEErrorRecovery::TErrorRecoveryResponse& aCFMessageSig);
+ ~CPromptingReSelectActivity();
+
+protected:
+ CPromptingReSelectActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode);
+
+public:
+ Messages::TErrContext iOriginalErrContext; //Error context on which this activity started
+ Messages::TNodeId iSelectedMcpr;
+ Messages::TNodeId iTierManager;
+
+protected:
+ typedef MeshMachine::TNodeContext<CCoreMetaConnectionProvider, MCprStates::TContext> TContext;
+
+public:
+
+ //
+ // Default Error handling for mcpr states of CReConnectionActivity
+ template<class TSTATE, class TCONTEXT = TContext>
+ class TState : public TSTATE
+ {
+ public:
+ NETSM_TPL_DECLARE_CTR(TState, NetStateMachine::MState, TCONTEXT)
+
+ explicit TState(TCONTEXT& aContext)
+ : TSTATE(aContext)
+ {
+ }
+
+ virtual TBool Accept()
+ {
+ Messages::TEBase::TError* msg = Messages::message_cast<Messages::TEBase::TError>(&this->iContext.iMessage);
+ if(msg && this->iContext.iNodeActivity != NULL)
+ {
+ CPromptingReSelectActivity& ac = static_cast<CPromptingReSelectActivity&>(*this->iContext.iNodeActivity);
+ Messages::TEErrorRecovery::TErrorRecoveryResponse errResp(Messages::TErrResponse(Messages::TErrResponse::EPropagate,ac.iOriginalErrContext.iStateChange.iError,ac.iOriginalErrContext.iMessageId));
+ ac.ReplyToOriginators(errResp);
+ ac.SetIdle();
+ this->iContext.iMessage.ClearMessageId();
+ return EFalse;
+ }
+ return TSTATE::Accept();
+ }
+ };
+
+ DECLARE_SMELEMENT_HEADER( TAwaitingConnectionStartRecoveryRequest, MCprStates::TAwaitingConnectionStartRecoveryRequest, NetStateMachine::MState, CPromptingReSelectActivity::TContext )
+ virtual TBool Accept();
+ DECLARE_SMELEMENT_FOOTER( TAwaitingConnectionStartRecoveryRequest )
+
+ DECLARE_SMELEMENT_HEADER( TParkReConnectRequestAndFindOrCreateTierManager, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CPromptingReSelectActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TParkReConnectRequestAndFindOrCreateTierManager )
+
+ DECLARE_SMELEMENT_HEADER( TCompletePromptingReSelection, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CPromptingReSelectActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TCompletePromptingReSelection )
+
+ DECLARE_SMELEMENT_HEADER( TProcessSelectComplete, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CPromptingReSelectActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TProcessSelectComplete )
+
+ DECLARE_SMELEMENT_HEADER( TJoinServiceProvider, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CPromptingReSelectActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TJoinServiceProvider )
+
+ DECLARE_SMELEMENT_HEADER( TReDispatchReConnectRequest, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CPromptingReSelectActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TReDispatchReConnectRequest )
+
+ DECLARE_SMELEMENT_HEADER( TJoinTierManager, MeshMachine::TStateTransition<TContext>, NetStateMachine::MStateTransition, CPromptingReSelectActivity::TContext )
+ virtual void DoL();
+ DECLARE_SMELEMENT_FOOTER( TJoinTierManager )
+ };
+
+} //NetMCprActivities
+
+#endif // NETMCPR_ACTIVITIES_H_INCLUDED