diff -r 000000000000 -r 3553901f7fa8 telephonyprotocols/pdplayer/inc/PDPParamMapper.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyprotocols/pdplayer/inc/PDPParamMapper.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,125 @@ +// 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: +// PDP SubConnection Provider class definition. +// +// + +/** + @file + @internalComponent +*/ + +#ifndef SYMBIAN_PDPPARAMMAPPER_H +#define SYMBIAN_PDPPARAMMAPPER_H + +#include + +#include +#include +#include + +class MPDPParamMapper +/** Aggegation of the QoS parameter mapping methods. + +@internalTechnology +@released Since 9.4 */ + { +public: + + enum TQosParameterRelease + { + KParameterRelInvalid = 0, + KParameterRelGeneric = 1, + KParameterRel4Rel99 = 4, + KParameterRel5 = 5, + }; + /** + Scans given parameter bundle for supported parameter sets + The first one found gets converted to RPacketQoS::TQoSR5Requested. + The supported parameter sets are (in order of priority): + 1) KSubConQosR5ParamsType + 2) KSubConQosR99ParamsType + 3) Generic QoS + + @param aIn RCFParameterFamilyBundle to be converted. + @param aOut RPacketQoS::TQoSR5Requested to be populated from aIn + @exception KErrNotSupported - if CUmtsGprsSubConnProvd does not support conversion from what's + in the supplied parameter bundle. + */ + static TQosParameterRelease MapQosParamBundleToEtelL(const ESock::RCFParameterFamilyBundleC& aIn, + RPacketQoS::TQoSR5Requested& aOut); + + /** + Maps QoS parameters received from the network via Etel into a CSubConGenEventParamsGranted class + for client event notification. + + @param aNetworkQoS - A pointer to an Etel TPacketDataConfigBase class containing the + QoS to be mapped into the event. + @param aGranted - A reference to the CSubConGenEventParamsGranted object that should receive the mapped + QoS parameters. + */ + static void MapQosEtelToGrantedParamsL(TPacketDataConfigBase* aNetworkQoS, + CSubConGenEventParamsGranted& aGranted, + TQosParameterRelease aRequestedRelease); + + static TBool QoSRequested(const ESock::RCFParameterFamilyBundleC& aIn); + +protected: + //-=================================================== + // + // To Etel mappers + // + //-=================================================== + static void MapQosR99ExtensionSetToEtel(const CSubConQosR99ParamSet& aInRequested, + const CSubConQosR99ParamSet* aInAcceptable, + RPacketQoS::TQoSR99_R4Requested& aOut); + + static void MapQosR5ExtensionSetToEtel( const CSubConQosR5ParamSet& aInRequested, + const CSubConQosR5ParamSet* aInAcceptable, + RPacketQoS::TQoSR5Requested& aOut); + + static void MapQosGenericSetToEtel( const CSubConQosGenericParamSet& aInRequested, + const CSubConQosGenericParamSet* aInAcceptable, + RPacketQoS::TQoSR99_R4Requested& aOut); + /** + Given a set of generic parameters, the method derives the R99 value for the traffic class. + + @param aIn requested CSubConQosGenericParamSet to be converted + @return the value of RPacketQoS::TTrafficClass + */ + static RPacketQoS::TTrafficClass DeriveTrafficClass(const CSubConQosGenericParamSet& aIn ); + + /** + Given a set of generic parameters, the method derives the R99 value for the traffic priority. + + @param aIn requested CSubConQosGenericParamSet to be converted + @return the value of RPacketQoS::TTrafficHandlingPriority + */ + static RPacketQoS::TTrafficHandlingPriority DeriveTrafficPriority(const CSubConQosGenericParamSet& aIn, TUint aTrafficClass ); + + //-=================================================== + // + // From Etel mappers + // + //-=================================================== + static void MapQosEtelToGenericSetL(RPacketQoS::TQoSR99_R4Negotiated* aNetworkQoS, + CSubConGenEventParamsGranted& aGranted); + static void MapQosEtelToR99SetL(RPacketQoS::TQoSR99_R4Negotiated* aNetworkQoS, + CSubConGenEventParamsGranted& aGranted); + static void MapQosEtelToR5SetL(RPacketQoS::TQoSR5Negotiated* aNetworkQoS, + CSubConGenEventParamsGranted& aGranted); + + }; + +#endif //SYMBIAN_PDPPARAMMAPPER_H