diff -r abbed5a4b42a -r 8d540f55e491 networkcontrol/ipscpr/inc/ipscpr.h --- a/networkcontrol/ipscpr/inc/ipscpr.h Tue Aug 31 16:45:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,249 +0,0 @@ -/** -* Copyright (c) 2005-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: -* Header file for the IP SubConnection Provider and its basic version -* -* -*/ - - - -/** - @file ipscpr.h -*/ - -#ifndef __IPSCPR_H__ -#define __IPSCPR_H__ - -#include -#include -#include -#include "deft_scpr.h" -#include -#include -#include - - -#ifndef BASIC_IPSCPR -#include "asyncwriter.h" -#include -#include - -#ifdef SYMBIAN_NETWORKING_UMTSR5 -#include -#include -#endif -#endif - - -/** -Connection Provider Id - Protocol Family - -@internalComponent - -@released Since v9.0 -*/ -const TUint KIPConnectionProviderFactoryId = KAfInet; - -/** -ECOM Implementation Id for Connection Provider - -@internalComponent - -@released Since v9.0 -*/ -#ifdef BASIC_IPSCPR -const TInt KSubConnectionProviderImplementationUid = { 0x102752C5 }; -#else -const TInt KSubConnectionProviderImplementationUid = { 0x10204308 }; -#endif - - -class CConnectionProviderBase; -class CIpSubConnectionProviderFactory : public CSubConnectionProviderFactoryBase -/** -Factory that is used to create instances of IP Connection Providers - -@internalComponent - -@released Since v9.0 -*/ - { -public: - static CIpSubConnectionProviderFactory* NewL(TAny* aConstructionParameters); - virtual ~CIpSubConnectionProviderFactory(); - - CIpSubConnectionProviderFactory(TUint aFactoryId, CSubConnectionFactoryContainer& aParentContainer); - - // methods to be overriden for CSubConnectionProviderFactory - virtual CSubConnectionProviderBase* DoCreateProviderL(CConnectionProviderBase& aConnProvider, RSubConnection::TSubConnType aType); - }; - - -#ifndef BASIC_IPSCPR - -class CQoSMsgWriter; -class CQoSMsgReader; -class TPfqosMessage; -class CSubConGenEventParamsGranted; -class CSubConQosGenericParamSet; -class CSubConQosIPLinkR99ParamSet; -class CSubConSBLPR5ExtensionParamSet; -class CSblpParameters; -class TQoSParameters; -class TUmtsQoSParameters; - - -#ifdef SYMBIAN_NETWORKING_UMTSR5 -class TUmtsR5QoSParameters; -class TImsParameter; -class CSubConQosR5ParamSet; -class CSubConIMSExtParamSet; -#endif -// SYMBIAN_NETWORKING_UMTSR5 - - -class CIpSubConnectionProvider : public CEmptySubConnectionProvider -/** -Defines the IP Connection Provider. Class provides a mapping from ESock Subconnection -function calls to QoS.PRT messages. - -@internalComponent - -@released Since v9.0 -*/ - { -private: - enum - { - KParameterRelInvalid = 0, - KParameterRelGeneric = 1, - KParameterRel4Rel99 = 4, - KParameterRel5 = 5, - }; - -public: - // Construction - static CIpSubConnectionProvider* NewL(CIpSubConnectionProviderFactory& aFactory, CConnectionProviderBase& aConnProvider); - -protected: - // Construction - CIpSubConnectionProvider(CIpSubConnectionProviderFactory& aFactory, CConnectionProviderBase& aConnProvider); - - // Methods to be overriden be derived subconnection provider - virtual void DoDataClientJoiningL(MSubConnectionDataClient& aDataClient); - virtual void DoDataClientLeaving(MSubConnectionDataClient& aDataClient); - virtual void DoSourceAddressUpdate(MSubConnectionDataClient& aDataClient, const TSockAddr& aSource); - virtual void DoDestinationAddressUpdate(MSubConnectionDataClient& aDataClient, const TSockAddr& aDestination); - virtual void DoDataClientRouted(MSubConnectionDataClient& aDataClient, const TSockAddr& aSource, const TSockAddr& aDestination, const TDesC8& aConnectionInfo); - virtual void DoParametersAboutToBeSetL(CSubConParameterBundle& aParameterBundle); - virtual TInt DoControl(TUint aOptionLevel, TUint aOptionName, TDes8& aOption); - - virtual void DoStartL(); - virtual void DoStop(); - virtual CSubConnectionProviderBase* DoNextLayer(); - virtual CConnDataTransfer& DoDataTransferL(); - - //MConnectionDataClient - virtual TAny* FetchInterfaceInstanceL(CSubConnectionProviderBase& aProvider, const STypeId& aTid); - virtual void ConnectionGoingDown(CConnectionProviderBase& aConnProvider); - virtual void Notify(TNotify aNotifyType, CConnectionProviderBase* aConnProvider, TInt aError, const CConNotificationEvent* aConNotificationEvent); - virtual void AttachToNext(CSubConnectionProviderBase* aSubConnProvider); - - // Don't allow clients to invoke the destructor. - // (Only the CCommsFactoryBase should do this) - virtual ~CIpSubConnectionProvider(); - - void ConstructL(); - -public: - // Messages from PRT - void ProcessPRTMsg(TPfqosMessage& aMsg); - void ProcessPRTError(TPfqosMessage& aMsg, TInt aError); -#ifdef _DEBUG - void ProcessPRTError(TInt aMsgType, TInt aError); -#endif - -private: - // Messages to PRT - void SendOpenExistingL(const TInetAddr &aSrcAddr, const TInetAddr &aDstAddr, TUint32 aIapId, TUint32 aProtocol); - void SendCreateL(const TInetAddr &aSrcAddr, const TInetAddr &aDstAddr, TUint32 aIapId, TUint32 aProtocol); - void SendCloseL(); - void SendJoinL(const TInetAddr &aSrcAddr, const TInetAddr &aDstAddr, TUint32 aIapId, TUint32 aProtocol); - void SendLeaveL(const TInetAddr &aSrcAddr, const TInetAddr &aDstAddr, TUint32 aIapId, TUint32 aProtocol); - void SendSetQoSL(); - - // Internal Processing - void ProcessPRTEventL(TPfqosMessage& aMsg); - void ProcessPRTReplyL(TPfqosMessage& aMsg); - - void ConvertParametersFromESockL(CSubConParameterBundle& aParameterBundle); - void ConvertParametersFromQOSL(TPfqosMessage& aMsg, CSubConGenEventParamsGranted* aEvent); - - TInt DetermineClient(const TPfqosMessage& aMsg, MSubConnectionDataClient*& aDataClient); - void MapGenericParamsFromESockToPRTL(const CSubConQosGenericParamSet& generic) const; - void MapGenericParamsFromPRTToESockL(CSubConQosGenericParamSet& generic) const; - void MapExtensionParamsFromESockToPRTL(const CSubConQosIPLinkR99ParamSet& extension, TUmtsQoSParameters& params); - - void ResetPrtExtensions(); - - -#ifdef SYMBIAN_NETWORKING_UMTSR5 - void MapExtensionParamsFromESockToPRTL(const CSubConQosR5ParamSet& aExtension, TUmtsR5QoSParameters& aParams); - void MapExtensionParamsFromESockToPRTL(const CSubConImsExtParamSet& aExtension, TImsParameter& aParams); - - CSubConExtensionParameterSet* MapFromUmtsR5ExtensionL (const CUmtsR5QoSPolicy* aPolicy); - CSubConExtensionParameterSet* MapFromImsExtensionL (const CImsPolicy* aPolicy); -#endif -// SYMBIAN_NETWORKING_UMTSR5 - - - void MapExtensionParamsFromESockToPRTL(const CSubConSBLPR5ExtensionParamSet& extension, CSblpParameters& params) const; - - void ConvertTQoSIntoCQoSParamsL(const TQoSParameters& aParameter); - void ConvertCQoSIntoTQoSParamsL(TQoSParameters& aParameters) const; - -private: - /** Internal Socket */ - RInternalSocket iSocket; - - /** PRT message writer */ - CQoSMsgWriter* iWriter; - - /** PRT message reader */ - CQoSMsgReader* iReader; - - /** QoS channel Id */ - TInt iChannelId; - - /** Process UID */ - TUidType iUid; - - /** QoS Parameters */ - CQoSParameters* iPrtParameters; - - /** QoS Extensions */ - TQoSExtensionQueue iPrtExtensions; - - /** QoS Parameters Set */ - TBool iParametersSet; - TInt iParameterRelease; - - /**Class for doing async writes */ - CAsyncWriter* iAsyncWriter; - }; - -#endif // BASIC_IPSCPR -#endif // __IPSCPR_H__ -