diff -r 000000000000 -r 3553901f7fa8 telephonyprotocols/pdplayer/inc/PDPSCPRStates.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/pdplayer/inc/PDPSCPRStates.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,419 @@ +// Copyright (c) 2006-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: +// PDPSCPR States +// +// + +/** + @file + @internalComponent +*/ + +#ifndef SYMBIAN_PDPSCPRSTATES_H +#define SYMBIAN_PDPSCPRSTATES_H + +#include +#include +#include "PDPSCPR.h" + +class TPDPFSMMessages + { +public: + enum { ERealmId = 0x102822EF }; + +private: + enum + /** + Definition of generic Link Tier message ids + */ + { + EPDPFSMMessage = Messages::KNullMessageId + 1, + }; +public: + typedef Messages::TMessageSigNumberNumber TPDPFSMMessage; + }; + +//-========================================================= +// +// +// +// States +// +// +// +//-========================================================= +namespace PDPSCprStates +{ +const TInt KFakeStart = 1; +const TInt KBlocked = 2; +const TInt KUnblocked = 3; +const TInt KSendErrorRecoveryRequest = 4; +const TInt KContentionTag = 5; + + +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( TNoTagOrAlreadyStarted, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext ) + virtual TInt TransitionTag(); +DECLARE_SMELEMENT_FOOTER( TNoTagOrAlreadyStarted ) + +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 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; +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 ) + +} + +#endif // SYMBIAN_PDPSCPRSTATES_H