diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyprotocols/pdplayer/inc/PDPSCPRStates.h --- a/telephonyprotocols/pdplayer/inc/PDPSCPRStates.h Mon May 03 13:37:20 2010 +0300 +++ b/telephonyprotocols/pdplayer/inc/PDPSCPRStates.h Thu May 06 15:10:38 2010 +0100 @@ -1,417 +1,427 @@ -// Copyright (c) 2006-2010 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: -// PDPSCPR States -// -// - -/** - @file - @internalComponent -*/ - -#ifndef SYMBIAN_PDPSCPRSTATES_H -#define SYMBIAN_PDPSCPRSTATES_H - -#include -#include -#include "PDPMessageDefn.h" -#include "PDPSCPR.h" - -//-========================================================= -// -// -// -// States -// -// -// -//-========================================================= -namespace PDPSCprStates -{ -const TInt KFakeStart = 1; -const TInt KBlocked = 2; -const TInt KUnblocked = 3; -const TInt KSendErrorRecoveryRequest = 4; -const TInt KContentionTag = 5; -const TInt KUserAuthenticate = 6; - -typedef MeshMachine::TNodeContext TContext; -typedef MeshMachine::TNodeContext TDefContext; - -//-========================================================= -//Util -//-========================================================= -DECLARE_SMELEMENT_HEADER( TAwaitingPDPFSMMessage, MeshMachine::TState, NetStateMachine::MState, PDPSCprStates::TContext ) - TBool Accept(TInt aExtensionId); - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingPDPFSMMessage ) - -DECLARE_SMELEMENT_HEADER( TNoTagOrError, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNoTagOrError ) - -DECLARE_SMELEMENT_HEADER( TNoTagOrUserAuthenticateOrAlreadyStarted, MeshMachine::TStateFork, NetStateMachine::MStateFork, TDefContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNoTagOrUserAuthenticateOrAlreadyStarted ) - -DECLARE_SMELEMENT_HEADER( TSendDataClientIdleIfNoSubconnsAndNoClients, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TDefContext ) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSendDataClientIdleIfNoSubconnsAndNoClients ) - -DECLARE_SMELEMENT_HEADER( TNoTagOrSendErrorRecoveryRequestOrError, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNoTagOrSendErrorRecoveryRequestOrError ) - -DECLARE_SMELEMENT_HEADER( TNoTagBackwardOrErrorTag, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNoTagBackwardOrErrorTag ) - -DECLARE_SMELEMENT_HEADER( TNoTagOrContentionTag, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNoTagOrContentionTag ) - - -//-========================================================= -//Provision -//-========================================================= -DECLARE_SMELEMENT_HEADER( TSelfInit, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void SetupProvisionCfgL(ESock::CCommsDatIapView* aIapView); - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSelfInit) - -DECLARE_AGGREGATED_TRANSITION2( - TStoreProvisionAndInitSelf, - PRStates::TStoreProvision, - PDPSCprStates::TSelfInit - ) - -//-========================================================= -//Creating context -//-========================================================= -class CStartActivity : public MeshMachine::CNodeRetryActivity - { -public: - static MeshMachine::CNodeActivityBase* NewL( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode ); - virtual ~CStartActivity(); -protected: - - CStartActivity( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode); - }; - -DECLARE_SMELEMENT_HEADER( TCreatePrimaryPDPCtx, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TDefContext) - virtual void DoL(); - private: - void SetupSipServerAddrRetrievalL(RPacketContext::TProtocolConfigOptionV2& aPco); - void SetImsSignallingFlagL(RPacketContext::TProtocolConfigOptionV2& aPco, TBool aImcn); - TBool IsModeGsmL() const; - void SetChapInformationL(RPacketContext::TProtocolConfigOptionV2& aPco); - void CreateChallengeAndResponseForChapL(RPacketContext::TProtocolConfigOptionV2& aPco); -DECLARE_SMELEMENT_FOOTER( TCreatePrimaryPDPCtx) - -DECLARE_SMELEMENT_HEADER( TCreateSecondaryOrMbmsPDPCtx, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TCreateSecondaryOrMbmsPDPCtx) - -DECLARE_SMELEMENT_HEADER( TOverrideProvision, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TOverrideProvision) - -DECLARE_SMELEMENT_HEADER(TSendErrorRecoveryRequest, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER(TSendErrorRecoveryRequest) - -DECLARE_SMELEMENT_HEADER( TAwaitingPDPCtxCreated, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingPDPCtxCreated ) - -DECLARE_SMELEMENT_HEADER( TAwaitingPrimaryPDPCtxCreated, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingPrimaryPDPCtxCreated ) - -DECLARE_AGGREGATED_TRANSITION2( - TOverrideProvisionAndStartDataClient, - PDPSCprStates::TOverrideProvision, - PRStates::TStartDataClients - ) - -//-========================================================= -//Activiating context -//-========================================================= -DECLARE_SMELEMENT_HEADER( TActivatePDPContext, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TActivatePDPContext) - -DECLARE_SMELEMENT_HEADER( TAwaitingPDPContextActive, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingPDPContextActive ) - -DECLARE_SMELEMENT_HEADER( TModifyActivePDPContext, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TModifyActivePDPContext) - -DECLARE_SMELEMENT_HEADER( TAwaitingActivePDPContextModified, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingActivePDPContextModified ) - -DECLARE_SMELEMENT_HEADER( TGetNegotiatedQoS, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TGetNegotiatedQoS) - -DECLARE_SMELEMENT_HEADER( TAwaitingNegotiatedQoSRetrieved, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingNegotiatedQoSRetrieved ) - -DECLARE_SMELEMENT_HEADER( TSendDataClientStarted, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSendDataClientStarted) - -DECLARE_SMELEMENT_HEADER( TSendDataClientStopped, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSendDataClientStopped) - -//=========================================================== -// Primary GoneDown -//=========================================================== -class CPrimaryPDPGoneDownActivity : public MeshMachine::CNodeActivityBase - { -/* -*/ -public: - static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode); - virtual ~CPrimaryPDPGoneDownActivity(); - CPDPSubConnectionProvider* NewDefault(); - -protected: - CPrimaryPDPGoneDownActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode ); -private: - CPDPSubConnectionProvider* iNewDefault; - Messages::TNodeId iOriginalDataClient; - -protected: - typedef MeshMachine::TNodeContext TContext; - -public: - DECLARE_SMELEMENT_HEADER( TApplyNewDefault, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) - virtual void DoL(); - DECLARE_SMELEMENT_FOOTER( TApplyNewDefault) - - DECLARE_SMELEMENT_HEADER( TSwitchToNewDefault, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) - virtual void DoL(); - DECLARE_SMELEMENT_FOOTER( TSwitchToNewDefault) - - DECLARE_SMELEMENT_HEADER( TRejoinDataClient, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) - virtual void DoL(); - DECLARE_SMELEMENT_FOOTER( TRejoinDataClient) - - DECLARE_SMELEMENT_HEADER( TStoreOriginalDataClient, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) - virtual void DoL(); - DECLARE_SMELEMENT_FOOTER( TStoreOriginalDataClient) - - DECLARE_SMELEMENT_HEADER( TStopOriginalDataClient, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) - virtual void DoL(); - DECLARE_SMELEMENT_FOOTER( TStopOriginalDataClient) - - DECLARE_SMELEMENT_HEADER( TNoTagOrProviderStopped, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) - virtual TInt TransitionTag(); - DECLARE_SMELEMENT_FOOTER( TNoTagOrProviderStopped ) - }; - - -//-========================================================= -//Setting Params -//-========================================================= -DECLARE_SMELEMENT_HEADER( TSetQoS, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSetQoS) - -DECLARE_SMELEMENT_HEADER( TAwaitingQoSSet, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingQoSSet ) - -DECLARE_SMELEMENT_HEADER( TSetTFT, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSetTFT) - -DECLARE_SMELEMENT_HEADER( TSetMbmsParameters, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSetMbmsParameters) - -DECLARE_SMELEMENT_HEADER( TAwaitingTFTSet, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TDefContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingTFTSet ) - -#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW -DECLARE_AGGREGATED_TRANSITION2( - TStoreAndRespondWithCurrentParams, - PRStates::TStoreAndRespondWithCurrentParams, - PDPSCprStates::TSetMbmsParameters - ) -#else -DECLARE_AGGREGATED_TRANSITION3( - TStoreParamsAndRespond, - SCprStates::TStoreParams, - SCprStates::TRespondWithCurrentParams, - PDPSCprStates::TSetMbmsParameters - ) -#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW - -//-========================================================= -//Events -//-========================================================= -DECLARE_SMELEMENT_HEADER( TBlockedOrUnblocked, MeshMachine::TStateFork, NetStateMachine::MStateFork, PDPSCprStates::TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TBlockedOrUnblocked ) - -DECLARE_SMELEMENT_HEADER( TMbmsCtxOrPdpCtx, MeshMachine::TStateFork, NetStateMachine::MStateFork, PDPSCprStates::TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TMbmsCtxOrPdpCtx ) - -DECLARE_SMELEMENT_HEADER( TAwaitingParamsChanged, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingParamsChanged ) - -DECLARE_SMELEMENT_HEADER( TAwaitingContextBlockedOrUnblocked, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingContextBlockedOrUnblocked ) - -DECLARE_SMELEMENT_HEADER( TForwardContextBlockedOrUnblockedToDC, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TForwardContextBlockedOrUnblockedToDC) - - -DECLARE_SMELEMENT_HEADER( TSendDataTransferTemporarilyBlocked, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSendDataTransferTemporarilyBlocked ) - -DECLARE_SMELEMENT_HEADER( TSendDataTransferUnblocked, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSendDataTransferUnblocked ) - -DECLARE_AGGREGATED_TRANSITION2( - TRaiseParamsGrantedAndSendDataClientStarted, - PDPSCprStates::TFillInGrantedParams, - PDPSCprStates::TSendDataClientStarted - ) - -DECLARE_SMELEMENT_HEADER( TParamsEvent, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - void FillInEventL(CSubConGenEventParamsGranted& aEvent); - void FillInGrantedL(RParameterFamily& aFamily, const CSubConGenEventParamsGranted& aEvent); - void FillInMbmsSessionIdsL(CSubConGenEventParamsGranted& aEvent); -DECLARE_SMELEMENT_FOOTER( TParamsEvent) - -#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW -DECLARE_AGGREGATED_TRANSITION2( - TRaiseParamsGrantedAndSendApplyResponse, - PDPSCprStates::TFillInGrantedParams, - PRStates::TSendApplyResponse - ) -#else - DECLARE_AGGREGATED_TRANSITION2( - TRaiseParamsGrantedAndSendApplyResponse, - PDPSCprStates::TFillInGrantedParams, - SCprStates::TSendApplyResponse - ) -#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW - -DECLARE_SMELEMENT_HEADER( TFillInGrantedParams, PDPSCprStates::TParamsEvent, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TFillInGrantedParams) - -DECLARE_SMELEMENT_HEADER( TFillInImsExtParams, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TFillInImsExtParams) - -DECLARE_SMELEMENT_HEADER( TRaiseParamsRejectedL, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TRaiseParamsRejectedL) - -DECLARE_SMELEMENT_HEADER( TRaiseParamsChanged, PDPSCprStates::TParamsEvent, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TRaiseParamsChanged) - -DECLARE_SMELEMENT_HEADER( TAwaitingNetworkStatusEvent, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingNetworkStatusEvent ) - -DECLARE_SMELEMENT_HEADER( TNetworkStatusEventTypeTag, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNetworkStatusEventTypeTag ) - -DECLARE_SMELEMENT_HEADER( TSendGoneDown, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TSendGoneDown) - -DECLARE_AGGREGATED_TRANSITION2( - TFillInGrantedParamsAndImsExtParams, - PDPSCprStates::TFillInGrantedParams, - PDPSCprStates::TFillInImsExtParams - ) - -//-========================================================= -//Destroying context -//-========================================================= -DECLARE_SMELEMENT_HEADER( TDestroyPDPContext, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TDestroyPDPContext) - -DECLARE_SMELEMENT_HEADER( TAwaitingPDPContextDestroyed, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingPDPContextDestroyed ) - -DECLARE_SMELEMENT_HEADER( TAwaitingPDPContextGoneDown, PDPSCprStates::TAwaitingPDPContextDestroyed, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingPDPContextGoneDown ) - -DECLARE_SMELEMENT_HEADER( TNoTagOrProviderStopped, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNoTagOrProviderStopped ) - - -//=========================================================== -// Sip Address retrieval -//=========================================================== -DECLARE_SMELEMENT_HEADER( TAwaitingIoctlMessage, MeshMachine::TState, NetStateMachine::MState, PDPSCprStates::TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingIoctlMessage ) - -DECLARE_SMELEMENT_HEADER( TRetrieveSipAddr, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TDefContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TRetrieveSipAddr) - -//=========================================================== -// Cancel Start or Stop -//=========================================================== - -DECLARE_SMELEMENT_HEADER( TAwaitingDataClientStopOrCancel, MeshMachine::TState, NetStateMachine::MState, TContext ) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER( TAwaitingDataClientStopOrCancel ) - -DECLARE_SMELEMENT_HEADER( TCancelDataClientStartInPDP, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER( TCancelDataClientStartInPDP ) - -//=========================================================== -// User Authentication -//=========================================================== -DECLARE_SMELEMENT_HEADER(TSendAuthenticate, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TDefContext) - virtual void DoL(); -DECLARE_SMELEMENT_FOOTER(TSendAuthenticate) - -DECLARE_SMELEMENT_HEADER(TAwaitingAuthenticateComplete, MeshMachine::TState, NetStateMachine::MState, PDPSCprStates::TDefContext) - virtual TBool Accept(); -DECLARE_SMELEMENT_FOOTER(TAwaitingAuthenticateComplete) - -} - -#endif // SYMBIAN_PDPSCPRSTATES_H +// Copyright (c) 2006-2010 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: +// PDPSCPR States +// +// + +/** + @file + @internalComponent +*/ + +#ifndef SYMBIAN_PDPSCPRSTATES_H +#define SYMBIAN_PDPSCPRSTATES_H + +#include +#include +#include "PDPMessageDefn.h" +#include "PDPSCPR.h" + +//-========================================================= +// +// +// +// States +// +// +// +//-========================================================= +namespace PDPSCprStates +{ +const TInt KFakeStart = 1; +const TInt KBlocked = 2; +const TInt KUnblocked = 3; +const TInt KSendErrorRecoveryRequest = 4; +const TInt KContentionTag = 5; +const TInt KUserAuthenticate = 6; + +typedef MeshMachine::TNodeContext TContext; +typedef MeshMachine::TNodeContext TDefContext; + +//-========================================================= +//Util +//-========================================================= +DECLARE_SMELEMENT_HEADER( TAwaitingPDPFSMMessage, MeshMachine::TState, NetStateMachine::MState, PDPSCprStates::TContext ) + TBool Accept(TInt aExtensionId); + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingPDPFSMMessage ) + +DECLARE_SMELEMENT_HEADER( TNoTagOrError, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNoTagOrError ) + +DECLARE_SMELEMENT_HEADER( TNoTagOrUserAuthenticateOrAlreadyStarted, MeshMachine::TStateFork, NetStateMachine::MStateFork, TDefContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNoTagOrUserAuthenticateOrAlreadyStarted ) + +DECLARE_SMELEMENT_HEADER( TSendDataClientIdleIfNoSubconnsAndNoClients, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TDefContext ) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSendDataClientIdleIfNoSubconnsAndNoClients ) + +DECLARE_SMELEMENT_HEADER( TNoTagOrSendErrorRecoveryRequestOrError, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNoTagOrSendErrorRecoveryRequestOrError ) + +DECLARE_SMELEMENT_HEADER( TNoTagBackwardOrErrorTag, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNoTagBackwardOrErrorTag ) + +DECLARE_SMELEMENT_HEADER( TNoTagOrContentionTag, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNoTagOrContentionTag ) + + +//-========================================================= +//Provision +//-========================================================= +DECLARE_SMELEMENT_HEADER( TSelfInit, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void SetupProvisionCfgL(ESock::CCommsDatIapView* aIapView); + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSelfInit) + +DECLARE_AGGREGATED_TRANSITION2( + TStoreProvisionAndInitSelf, + PRStates::TStoreProvision, + PDPSCprStates::TSelfInit + ) + +//-========================================================= +//Creating context +//-========================================================= +class CStartActivity : public MeshMachine::CNodeRetryActivity + { +public: + static MeshMachine::CNodeActivityBase* NewL( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode ); + virtual ~CStartActivity(); +protected: + + CStartActivity( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode); + }; + +DECLARE_SMELEMENT_HEADER( TCreatePrimaryPDPCtx, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TDefContext) + virtual void DoL(); + private: + void SetupSipServerAddrRetrievalL(RPacketContext::TProtocolConfigOptionV2& aPco); + void SetImsSignallingFlagL(RPacketContext::TProtocolConfigOptionV2& aPco, TBool aImcn); + TBool IsModeGsmL() const; + void SetChapInformationL(RPacketContext::TProtocolConfigOptionV2& aPco); + void CreateChallengeAndResponseForChapL(RPacketContext::TProtocolConfigOptionV2& aPco); +DECLARE_SMELEMENT_FOOTER( TCreatePrimaryPDPCtx) + +DECLARE_SMELEMENT_HEADER( TCreateSecondaryOrMbmsPDPCtx, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TCreateSecondaryOrMbmsPDPCtx) + +DECLARE_SMELEMENT_HEADER( TOverrideProvision, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TOverrideProvision) + +DECLARE_SMELEMENT_HEADER(TSendErrorRecoveryRequest, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER(TSendErrorRecoveryRequest) + +DECLARE_SMELEMENT_HEADER( TAwaitingPDPCtxCreated, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingPDPCtxCreated ) + +DECLARE_SMELEMENT_HEADER( TAwaitingPrimaryPDPCtxCreated, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingPrimaryPDPCtxCreated ) + +DECLARE_AGGREGATED_TRANSITION2( + TOverrideProvisionAndStartDataClient, + PDPSCprStates::TOverrideProvision, + PRStates::TStartDataClients + ) + +//-========================================================= +//Activiating context +//-========================================================= +DECLARE_SMELEMENT_HEADER( TActivatePDPContext, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TActivatePDPContext) + +DECLARE_SMELEMENT_HEADER( TAwaitingPDPContextActive, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingPDPContextActive ) + +DECLARE_SMELEMENT_HEADER( TModifyActivePDPContext, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TModifyActivePDPContext) + +DECLARE_SMELEMENT_HEADER( TAwaitingActivePDPContextModified, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingActivePDPContextModified ) + +DECLARE_SMELEMENT_HEADER( TGetNegotiatedQoS, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TGetNegotiatedQoS) + +DECLARE_SMELEMENT_HEADER( TAwaitingNegotiatedQoSRetrieved, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingNegotiatedQoSRetrieved ) + +DECLARE_SMELEMENT_HEADER( TSendDataClientStarted, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSendDataClientStarted) + +DECLARE_SMELEMENT_HEADER( TSendDataClientStopped, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSendDataClientStopped) + +//=========================================================== +// Primary GoneDown +//=========================================================== +class CPrimaryPDPGoneDownActivity : public MeshMachine::CNodeActivityBase + { +/* +*/ +public: + static MeshMachine::CNodeActivityBase* NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode); + virtual ~CPrimaryPDPGoneDownActivity(); + CPDPSubConnectionProvider* NewDefault(); + +protected: + CPrimaryPDPGoneDownActivity(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode ); +private: + CPDPSubConnectionProvider* iNewDefault; + Messages::TNodeId iOriginalDataClient; + +protected: + typedef MeshMachine::TNodeContext TContext; + +public: + DECLARE_SMELEMENT_HEADER( TApplyNewDefault, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( TApplyNewDefault) + + DECLARE_SMELEMENT_HEADER( TSwitchToNewDefault, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( TSwitchToNewDefault) + + DECLARE_SMELEMENT_HEADER( TRejoinDataClient, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( TRejoinDataClient) + + DECLARE_SMELEMENT_HEADER( TStoreOriginalDataClient, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( TStoreOriginalDataClient) + + DECLARE_SMELEMENT_HEADER( TStopOriginalDataClient, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( TStopOriginalDataClient) + + DECLARE_SMELEMENT_HEADER( TNoTagOrProviderStopped, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); + DECLARE_SMELEMENT_FOOTER( TNoTagOrProviderStopped ) + }; + + +//-========================================================= +//Setting Params +//-========================================================= +DECLARE_SMELEMENT_HEADER( TSetQoS, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSetQoS) + +DECLARE_SMELEMENT_HEADER( TAwaitingQoSSet, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingQoSSet ) + +DECLARE_SMELEMENT_HEADER( TSetTFT, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSetTFT) + +DECLARE_SMELEMENT_HEADER( TSetMbmsParameters, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSetMbmsParameters) + +DECLARE_SMELEMENT_HEADER( TAwaitingTFTSet, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TDefContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingTFTSet ) + +#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW +DECLARE_AGGREGATED_TRANSITION2( + TStoreAndRespondWithCurrentParams, + PRStates::TStoreAndRespondWithCurrentParams, + PDPSCprStates::TSetMbmsParameters + ) +#else +DECLARE_AGGREGATED_TRANSITION3( + TStoreParamsAndRespond, + SCprStates::TStoreParams, + SCprStates::TRespondWithCurrentParams, + PDPSCprStates::TSetMbmsParameters + ) +#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW + +//-========================================================= +//Events +//-========================================================= +DECLARE_SMELEMENT_HEADER( TBlockedOrUnblocked, MeshMachine::TStateFork, NetStateMachine::MStateFork, PDPSCprStates::TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TBlockedOrUnblocked ) + +DECLARE_SMELEMENT_HEADER( TMbmsCtxOrPdpCtx, MeshMachine::TStateFork, NetStateMachine::MStateFork, PDPSCprStates::TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TMbmsCtxOrPdpCtx ) + +DECLARE_SMELEMENT_HEADER( TAwaitingParamsChanged, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingParamsChanged ) + +DECLARE_SMELEMENT_HEADER( TAwaitingContextBlockedOrUnblocked, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingContextBlockedOrUnblocked ) + +DECLARE_SMELEMENT_HEADER( TForwardContextBlockedOrUnblockedToDC, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TForwardContextBlockedOrUnblockedToDC) + + +DECLARE_SMELEMENT_HEADER( TSendDataTransferTemporarilyBlocked, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSendDataTransferTemporarilyBlocked ) + +DECLARE_SMELEMENT_HEADER( TSendDataTransferUnblocked, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSendDataTransferUnblocked ) + +DECLARE_AGGREGATED_TRANSITION2( + TRaiseParamsGrantedAndSendDataClientStarted, + PDPSCprStates::TFillInGrantedParams, + PDPSCprStates::TSendDataClientStarted + ) + +DECLARE_SMELEMENT_HEADER( TParamsEvent, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + void FillInEventL(CSubConGenEventParamsGranted& aEvent); + void FillInGrantedL(RParameterFamily& aFamily, const CSubConGenEventParamsGranted& aEvent); + void FillInMbmsSessionIdsL(CSubConGenEventParamsGranted& aEvent); +DECLARE_SMELEMENT_FOOTER( TParamsEvent) + +#ifdef SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW +DECLARE_AGGREGATED_TRANSITION2( + TRaiseParamsGrantedAndSendApplyResponse, + PDPSCprStates::TFillInGrantedParams, + PRStates::TSendApplyResponse + ) +#else + DECLARE_AGGREGATED_TRANSITION2( + TRaiseParamsGrantedAndSendApplyResponse, + PDPSCprStates::TFillInGrantedParams, + SCprStates::TSendApplyResponse + ) +#endif // SYMBIAN_ADAPTIVE_TCP_RECEIVE_WINDOW + +DECLARE_SMELEMENT_HEADER( TFillInGrantedParams, PDPSCprStates::TParamsEvent, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TFillInGrantedParams) + +DECLARE_SMELEMENT_HEADER( TFillInImsExtParams, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TFillInImsExtParams) + +DECLARE_SMELEMENT_HEADER( TRaiseParamsRejectedL, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TRaiseParamsRejectedL) + +DECLARE_SMELEMENT_HEADER( TRaiseParamsChanged, PDPSCprStates::TParamsEvent, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TRaiseParamsChanged) + +DECLARE_SMELEMENT_HEADER( TAwaitingNetworkStatusEvent, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingNetworkStatusEvent ) + +DECLARE_SMELEMENT_HEADER( TNetworkStatusEventTypeTag, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNetworkStatusEventTypeTag ) + +DECLARE_SMELEMENT_HEADER( TSendGoneDown, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TSendGoneDown) + +DECLARE_AGGREGATED_TRANSITION2( + TFillInGrantedParamsAndImsExtParams, + PDPSCprStates::TFillInGrantedParams, + PDPSCprStates::TFillInImsExtParams + ) + +//-========================================================= +//Destroying context +//-========================================================= +DECLARE_SMELEMENT_HEADER( TDestroyPDPContext, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TDestroyPDPContext) + +DECLARE_SMELEMENT_HEADER( TAwaitingPDPContextDestroyed, PDPSCprStates::TAwaitingPDPFSMMessage, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingPDPContextDestroyed ) + +DECLARE_SMELEMENT_HEADER( TAwaitingPDPContextGoneDown, PDPSCprStates::TAwaitingPDPContextDestroyed, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingPDPContextGoneDown ) + +DECLARE_SMELEMENT_HEADER( TNoTagOrProviderStopped, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNoTagOrProviderStopped ) + +DECLARE_SMELEMENT_HEADER( TCleanupFSM, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TCleanupFSM) + +DECLARE_AGGREGATED_TRANSITION2( + TCleanupFSMAndDataClients, + PDPSCprStates::TCleanupFSM, + PRStates::TDestroyOrphanedDataClients + ) + + +//=========================================================== +// Sip Address retrieval +//=========================================================== +DECLARE_SMELEMENT_HEADER( TAwaitingIoctlMessage, MeshMachine::TState, NetStateMachine::MState, PDPSCprStates::TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingIoctlMessage ) + +DECLARE_SMELEMENT_HEADER( TRetrieveSipAddr, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TDefContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TRetrieveSipAddr) + +//=========================================================== +// Cancel Start or Stop +//=========================================================== + +DECLARE_SMELEMENT_HEADER( TAwaitingDataClientStopOrCancel, MeshMachine::TState, NetStateMachine::MState, TContext ) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER( TAwaitingDataClientStopOrCancel ) + +DECLARE_SMELEMENT_HEADER( TCancelDataClientStartInPDP, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER( TCancelDataClientStartInPDP ) + +//=========================================================== +// User Authentication +//=========================================================== +DECLARE_SMELEMENT_HEADER(TSendAuthenticate, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, PDPSCprStates::TDefContext) + virtual void DoL(); +DECLARE_SMELEMENT_FOOTER(TSendAuthenticate) + +DECLARE_SMELEMENT_HEADER(TAwaitingAuthenticateComplete, MeshMachine::TState, NetStateMachine::MState, PDPSCprStates::TDefContext) + virtual TBool Accept(); +DECLARE_SMELEMENT_FOOTER(TAwaitingAuthenticateComplete) + +} + +#endif // SYMBIAN_PDPSCPRSTATES_H