diff -r 8ab6687fb94c -r 3adadc800673 telephonyprotocols/umtsgprsscpr/inc/MPdpFsmInterface.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/umtsgprsscpr/inc/MPdpFsmInterface.h Fri Jun 11 14:49:29 2010 +0300 @@ -0,0 +1,163 @@ +// Copyright (c) 2004-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: +// The interface to the PDP Context Finite State Machine. +// +// + +/** + @file + @internalComponent +*/ + + +#ifndef MPDPFSMINTERFACE_H +#define MPDPFSMINTERFACE_H + + +#include +#include +#include + +#include +#include + +/** Maximum number of PDP contexts supported by SPUD + This is derived from the number of bits available for NSAPIs + Each PDP context corresponds with a NSAPI (and each NSAPI at most maps to one primary or secondary PDP Context) + There are 4 bits allocated for NSAPIs with values 0 - 4 being reserved, leaving 11 values for PDP contexts + @see GSM24.008 +*/ +const TContextId KMaxPdpContexts = 11; + +/** Internal pseudo-context ID meaning all contexts */ +const TContextId KAllContexts = -1; + +/** ID of the primary PDP context +Primary context is the first context created, and it can be +created only once during Spud lifetime. +There is a subltly here. There is always a default context. +This just happens to be the primary until it is deleted, at +which point one of the secondries will become the default. +This can happen in a network handover situation. +This is documented in the design spec. */ +const TContextId KPrimaryContextId = 0; + + +namespace SpudMan +{ + enum SpudManGuQoSSignal + { + EContextStart = 0x80, + EContextCreate, + EContextDelete, + EContextActivate, + ERegisterEventHandler, + EContextSetEvents, + EContextQoSSet, + EContextModifyActive, + EContextTFTModify, + ENifSetDefaultQoS, + EStartupPrimaryContextCreation, + + // sentinal + ESpudManGuQoSSignalSentinal + }; + + enum SpudManSignal + { + ESetDefaultQoS = ESpudManGuQoSSignalSentinal, + ECreatePrimaryPDPContext, + ECreateSecondaryPDPContext, + ESuspend, + EResume, + E1ryPdpActivate, + ECancelContextCreate, + + EGetNegQoS, + + // sentinal + ESpudManSignalSentinal + }; + +} + +class MPdpFsmInterface +/** + * Definition of PDP Context Finite State Machine interface. + * UmtsGprsSCPR comes with an implementation of this interface. + * The interface is to be used by SpudMan. + * + * @internalComponent + */ + { +public: + virtual void OpenL(MSpudManInterface* aSpudManInterface, TName& aName) = 0; + virtual void Close() = 0; + + virtual TInt Input (TContextId aPdpId, const TInt aOperation, const TInt aParam=KErrNone) = 0; + + +#ifdef SYMBIAN_NETWORKING_UMTSR5 + // This is to set the status of IM CN signalling parameter + + virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR5Requested& aParam) = 0; + virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR5Negotiated& aParam) = 0; + virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR5Requested& aParam) const = 0 ; + virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR5Negotiated& aParam) const = 0; + +#else +// !SYMBIAN_NETWORKING_UMTSR5 + + virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Requested& aParam) = 0; + virtual TInt Set(TContextId aPdpId, const RPacketQoS::TQoSR99_R4Negotiated& aParam) = 0; + virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Requested& aParam) const = 0; + virtual TInt Get(TContextId aPdpId, RPacketQoS::TQoSR99_R4Negotiated& aParam) const = 0; +#endif +// SYMBIAN_NETWORKING_UMTSR5 + + + + virtual TInt Set(TContextId aPdpId, const TTFTInfo& aParam) = 0; + virtual TInt Set(TContextId aPdpId, const TTFTOperationCode& aParam) = 0; + virtual TInt Set(TContextId aPdpId, const RPacketContext::TDataChannelV2& aParam) = 0; + virtual TInt Set(TContextId aPdpId, const RPacketContext::TContextConfigGPRS& aParam) = 0; + virtual TInt Set(TContextId aPdpId, const RPacketContext::TContextStatus& aParam) = 0; + + virtual TInt Get(TContextId aPdpId, TTFTInfo& aParam) const = 0; + virtual TInt Get(TContextId aPdpId, TTFTOperationCode& aParam) const = 0; + virtual TInt Get(TContextId aPdpId, RPacketContext::TDataChannelV2& aParam) const = 0; + virtual TInt Get(TContextId aPdpId, RPacketContext::TContextConfigGPRS& aParam) const = 0; + virtual TInt Get(TContextId aPdpId, RPacketContext::TContextStatus& aParam) const = 0; + + virtual TInt GetLastErrorCause(TContextId aPdpId, TInt& aLastErrorCause) const = 0; + + virtual void Set(const RPacketService::TStatus aParam) = 0; // applies to all contexts + virtual void Get(RPacketService::TStatus& aParam) = 0; // applies to all contexts + + // additional accessors + virtual const TName& TsyName(void) = 0; + + virtual void SetContextTerminationErrorAndStop(TContextId aPdpId, TInt aErrorCode) = 0; + +#ifdef SYMBIAN_NETWORKING_UMTSR5 + virtual void SetIMCNSignalling(TBool aImCnSignalling) = 0; +#endif //SYMBIAN_NETWORKING_UMTSR5 +protected: +private: + +}; + + +#endif +// MPDPFSMINTERFACE_H