--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyprotocols/secondarypdpcontextumtsdriver/inc/cpdpfsm.h Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,179 @@
+// Copyright (c) 2005-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:
+// PDP FSM header
+//
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef CPDPFSM_H
+#define CPDPFSM_H
+
+#include <e32base.h>
+#include <etelmm.h>
+#include <etelqos.h>
+#include <networking\UMTSNifControlIf.h>
+#include "reteldriverinput.h"
+#include "pdpfsmnmspace.h"
+
+#include "tpdpstates.h"
+
+class CPdpFsmFactory;
+class RPacketQoS;
+class TQoSR99_R4Requested;
+class TQoSR99_R4Negotiated;
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5
+class TQoSR5Requested;
+class TQoSR5Negotiated;
+#endif
+// SYMBIAN_NETWORKING_UMTSR5
+
+class TFTInfo;
+class TFTOperationCode;
+
+class CPdpFsm : public CBase
+{
+ friend class TPdpState;
+ friend class TPdpStateInitialised;
+ friend class TPdpStateOpeningPhone;
+ friend class TPdpStateCreatingPrimary;
+ friend class TPdpStateActivatingPrimary;
+ friend class TPdpStateCreatingSecondary;
+ friend class TPdpStateCreatedSecondary;
+ friend class TPdpStateSettingQoS;
+ friend class TPdpStateSettingTFT;
+ friend class TPdpStateActivatingSecondary;
+ friend class TPdpStateOpen;
+ friend class TPdpStateChangingQoS;
+ friend class TPdpStateChangingTFT;
+ friend class TPdpStateModifyingActive;
+ friend class TPdpStateSuspended;
+ friend class TPdpStateClosing;
+ friend class TPdpStateStopping;
+
+public:
+ CPdpFsm();
+ ~CPdpFsm();
+
+ TInt Input (const TInt aOperation, const TInt aParam);
+
+ void Get(RPacketQoS::TQoSR99_R4Requested& aParam);
+ void Get(RPacketQoS::TQoSR99_R4Negotiated& aParam);
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5
+ void Get(RPacketQoS::TQoSR5Requested& aParam);
+ void Get(RPacketQoS::TQoSR5Negotiated& aParam);
+#endif
+// SYMBIAN_NETWORKING_UMTSR5
+
+ void Get(TTFTInfo& aParam);
+ void Get(TTFTOperationCode& aParam);
+ void Get(RPacketContext::TDataChannelV2& aParam);
+ void Get(RPacketContext::TContextConfigGPRS& aParam);
+ void Get(RPacketContext::TContextStatus& aParam);
+
+ void Set(const RPacketQoS::TQoSR99_R4Requested& aParam);
+ void Set(const RPacketQoS::TQoSR99_R4Negotiated& aParam);
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5
+ void Set(const RPacketQoS::TQoSR5Requested& aParam);
+ void Set(const RPacketQoS::TQoSR5Negotiated& aParam);
+#endif
+// SYMBIAN_NETWORKING_UMTSR5
+
+ void Set(const TTFTInfo& aParam);
+ void Set(const TTFTOperationCode& aParam);
+ void Set(const RPacketContext::TDataChannelV2& aParam);
+ void Set(const RPacketContext::TContextConfigGPRS& aParam);
+
+ void Set(const RPacketContext::TContextStatus& aParam);
+
+ void InitL (TContextId aPdpId, CPdpFsmFactory * aPdpFsmFactory, REtelDriverInput * aEtelDriverInput);
+
+ void EtelInput (EtelDriver::TEtelInput aOperation);
+ void EtelCancel (void);
+ void SpudInput (TInt aNotification, TInt aParam);
+ void GetLastErrorCause (TInt& aLastErrorCause);
+
+protected:
+private:
+ void ChangeStateToInitialised(void);
+ void ChangeStateToOpeningPhone(void);
+ void ChangeStateToCreatingPrimary(void);
+ void ChangeStateToActivatingPrimary(void);
+ void ChangeStateToCreatingSecondary(void);
+ void ChangeStateToCreatedSecondary(void);
+ void ChangeStateToSettingQoS(void);
+ void ChangeStateToSettingTFT(void);
+ void ChangeStateToActivatingSecondary(void);
+ void ChangeStateToOpen(void);
+ void ChangeStateToChangingQoS(void);
+ void ChangeStateToChangingTFT(void);
+ void ChangeStateToModifingActive(void);
+ void ChangeStateToSuspended(void);
+ void ChangeStateToClosing(void);
+ void ChangeStateToStopping(void);
+
+
+public:
+protected:
+private:
+
+ // local data cache for this context
+ RPacketQoS::TQoSR99_R4Requested iQoSReq;
+ RPacketQoS::TQoSR99_R4Negotiated iQoSNeg;
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5
+ RPacketQoS::TQoSR5Requested iQoSR5Req;
+ RPacketQoS::TQoSR5Negotiated iQoSR5Neg;
+#endif
+// SYMBIAN_NETWORKING_UMTSR5
+
+ RPacketContext::TDataChannelV2 iDataChannelV2;
+ RPacketContext::TContextStatus iContextStatus;
+ TTFTInfo iTFT;
+ TTFTOperationCode iTFTOperationCode;
+ RPacketContext::TContextConfigGPRS iGPRS;
+
+ CPdpFsmFactory * iPdpFsmFactory; // need stuff from factory
+ REtelDriverInput * iEtelDriverInput;
+
+ TPdpState * iState; // current state
+
+ TContextId iPdpId; // our instance PDP context id - fixed when allocateed
+
+ enum TContextType
+ {
+ ENone,
+ EPrimary,
+ ESecondary
+ } iContextType;
+
+
+};
+
+
+
+#endif // CPDPFSM_H
+
+
+