telephonyserverplugins/multimodetsy/Multimode/gprs/gprsqos.h
changeset 0 3553901f7fa8
child 24 6638e7f4bd8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyserverplugins/multimodetsy/Multimode/gprs/gprsqos.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,95 @@
+// Copyright (c) 2001-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:
+//
+
+/**
+ @file
+ @internalAll 
+*/
+
+#ifndef __GPRSQOS_H
+#define __GPRSQOS_H
+
+#include <etelqos.h>
+#include "Gprscontext.h"
+
+class CATGprsSetQoSProfile;
+class CATGprsGetQoSProfile;
+class CATIO;
+class CATInit;
+class CPhoneGlobals;
+
+
+class CATGprsSetProfile;
+class CATGprsGetProfile;
+class CATGprsGetCapsProflie;
+class CGprsQoS :public CSubSessionExtBase
+/**
+This class implements the RPacketQoS API.
+CGprsQoS inherits from CSubSessionExtBase.
+@internalComponent
+*/
+{
+public:
+	static	CGprsQoS* NewL(CGprsContext* aParent, TInt iCid, CATIO* aIo, CATInit*	aInit, CPhoneGlobals* aPhoneGlobals, TDes& aName);
+
+	virtual TInt ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage);
+	virtual TReqMode ReqModeL(const TInt aIpc);
+	virtual CTelObject* OpenNewObjectByNameL(const TDesC& aName);
+	virtual CTelObject* OpenNewObjectL(TDes& aNewName);
+	virtual TInt CancelService(const TInt aIpc, const TTsyReqHandle aTsyReqHandle);
+	virtual void Init();
+	virtual TInt RegisterNotification(const TInt aIpc);
+	virtual TInt DeregisterNotification(const TInt aIpc);
+	virtual TInt NumberOfSlotsL(const TInt aIpc);
+
+	RPacketQoS::TQoSGPRSRequested*	GetReqQoSProfile();
+	void SetReqQoSProfile(const RPacketQoS::TQoSGPRSRequested* aQoSRequested);
+	void SetNegQoSProfile(const RPacketQoS::TQoSGPRSNegotiated* aQoSNegotiated);
+
+	inline CGprsContext* Parent(){return iParent;};
+	TDes* GetProfileName();
+
+protected:
+	void	ConstructL(TDes& aName);
+	CGprsQoS(CGprsContext* aParent, TInt iCid, CATIO* iIo, CATInit* iInit, CPhoneGlobals* iPhoneGlobals);
+	virtual ~CGprsQoS();
+
+private: 
+	TInt SetProfile(const TTsyReqHandle aTsyReqHandle,const TDesC8* aReqProfile);
+	TInt SetProfileCancel(const TTsyReqHandle aTsyReqHandle);
+	TInt GetProfile(const TTsyReqHandle aTsyReqHandle,TDes8* aNegProfile);
+	TInt GetProfileCancel(const TTsyReqHandle aTsyReqHandle);
+	TInt NotifyProfileChanged(const TTsyReqHandle aTsyReqHandle, TDes8* aNegProfile);
+	TInt NotifyProfileChangedCancel(const TTsyReqHandle aTsyReqHandle);
+	TInt GetProfileCaps(const TTsyReqHandle aTsyReqHandle, TDes8* aCapsProfile);
+	TInt GetProfileCapsCancel(const TTsyReqHandle aTsyReqHandle);
+private:
+	TBool ShouldNotProcessIpcCall(TInt aIpc);
+	TBool ShouldNotProcessIpcCallWhenComportIsLoaned(TInt aIpc);
+private:
+	TName							iQoSName;
+	TInt							iCid; // context id relating the QoS profile to the context id.
+	CATGprsSetProfile*				iATGprsSetProfile;		//< Pointer to context activation AT command object.
+	CATGprsGetProfile*				iATGprsGetProfile;	//< Pointer to context deactivation AT command object.
+	CATGprsGetCapsProflie*			iATGprsGetCapsProfile;			//< Pointer to context configuration AT command object.
+	CGprsContext*					iParent;					//< Pointer to parent.
+	CATIO*							iIo;						//< Pointer to lowever layer (C32) communication object.
+	CATInit*						iInit;						//< Pointer to AT phone init.
+	CPhoneGlobals*					iPhoneGlobals;				//< Pointer to global wide phone states.
+	RPacketQoS::TQoSGPRSRequested	iQoSRequested;
+	RPacketQoS::TQoSGPRSNegotiated	iQoSNegotiated;
+};
+
+#endif