telephonyprotocols/secondarypdpcontextumtsdriver/inc/cpdpfsm.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /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
+
+
+