diff -r 6b1d113cdff3 -r 6638e7f4bd8f telephonyprotocols/gprsumtsqosinterface/inc/UmtsNifControlIf.h --- a/telephonyprotocols/gprsumtsqosinterface/inc/UmtsNifControlIf.h Mon May 03 13:37:20 2010 +0300 +++ b/telephonyprotocols/gprsumtsqosinterface/inc/UmtsNifControlIf.h Thu May 06 15:10:38 2010 +0100 @@ -1,296 +1,296 @@ -// Copyright (c) 2006-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 UMTSNifControlIf.h -// Header file for UMTS-NIF Control API -// - -#ifndef __UMTSNIF_CONTROL__ -#define __UMTSNIF_CONTROL__ - -#include -#include -#if MM_ETEL_API -#include "uscl_packet.h" // RPacketContext from UMTSSim -#include "uscl_qos.h" // RPacketQoS from UMTSSim -#else -#include "etelpckt.h" // -#include "etelqos.h" // -#endif - -const TUint KMaxNumberOfPacketFilterElements = 5; // From UMTS standards -const TUint KMaxNumberOfPacketFilters = 8; // From UMTS standards - -/** - * - * @publishedPartner - * @released - */ -class MNifEvent -{ -public: - virtual TInt Event(CProtocolBase *aProtocol, TUint aEvent, TDes8& aOption, TAny* aSource=0) = 0; -}; - -/** - * - * @publishedPartner - * @released - */ -class TEvent -{ -public: - MNifEvent *iEvent; -}; - - - - -// List of filters for TTFTInfo -typedef TSglQue FilterQueue; -typedef TSglQueIter FilterQueueIterator; - -/** - * Class to handle one Traffic Flow Template - * Includes 1 - 8 Filters - * - * @publishedPartner - * @released - */ -class TTFTInfo -{ -public : - - IMPORT_C explicit TTFTInfo(); - IMPORT_C ~TTFTInfo(); - IMPORT_C TInt Set(const TTFTInfo& aTFTInfo); - IMPORT_C TInt AddPacketFilter(RPacketContext::TPacketFilterV2 aFilter); - IMPORT_C TInt GetPacketFilter(RPacketContext::TPacketFilterV2& aFilter); - IMPORT_C TInt RemovePacketFilter(RPacketContext::TPacketFilterV2 aFilter); - IMPORT_C TInt NextPacketFilter(RPacketContext::TPacketFilterV2& aFilter); - IMPORT_C void SetToFirst(); - IMPORT_C TUint8 FilterCount(); - - - IMPORT_C TTFTInfo& operator=(const TTFTInfo& aTFTInfo); - // Additional Functions for the SBLP Params Handling - IMPORT_C TInt AddSblpToken ( RPacketContext::TAuthorizationToken aAuthorizationToken, - RArray aFlowIds); - IMPORT_C TInt GetSblpToken ( RPacketContext::CTFTMediaAuthorizationV3 &aSblpParams ) const; - IMPORT_C TInt RemovSblpToken (); - -#ifdef SYMBIAN_NETWORKING_UMTSR5 - IMPORT_C TInt SetIMCNSubsystemflag(TBool aIMCNSubsystemflag); - IMPORT_C TInt GetIMCNSubsystemflag(TBool &aIMCNSubsystemflag) const; -#endif - -private : - TUint8 iFilterCount; - TUint8 iLastReturnedFilter; - RPacketContext::TPacketFilterV2 iPacketFilters[KMaxNumberOfPacketFilters]; - TBool iFilterSlots[KMaxNumberOfPacketFilters]; - // Adding ETel Member for Holding the SBLP Parameters - RPacketContext::CTFTMediaAuthorizationV3 *iSblpParams; -#ifdef SYMBIAN_NETWORKING_UMTSR5 - TBool iIMCNSubsystemflag; -#endif -}; - -// -// Type of the context. Mainly used for upkeeping and consistency checking. -// -enum TContextType - { - EPrimaryContext, // Primary context - ESecondaryContext, // Secondary context - ENetworkInitiatedContext, // Initiated from network - EContextTypeUnknown // Default. Used to catch errors. This should be filled by the Nif when returning context info - }; -// -// Type: context identifier -// -typedef TInt8 TContextId; // Nif's representation - -/** - * Class contains all configuration info of a single context - * - Configuration: RPacketContext::TContextConfigGPRS - * - Requested QoS: RPacketQoS::TQoSR99_R4Requested - * - Negotiated QoS: RPacketQoS::TQoSR99_R4Negotiated - * - TFT: TTFTInfo - * - * @publishedPartner - * @released - */ -class TContextConfig -{ -public: - IMPORT_C ~TContextConfig(); - - IMPORT_C TInt Set(const TContextConfig& aConfig); - IMPORT_C void Reset(); - IMPORT_C TContextConfig(); - - // Set-methods: Used to set the corresponding member variable - IMPORT_C TInt SetTFTInfo(const TTFTInfo& aTFTInfo); - IMPORT_C TInt SetUMTSQoSReq(const RPacketQoS::TQoSR99_R4Requested& aUMTSQoSRequest); - IMPORT_C TInt SetUMTSQoSNeg(const RPacketQoS::TQoSR99_R4Negotiated& aUMTSQoS); -#ifdef SYMBIAN_NETWORKING_UMTSR5 - IMPORT_C TInt SetUMTSQoSReq(const RPacketQoS::TQoSR5Requested& aR5QoSReq); - IMPORT_C TInt SetUMTSQoSNeg(const RPacketQoS::TQoSR5Negotiated& aR5QoSNeg); -#endif - IMPORT_C TInt SetContextConfig(const RPacketContext::TContextConfigGPRS& aUMTSConfig); - IMPORT_C TInt SetPdpCompression(TUint aPdpCompression); - IMPORT_C TInt SetPdpType(RPacketContext::TProtocolType aPdpType); - IMPORT_C TInt SetAccessPointName(const RPacketContext::TGSNAddress& aAccessPointName); - IMPORT_C TInt SetPdpAddress(const RPacketContext::TProtocolAddress& aPdpAddress); - - - // Get-methods: Used to fetch the corresponding member variable - IMPORT_C TInt GetUMTSQoSReq(RPacketQoS::TQoSR99_R4Requested& aUMTSQoSRequest) const; - IMPORT_C TInt GetTFTInfo(TTFTInfo& aTFTInfo) const; - IMPORT_C TInt GetUMTSQoSNeg(RPacketQoS::TQoSR99_R4Negotiated& aUMTSQoS) const; - IMPORT_C TInt GetContextConfig(RPacketContext::TContextConfigGPRS& aUMTSConfig) const; - IMPORT_C TInt GetPdpCompression(TUint& aPdpCompression) const; - IMPORT_C TInt GetPdpType(RPacketContext::TProtocolType& aPdpType) const; - IMPORT_C TInt GetAccessPointName(RPacketContext::TGSNAddress& aAccessPointName) const; - IMPORT_C TInt GetPdpAddress(RPacketContext::TProtocolAddress& aPdpAddress) const; -#ifdef SYMBIAN_NETWORKING_UMTSR5 - IMPORT_C TInt GetUMTSQoSReq(RPacketQoS::TQoSR5Requested& aR5QoSReq) const; - IMPORT_C TInt GetUMTSQoSNeg(RPacketQoS::TQoSR5Negotiated& aR5QoSNeg) const; -#endif - -protected: - RPacketContext::TContextConfigGPRS iContextConfig; // Configuration -#ifdef SYMBIAN_NETWORKING_UMTSR5 - RPacketQoS::TQoSR5Requested iUMTSQoSReq; // Requested R5 QoS - RPacketQoS::TQoSR5Negotiated iUMTSQoS; // Negotiated R5 QoS -#else - RPacketQoS::TQoSR99_R4Requested iUMTSQoSReq; // Requested R99/R4 QoS - RPacketQoS::TQoSR99_R4Negotiated iUMTSQoS; // Negotiated R99/R4 QoS -#endif - TTFTInfo iTFTInfo; // Traffic Flow Template -}; - - -// -// Operation result codes. Removed, now using standard codes + Etel codes -// -//typedef TInt TContextReasonCode; -//const TInt KContextOk = 0x00; // OK KErrNone -//const TInt KErrContextBusy = -0x03; // Another operation pending KErrInUse -//const TInt KErrContextInvalidId = -0x05; // Context id out of range: FATAL KErrBadHandle -//const TInt KErrContextUnusedId = -0x06; // Context with given ID missing KErrNotReady -//const TInt KErrContextCreateFailed = -0x07; // Error while creating context // Not needed -//const TInt KErrMaxNumberOfContextsReached = -0x0a; // Device configuration does not support more contexts //KErrNotSupported -//const TInt KErrMemory = -0x0b; // General out of memory error //KErrNoMemory -//const TInt KErrContextStatus = -0x0c; // Context status/requested operation mismatch -//const TInt KErrContextGeneral = -0x0d; // General error //KErrGeneral - -/** - * Single Context's identification info - * - * @publishedPartner - * @released - */ -class TContextInfo -{ -public: - TContextId iContextId; // Context id in Nif - RPacketContext::TContextStatus iStatus; // The current status from Etel -}; - - -// -// Events the Nif sends to upper layers -// -const TUint KContextDeleteEvent = 0x01; // When deletion is initiated from network. -const TUint KContextActivateEvent = 0x02; // Response to KContextActivate -const TUint KContextParametersChangeEvent = 0x03; // Contexts parameters/status have changed. -const TUint KContextBlockedEvent = 0x04; // A PDP context becomes blocked -const TUint KContextUnblockedEvent = 0x05; // A PDP context becomes unblocked -const TUint KNetworkStatusEvent = 0x06; // For different network indications -const TUint KContextQoSSetEvent = 0x07; // Response to KContextQoSSet -const TUint KContextTFTModifiedEvent = 0x08; // Response to KContextTFTModify -const TUint KPrimaryContextCreated = 0x09; // Primary context at startup created -const TUint KSecondaryContextCreated = 0x0a; // Secondary context created -const TUint KContextModifyActiveEvent = 0x0b; // Response to KModifyActive -const TUint KGetNegQoSEvent = 0x0c; // Response to KGetNegQoS. ** Used internally by NIF ** - - -// -// Control operations used to signal the UMTSNif -// -const TUint KContextCreate = 0x01; // Create a new context -const TUint KContextDelete = 0x02; // Delete an existing context -const TUint KContextActivate = 0x03; // Activate an existing context -const TUint KRegisterEventHandler = 0x04; // Option to enable event method registration -const TUint KContextSetEvents = 0x05; // Option to enable / disable event notification to upper layers -const TUint KContextQoSSet = 0x06; // Set QoS -const TUint KContextModifyActive = 0x07; // Modify an active context -const TUint KContextTFTModify = 0x08; // Traffic Flow Template modification -const TUint KNifSetDefaultQoS = 0x09; // Set the QoS of the primary context created at startup -const TUint KStartupPrimaryContextCreation = 0x0a; // Standalone pdp context creation. ** Used internally by Nif ** -const TUint KGetNegQoS = 0x0b; // Retrieve negotiated QoS from the TSY. ** Used internally by NIF ** - -// -// Codes to identify requested TFT-operation when issuing KContextTFTModify-command -// -typedef TInt TTFTOperationCode; -const TInt KAddFilters = 0x01; // Add packet filters(s) -const TInt KRemoveFilters = 0x02; // Remove packet filters(s) -const TInt KAddSblpParameter = 0x03; // Add sblp parameter -const TInt KRemoveSblpParameter = 0x04; // Remove sblp parameter -const TInt KDeleteTFT = 0x05; // Delete the Traffic Flow Template -#ifdef SYMBIAN_NETWORKING_UMTSR5 -const TInt KAddIMCNSubsystemflag = 0x06; // Add IM CN Subsystem flag -const TInt KRemoveIMCNSubsystemflag = 0x07; // Remove IM CN Subsystem flag -#endif - -/** - * Structure used when passing context related parameters to/from the Nif - * - * @publishedPartner - * @released - */ -class TContextParameters -{ -public: - IMPORT_C TContextParameters(); - TContextType iContextType; // UP: Primary / Secondary - TContextInfo iContextInfo; // UP&DOWN: Context Id and status - TContextConfig iContextConfig; // UP&DOWN: QoS, TFT and configuration - TTFTOperationCode iTFTOperationCode;// DOWN: Indicating requested TFT operation - TInt iReasonCode; // UP: Operation successful/failed -}; - -// -// List of Network status codes -// These are used to signal the upper layers of status changes -// -typedef TUint TNetworkEventCode; -const TUint KNetworkConnectionLost = 0x01; // No connection available -const TUint KNetworkInterfaceDown = 0x02; // Nif is going down -> Do not access it anymore - -/** - * - * @publishedPartner - * @released - */ -class TNetworkParameters -{ -public: - TNetworkEventCode iNetworkEventCode; // Event code indicating what happened - RPacketService::TStatus iNetworkStatus; // Unattached, Attached, Active, Suspended -}; - -#endif // __UMTSNIF_CONTROL__ +// Copyright (c) 2006-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 UMTSNifControlIf.h +// Header file for UMTS-NIF Control API +// + +#ifndef __UMTSNIF_CONTROL__ +#define __UMTSNIF_CONTROL__ + +#include +#include +#if MM_ETEL_API +#include "uscl_packet.h" // RPacketContext from UMTSSim +#include "uscl_qos.h" // RPacketQoS from UMTSSim +#else +#include "etelpckt.h" // +#include "etelqos.h" // +#endif + +const TUint KMaxNumberOfPacketFilterElements = 5; // From UMTS standards +const TUint KMaxNumberOfPacketFilters = 8; // From UMTS standards + +/** + * + * @publishedPartner + * @released + */ +class MNifEvent +{ +public: + virtual TInt Event(CProtocolBase *aProtocol, TUint aEvent, TDes8& aOption, TAny* aSource=0) = 0; +}; + +/** + * + * @publishedPartner + * @released + */ +class TEvent +{ +public: + MNifEvent *iEvent; +}; + + + + +// List of filters for TTFTInfo +typedef TSglQue FilterQueue; +typedef TSglQueIter FilterQueueIterator; + +/** + * Class to handle one Traffic Flow Template + * Includes 1 - 8 Filters + * + * @publishedPartner + * @released + */ +class TTFTInfo +{ +public : + + IMPORT_C explicit TTFTInfo(); + IMPORT_C ~TTFTInfo(); + IMPORT_C TInt Set(const TTFTInfo& aTFTInfo); + IMPORT_C TInt AddPacketFilter(RPacketContext::TPacketFilterV2 aFilter); + IMPORT_C TInt GetPacketFilter(RPacketContext::TPacketFilterV2& aFilter); + IMPORT_C TInt RemovePacketFilter(RPacketContext::TPacketFilterV2 aFilter); + IMPORT_C TInt NextPacketFilter(RPacketContext::TPacketFilterV2& aFilter); + IMPORT_C void SetToFirst(); + IMPORT_C TUint8 FilterCount(); + + + IMPORT_C TTFTInfo& operator=(const TTFTInfo& aTFTInfo); + // Additional Functions for the SBLP Params Handling + IMPORT_C TInt AddSblpToken ( RPacketContext::TAuthorizationToken aAuthorizationToken, + RArray aFlowIds); + IMPORT_C TInt GetSblpToken ( RPacketContext::CTFTMediaAuthorizationV3 &aSblpParams ) const; + IMPORT_C TInt RemovSblpToken (); + +#ifdef SYMBIAN_NETWORKING_UMTSR5 + IMPORT_C TInt SetIMCNSubsystemflag(TBool aIMCNSubsystemflag); + IMPORT_C TInt GetIMCNSubsystemflag(TBool &aIMCNSubsystemflag) const; +#endif + +private : + TUint8 iFilterCount; + TUint8 iLastReturnedFilter; + RPacketContext::TPacketFilterV2 iPacketFilters[KMaxNumberOfPacketFilters]; + TBool iFilterSlots[KMaxNumberOfPacketFilters]; + // Adding ETel Member for Holding the SBLP Parameters + RPacketContext::CTFTMediaAuthorizationV3 *iSblpParams; +#ifdef SYMBIAN_NETWORKING_UMTSR5 + TBool iIMCNSubsystemflag; +#endif +}; + +// +// Type of the context. Mainly used for upkeeping and consistency checking. +// +enum TContextType + { + EPrimaryContext, // Primary context + ESecondaryContext, // Secondary context + ENetworkInitiatedContext, // Initiated from network + EContextTypeUnknown // Default. Used to catch errors. This should be filled by the Nif when returning context info + }; +// +// Type: context identifier +// +typedef TInt8 TContextId; // Nif's representation + +/** + * Class contains all configuration info of a single context + * - Configuration: RPacketContext::TContextConfigGPRS + * - Requested QoS: RPacketQoS::TQoSR99_R4Requested + * - Negotiated QoS: RPacketQoS::TQoSR99_R4Negotiated + * - TFT: TTFTInfo + * + * @publishedPartner + * @released + */ +class TContextConfig +{ +public: + IMPORT_C ~TContextConfig(); + + IMPORT_C TInt Set(const TContextConfig& aConfig); + IMPORT_C void Reset(); + IMPORT_C TContextConfig(); + + // Set-methods: Used to set the corresponding member variable + IMPORT_C TInt SetTFTInfo(const TTFTInfo& aTFTInfo); + IMPORT_C TInt SetUMTSQoSReq(const RPacketQoS::TQoSR99_R4Requested& aUMTSQoSRequest); + IMPORT_C TInt SetUMTSQoSNeg(const RPacketQoS::TQoSR99_R4Negotiated& aUMTSQoS); +#ifdef SYMBIAN_NETWORKING_UMTSR5 + IMPORT_C TInt SetUMTSQoSReq(const RPacketQoS::TQoSR5Requested& aR5QoSReq); + IMPORT_C TInt SetUMTSQoSNeg(const RPacketQoS::TQoSR5Negotiated& aR5QoSNeg); +#endif + IMPORT_C TInt SetContextConfig(const RPacketContext::TContextConfigGPRS& aUMTSConfig); + IMPORT_C TInt SetPdpCompression(TUint aPdpCompression); + IMPORT_C TInt SetPdpType(RPacketContext::TProtocolType aPdpType); + IMPORT_C TInt SetAccessPointName(const RPacketContext::TGSNAddress& aAccessPointName); + IMPORT_C TInt SetPdpAddress(const RPacketContext::TProtocolAddress& aPdpAddress); + + + // Get-methods: Used to fetch the corresponding member variable + IMPORT_C TInt GetUMTSQoSReq(RPacketQoS::TQoSR99_R4Requested& aUMTSQoSRequest) const; + IMPORT_C TInt GetTFTInfo(TTFTInfo& aTFTInfo) const; + IMPORT_C TInt GetUMTSQoSNeg(RPacketQoS::TQoSR99_R4Negotiated& aUMTSQoS) const; + IMPORT_C TInt GetContextConfig(RPacketContext::TContextConfigGPRS& aUMTSConfig) const; + IMPORT_C TInt GetPdpCompression(TUint& aPdpCompression) const; + IMPORT_C TInt GetPdpType(RPacketContext::TProtocolType& aPdpType) const; + IMPORT_C TInt GetAccessPointName(RPacketContext::TGSNAddress& aAccessPointName) const; + IMPORT_C TInt GetPdpAddress(RPacketContext::TProtocolAddress& aPdpAddress) const; +#ifdef SYMBIAN_NETWORKING_UMTSR5 + IMPORT_C TInt GetUMTSQoSReq(RPacketQoS::TQoSR5Requested& aR5QoSReq) const; + IMPORT_C TInt GetUMTSQoSNeg(RPacketQoS::TQoSR5Negotiated& aR5QoSNeg) const; +#endif + +protected: + RPacketContext::TContextConfigGPRS iContextConfig; // Configuration +#ifdef SYMBIAN_NETWORKING_UMTSR5 + RPacketQoS::TQoSR5Requested iUMTSQoSReq; // Requested R5 QoS + RPacketQoS::TQoSR5Negotiated iUMTSQoS; // Negotiated R5 QoS +#else + RPacketQoS::TQoSR99_R4Requested iUMTSQoSReq; // Requested R99/R4 QoS + RPacketQoS::TQoSR99_R4Negotiated iUMTSQoS; // Negotiated R99/R4 QoS +#endif + TTFTInfo iTFTInfo; // Traffic Flow Template +}; + + +// +// Operation result codes. Removed, now using standard codes + Etel codes +// +//typedef TInt TContextReasonCode; +//const TInt KContextOk = 0x00; // OK KErrNone +//const TInt KErrContextBusy = -0x03; // Another operation pending KErrInUse +//const TInt KErrContextInvalidId = -0x05; // Context id out of range: FATAL KErrBadHandle +//const TInt KErrContextUnusedId = -0x06; // Context with given ID missing KErrNotReady +//const TInt KErrContextCreateFailed = -0x07; // Error while creating context // Not needed +//const TInt KErrMaxNumberOfContextsReached = -0x0a; // Device configuration does not support more contexts //KErrNotSupported +//const TInt KErrMemory = -0x0b; // General out of memory error //KErrNoMemory +//const TInt KErrContextStatus = -0x0c; // Context status/requested operation mismatch +//const TInt KErrContextGeneral = -0x0d; // General error //KErrGeneral + +/** + * Single Context's identification info + * + * @publishedPartner + * @released + */ +class TContextInfo +{ +public: + TContextId iContextId; // Context id in Nif + RPacketContext::TContextStatus iStatus; // The current status from Etel +}; + + +// +// Events the Nif sends to upper layers +// +const TUint KContextDeleteEvent = 0x01; // When deletion is initiated from network. +const TUint KContextActivateEvent = 0x02; // Response to KContextActivate +const TUint KContextParametersChangeEvent = 0x03; // Contexts parameters/status have changed. +const TUint KContextBlockedEvent = 0x04; // A PDP context becomes blocked +const TUint KContextUnblockedEvent = 0x05; // A PDP context becomes unblocked +const TUint KNetworkStatusEvent = 0x06; // For different network indications +const TUint KContextQoSSetEvent = 0x07; // Response to KContextQoSSet +const TUint KContextTFTModifiedEvent = 0x08; // Response to KContextTFTModify +const TUint KPrimaryContextCreated = 0x09; // Primary context at startup created +const TUint KSecondaryContextCreated = 0x0a; // Secondary context created +const TUint KContextModifyActiveEvent = 0x0b; // Response to KModifyActive +const TUint KGetNegQoSEvent = 0x0c; // Response to KGetNegQoS. ** Used internally by NIF ** + + +// +// Control operations used to signal the UMTSNif +// +const TUint KContextCreate = 0x01; // Create a new context +const TUint KContextDelete = 0x02; // Delete an existing context +const TUint KContextActivate = 0x03; // Activate an existing context +const TUint KRegisterEventHandler = 0x04; // Option to enable event method registration +const TUint KContextSetEvents = 0x05; // Option to enable / disable event notification to upper layers +const TUint KContextQoSSet = 0x06; // Set QoS +const TUint KContextModifyActive = 0x07; // Modify an active context +const TUint KContextTFTModify = 0x08; // Traffic Flow Template modification +const TUint KNifSetDefaultQoS = 0x09; // Set the QoS of the primary context created at startup +const TUint KStartupPrimaryContextCreation = 0x0a; // Standalone pdp context creation. ** Used internally by Nif ** +const TUint KGetNegQoS = 0x0b; // Retrieve negotiated QoS from the TSY. ** Used internally by NIF ** + +// +// Codes to identify requested TFT-operation when issuing KContextTFTModify-command +// +typedef TInt TTFTOperationCode; +const TInt KAddFilters = 0x01; // Add packet filters(s) +const TInt KRemoveFilters = 0x02; // Remove packet filters(s) +const TInt KAddSblpParameter = 0x03; // Add sblp parameter +const TInt KRemoveSblpParameter = 0x04; // Remove sblp parameter +const TInt KDeleteTFT = 0x05; // Delete the Traffic Flow Template +#ifdef SYMBIAN_NETWORKING_UMTSR5 +const TInt KAddIMCNSubsystemflag = 0x06; // Add IM CN Subsystem flag +const TInt KRemoveIMCNSubsystemflag = 0x07; // Remove IM CN Subsystem flag +#endif + +/** + * Structure used when passing context related parameters to/from the Nif + * + * @publishedPartner + * @released + */ +class TContextParameters +{ +public: + IMPORT_C TContextParameters(); + TContextType iContextType; // UP: Primary / Secondary + TContextInfo iContextInfo; // UP&DOWN: Context Id and status + TContextConfig iContextConfig; // UP&DOWN: QoS, TFT and configuration + TTFTOperationCode iTFTOperationCode;// DOWN: Indicating requested TFT operation + TInt iReasonCode; // UP: Operation successful/failed +}; + +// +// List of Network status codes +// These are used to signal the upper layers of status changes +// +typedef TUint TNetworkEventCode; +const TUint KNetworkConnectionLost = 0x01; // No connection available +const TUint KNetworkInterfaceDown = 0x02; // Nif is going down -> Do not access it anymore + +/** + * + * @publishedPartner + * @released + */ +class TNetworkParameters +{ +public: + TNetworkEventCode iNetworkEventCode; // Event code indicating what happened + RPacketService::TStatus iNetworkStatus; // Unattached, Attached, Active, Suspended +}; + +#endif // __UMTSNIF_CONTROL__