diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/multimodetsy/Multimode/gprs/gprsqos.h --- /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 +#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