diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/multimodetsy/Multimode/gprs/gprs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/multimodetsy/Multimode/gprs/gprs.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,173 @@ +// 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 _GPRS_H +#define _GPRS_H + +#include +#include +#include +#include "et_tsy.h" +#include + +class CATIO; +class CATInit; +class CPhoneGlobals; +class CATGprsClass; +class CATGprsDetach; +class CATGprsAttach; +class CATGprsNtwkRegStatus; +class CATGprsNtwkRegStatusChange; +class CGprsContext; +class CGprsContextEntry; + +class CGprs :public CSubSessionExtBase +/** +This class implements the GPRS functionality supported in the RPacket APIs +CGprs inherits from CSubSessionExtBase. It is intended for CPhoneGsm usage. +This class contains a linked list of the contexts that it creates. +@internalComponent +*/ + { +public: + static CGprs* NewL(CATIO* iIo, CATInit* iInit, CPhoneGlobals* iPhoneGlobals); + 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); + RHandleBase* GlobalKernelObjectHandle(); + TDes* NameOfLastAddedContext(); + + RPacketService::TStatus Status(); + void SetStatus(RPacketService::TStatus aStatus); + + RPacketService::TRegistrationStatus RegistrationStatus(); + void SetRegistrationStatus(RPacketService::TRegistrationStatus aStatus); + + TInt NumberOfContexts(); + RPacketService::TMSClass CurrentMSClass(); + void SetCurrentMSClass(RPacketService::TMSClass aMSClass); + RPacketService::TMSClass MaxMSClass(); + void SetContextConfigGPRS(const RPacketContext::TContextConfigGPRS* aContextConfigGPRS); + void ContextConfigGPRS(RPacketContext::TContextConfigGPRS* aContextConfigGPRS); + TInt MaxNumberOfContexts(); + CGprsContext* Context(TInt aCount); + void RemoveContext(CGprsContext* aContext); + +private: + CGprs(CATIO* iIo, CATInit* iInit, CPhoneGlobals* iPhoneGlobals); + virtual ~CGprs(); + void ConstructL(); +private: + void AppendNewContextL(CGprsContext* aNewContext); + void GenerateNewContextNameAndCid(TDes& aName, TInt& aCid); + + TInt NotifyContextAdded(const TTsyReqHandle aTsyReqHandle, TDes* aContextId); + TInt NotifyContextAddedCancel(const TTsyReqHandle aTsyReqHandle); + + TInt Attach(const TTsyReqHandle aTsyReqHandle); + TInt AttachCancel(const TTsyReqHandle aTsyReqHandle); + + TInt Detach(const TTsyReqHandle aTsyReqHandle); + TInt DetachCancel(const TTsyReqHandle aTsyReqHandle); + + TInt GetStatus(const TTsyReqHandle aTsyReqHandle,RPacketService::TStatus* aGprsStatus); + TInt NotifyStatusChange(const TTsyReqHandle aTsyReqHandle,RPacketService::TStatus* aGprsStatus); + TInt NotifyStatusChangeCancel(const TTsyReqHandle aTsyReqHandle); + + TInt NotifyContextActivationRequested(const TTsyReqHandle aTsyReqHandle, RPacketContext::TProtocolType* aPdpType); + TInt NotifyContextActivationRequestedCancel(const TTsyReqHandle aTsyReqHandle); + + TInt RejectActivationRequest(const TTsyReqHandle aTsyReqHandle); + TInt RejectActivationRequestCancel(const TTsyReqHandle aTsyReqHandle); + + TInt EnumerateContexts(const TTsyReqHandle aTsyReqHandle,TInt* aCount, TInt* aMaxAllowed); + TInt GetContextInfo(const TTsyReqHandle aTsyReqHandle,TInt aIndex,RPacketService::TContextInfo* aInfo); + TInt GetContextInfoCancel(const TTsyReqHandle aTsyReqHandle); + + TInt GetNtwkRegStatus(const TTsyReqHandle aTsyReqHandle,RPacketService::TRegistrationStatus* aRegistrationStatus); + TInt GetNtwkRegStatusCancel(const TTsyReqHandle aTsyReqHandle); + TInt NotifyChangeOfNtwkRegStatus(const TTsyReqHandle aTsyReqHandle,RPacketService::TRegistrationStatus* aRegistrationStatus); + TInt NotifyChangeOfNtwkRegStatusCancel(const TTsyReqHandle aTsyReqHandle); + + TInt GetMSClass(const TTsyReqHandle aTsyReqHandle, RPacketService::TMSClass* aCurrentClass, RPacketService::TMSClass* aMaxClass); + TInt GetMSClassCancel(const TTsyReqHandle aTsyReqHandle); + + TInt SetMSClass(const TTsyReqHandle aTsyReqHandle, RPacketService::TMSClass* aClass); + TInt SetMSClassCancel(const TTsyReqHandle aTsyReqHandle); + + TInt NotifyMSClassChange(const TTsyReqHandle aTsyReqHandle, RPacketService::TMSClass* aNewClass); + TInt NotifyMSClassChangeCancel(const TTsyReqHandle aTsyReqHandle); + + TInt GetStaticCaps(const TTsyReqHandle aTsyReqHandle, TUint* aCaps,RPacketContext::TProtocolType* aPdpType); + + TInt GetDynamicCaps(const TTsyReqHandle aTsyReqHandle, RPacketService::TDynamicCapsFlags* aCaps); + TInt NotifyDynamicCapsChange(const TTsyReqHandle aTsyReqHandle, RPacketService::TDynamicCapsFlags* aCaps); + TInt NotifyDynamicCapsChangeCancel(const TTsyReqHandle aTsyReqHandle); + + TInt SetAttachMode(const TTsyReqHandle aTsyReqHandle, RPacketService::TAttachMode* aMode); + TInt GetAttachMode(const TTsyReqHandle aTsyReqHandle, RPacketService::TAttachMode* aMode); + + TInt SetDefaultContextParams(const TTsyReqHandle aTsyReqHandle, const TDesC8* aPckg); + TInt GetDefaultContextParams(const TTsyReqHandle aTsyReqHandle, TDes8* aPckg); + +private: + TDblQue iContexts; //< List of contexts. + CATIO* iIo; //< Pointer to communication object. + CATGprsAttach* iATGPRSAttach; //< Pointer to AT GPRS attach command object. + CATGprsDetach* iATGprsDetach; //< Pointer to AT GPRS detach command object. + CATInit* iInit; //< Pointer to AT phone init object. + CATGprsClass* iATGprsClass; //< Pointer to AT GPRS MS class command object. + CATGprsNtwkRegStatus* iATGprsNtwkRegStatus; //< Pointer to AT GPRS get current network registration command object. + CATGprsNtwkRegStatusChange* iATGprsNtwkRegStatusChange; //< Pointer to AT machine which triggers notifications when phone changes reg status + CPhoneGlobals* iPhoneGlobals; //< Pointer to phone globals that store phone wide parameters. + + // internal GPRS connection state. + RPacketContext::TContextConfigGPRS iDefContextConfigGPRS; //< Internal state. Default context settings. + RMutex iMutex; //< Synchronisation mutex + }; + +class CGprsContext; + +class CGprsContextEntry : public CBase +/** +This class contains a CGprsContext pointer. It is intended to +be part of CGprs's linked list of contexts +CGprs inherits from CBase. This class is only intended to be part of the TDblQue list +that CGprs has. +@internalComponent +*/ + { + friend class CGprs; +public: + CGprsContextEntry(CGprsContext* aContext); + ~CGprsContextEntry(); + void Deque(); +public: + CGprsContext* iContext; //< Pointer to a context. +private: + TDblQueLink iLink; //< Link object. + }; +#endif