telephonyprotocols/pdplayer/inc/PDPParamMapper.h
changeset 0 3553901f7fa8
child 3 962e6306d9d2
--- /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 <comms-infras/ss_parameterfamilybundle.h>
+
+#include <networking/qos3gpp_subconparams.h>
+#include <cs_subconparams.h>
+#include <cs_subconevents.h>
+
+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