diff -r 000000000000 -r dfb7c4ff071f datacommsserver/networkcontroller/ts_common/etelpckt.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/networkcontroller/ts_common/etelpckt.h Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,138 @@ +// Copyright (c) 2002-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: +// + +#ifndef __ETELPCKT_H__ +#define __ETELPCKT_H__ + +#include "etel.h" + + +class TPacketDataConfigBase +/** Base class for the packet configuration classes. + +The Context configuration, QoS profile (Requested and Negotiated) and QoS +Capabilities classes inherit from this class. It is outside the scope of all +the Packet data classes. + +To allow future configuration structures (e.g. TContextConfigWCDMA, +TContextConfigPDC, etc.) to be added in such a way that a completely different +structure may be defined and passed into the same functions as this one, all +existing configuration structures are derived from this thin base class +which provides just one function, ExtensionId(). This function returns the +one protected member variable, iExtensionId. A new structure would define an +associated new constant to be set in iExtensionId on construction, which would +then be queried by the TSY prior to unpackaging the structure. + +@see RPacketContext::TContextConfigGPRS +@see RPacketContext::TContextConfigCDMA +@see RPacketContext::TContextConfigR99_R4 +@see RPacketContext::TContextConfigR5 + +@publishedPartner +@released + +*/ + { +public: + /** + Flags identifying the different packet networks. + */ + enum + { + /** + GPRS Release 97/98 packet network. + */ + KConfigGPRS= 0x01, + /** + GPRS/UMTS Release 99 and UMTS Release 4 networks. + */ + KConfigRel99Rel4 = 0x04, + /** + UMTS/IMS 3GPP Release 5 networks. + */ + KConfigRel5 = 0x05, + }; + + /** This member returns the type of class. + + @return The type of class. */ + inline TInt ExtensionId(){return iExtensionId;}; +protected: + /** + Defines the type of class: either KConfigGPRS, KConfigCMDA or KConfigRel99Rel4, + which identifies the type of packet network (GPRS R97/98, CDMA, Release 99 or 4 or 5) + */ + TInt iExtensionId; + }; + + +class RPacketService + { +public: + TInt Open(RPhone& aPhone); + void Close(); + + void CancelAsyncRequest(TInt aReqToCancel) const; + + enum TStatus + { + EStatusUnattached, // unattached to network & inactive packet data connection + EStatusAttached, // attached to network & inactive packet data connection + EStatusActive, // attached to network & active packet data connection + EStatusSuspended // attached to network & suspended packet data connection + }; + + TInt GetStatus(TStatus& aPacketStatus) const; + + enum TMSClass + { + EMSClassDualMode, // Active Simultaneous PS & CS calls supported (ClassA) + EMSClassSuspensionRequired, // Active CS & Suspended PS simultaneous calls supported (ClassB) + EMSClassAlternateMode, // Active CS or Active PS only call supported (ClassC) + EMSClassCircuitSwitchedOnly,// Active CS only call supported (ClassC) + EMSClassPacketSwitchedOnly, // Active PS only call supported (ClassC) + EMSClassUnknown // Unknown what configuration is supported + }; + + void GetMSClass(TRequestStatus& aStatus, TMSClass& aCurrentClass, TMSClass& aMaxClass) const; + + enum TRegistrationStatus + { + ENotRegisteredNotSearching, + ERegisteredOnHomeNetwork, + ENotRegisteredSearching, + ERegistrationDenied, + EUnknown, + ERegisteredRoaming, // foreign network + ENotRegisteredButAvailable, + ENotRegisteredAndNotAvailable + }; + + void GetNtwkRegStatus(TRequestStatus& aStatus, TRegistrationStatus& aRegistrationStatus) const; + + enum TAttachMode + { + EAttachWhenPossible,// instruct phone stack to attach to packet network whenever it can + EAttachWhenNeeded // instruct phone stack to attach to network only when required (eg: activating a connection) + }; + + TInt GetAttachMode(TAttachMode& aMode) const; + +private: + CEtelBehaviourBase* iTestBehaviour; + }; + +#endif // __ETELPCKT_H__ +