telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h
changeset 0 3553901f7fa8
child 3 962e6306d9d2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/telephonyprotocols/qos3gppcpr/inc/Qos3GPP_subconparams.h	Tue Feb 02 01:41:59 2010 +0200
@@ -0,0 +1,257 @@
+// 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 3GPP SubConnection Extension Parameters
+// 
+//
+
+/**
+ @file
+ @publishedAll
+ @released
+*/
+
+
+#ifndef QOS3GPP_SUBCONPARAMS_H
+#define QOS3GPP_SUBCONPARAMS_H
+
+#include <es_sock.h>
+#include <comms-infras/metadata.h>
+#include <comms-infras/metatype.h>
+#include <etelqos.h>
+#include <comms-infras/es_parameterfamily.h>
+
+const TInt KSubCon3GPPExtParamsFactoryUid = 0x1020D460;
+const TInt KSubConQosR99ParamsType = 1;
+const TInt KSubConnSBLPR5ExtensionParamsType = 2;
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5  
+const TInt KSubConQosR5ParamsType =3;
+const TInt KSubConImsExtParamsType = 4;
+#endif 
+// SYMBIAN_NETWORKING_UMTSR5 
+
+/** Constant definitions particular to the Generic Parameters. */
+const TInt KMAuthTokenLength = 255;
+/** Typedef for the AuthToken Holder. */
+typedef TBuf8<KMAuthTokenLength> TAuthToken;
+
+/** Provides Implementation of IP QoS Parameters
+
+@publishedAll
+@released Since 9.3
+*/
+//SMetaDataECom must be the first in the superclasses' list
+class CSubConQosR99ParamSet : public CSubConExtensionParameterSet
+{
+public:
+	enum 
+		{
+		EUid = KSubCon3GPPExtParamsFactoryUid,
+		EId = KSubConQosR99ParamsType,
+		};
+public:
+	inline static CSubConQosR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
+	inline static CSubConQosR99ParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
+	inline static CSubConQosR99ParamSet* NewL();
+
+	inline CSubConQosR99ParamSet();
+
+	inline RPacketQoS::TTrafficClass GetTrafficClass() const;
+	inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
+	inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
+	inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
+	inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
+	inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
+	inline TInt GetTransferDelay() const;
+	inline TInt GetMaxSduSize() const;
+	inline TInt GetMaxBitrateUplink() const;
+	inline TInt GetMaxBitrateDownlink() const;
+	inline TInt GetGuaBitrateUplink() const;
+	inline TInt GetGuaBitrateDownlink() const;
+	inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
+	inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
+	inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
+	inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
+	inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
+	inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
+	inline void SetTransferDelay(TInt aTransferDelay);
+	inline void SetMaxSduSize(TInt aMaxSduSize);
+	inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
+	inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
+	inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
+	inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
+
+protected:
+
+	DATA_VTABLE
+
+protected:
+	RPacketQoS::TTrafficClass				iTrafficClass;			// Traffic class
+	RPacketQoS::TDeliveryOrder				iDeliveryOrder;			// Delivery order
+	RPacketQoS::TErroneousSDUDelivery		iDeliveryOfErroneusSdu;	// Delivery of erroneous SDUs
+	RPacketQoS::TBitErrorRatio				iResidualBer;			// Residual BER
+	RPacketQoS::TSDUErrorRatio				iErrorRatio;			// SDU error ratio
+	RPacketQoS::TTrafficHandlingPriority	iPriority;				// Traffic handling priority
+	TInt									iTransferDelay;			// Transfer delay
+	TInt									iMaxSduSize;			// Maximum SDU size
+	TInt									iMaxBitrateUplink;		// Maximum bit rate for uplink
+	TInt									iMaxBitrateDownlink;	// Maximum bit rate for downlink
+	TInt									iGuaBitrateUplink;		// Guaranteed bit rate for uplink
+	TInt									iGuaBitrateDownlink;	// Guaranteed bit rate for downlink
+	};
+
+
+
+
+#ifdef SYMBIAN_NETWORKING_UMTSR5  
+
+/** Extension QoS Parameter Set for UMTS Release 5 */
+
+class CSubConImsExtParamSet : public CSubConExtensionParameterSet
+	{
+public:
+	enum 
+		{
+		EUid = KSubCon3GPPExtParamsFactoryUid,
+		EId = KSubConImsExtParamsType,
+		};
+public:
+	inline static CSubConImsExtParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
+	inline static CSubConImsExtParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType);
+	inline static CSubConImsExtParamSet* NewL();
+	inline CSubConImsExtParamSet();
+	
+	// New IM CN Signalling Indicator   
+	inline TBool GetImsSignallingIndicator() const;
+	inline void SetImsSignallingIndicator(TBool aIMSSignallingIndicator);
+protected:
+	DATA_VTABLE
+	
+private:	
+	// IMSSignallingIndicator for raised priority of traffic 
+	TBool iImsSignallingIndicator;
+	};
+
+class CSubConQosR5ParamSet : public CSubConQosR99ParamSet
+	{
+public:
+	enum 
+		{
+		EUid = KSubCon3GPPExtParamsFactoryUid,
+		EId = KSubConQosR5ParamsType,
+		};
+	
+public:
+	inline static CSubConQosR5ParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
+	inline static CSubConQosR5ParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType);
+	inline static CSubConQosR5ParamSet* NewL();
+	inline CSubConQosR5ParamSet();
+
+	inline TBool GetSignallingIndicator() const;
+	inline void SetSignallingIndicator(TBool aSignallingIndicator);
+	inline RPacketQoS::TSourceStatisticsDescriptor GetSourceStatisticsDescriptor() const;
+	inline void SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType);
+	
+protected:
+	DATA_VTABLE
+	
+private:
+	// Source Statistics Descriptor 
+	RPacketQoS::TSourceStatisticsDescriptor iSrcStatsDesc;
+	TBool iSignallingIndicator;
+		
+	};
+
+#endif 
+// SYMBIAN_NETWORKING_UMTSR5 
+
+
+
+/** Flow Identifires
+ECOM Implementation Id for SBLP Extension parameters.
+
+@publishedAll
+@released Since 9.3
+*/
+struct TFlowId
+	{
+	/** Getter Function for the Components of Flow ids. */
+	inline TUint16 GetMediaComponentNumber() const;
+	inline TUint16 GetIPFlowNumber() const;
+	/**	Setter Function For Flow Id Components.	*/
+	inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
+	inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
+
+private:	
+	TUint16 iMediaComponentNumber;
+	TUint16 iIPFlowNumber;
+	};	
+
+typedef RArray<TFlowId> RFlowIdentifiers;
+
+/** Extension Parameter Sets, Consise of MAT and FI(s).
+Provides Implementation of Extension parameters of the SBLP Family.
+
+@publishedAll
+@released Since 9.3
+*/
+class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
+	{
+public:
+	enum 
+		{
+		EUid = KSubCon3GPPExtParamsFactoryUid,
+		EId = KSubConnSBLPR5ExtensionParamsType,
+		};
+	
+
+public:
+	inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
+	inline static CSubConSBLPR5ExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
+	inline static CSubConSBLPR5ExtensionParamSet* NewL();
+
+	/**	Media Authorization Token setter and getter functions. */
+	inline const TAuthToken& GetMAT() const;
+	inline void SetMAT(const TAuthToken& aAuthToken);
+	
+	/** Flow identifires setter and getter functions. */
+	inline TInt GetNumberOfFlowIds() const;
+	inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
+	
+	/** Adding of Flow Identifires into an array. */
+	inline void AddFlowIdL(const TFlowId& aFlowId);
+	
+	/** public constructors so that it can be accessed by factory. */
+	inline CSubConSBLPR5ExtensionParamSet();	
+	inline ~CSubConSBLPR5ExtensionParamSet();
+	
+protected:
+	DATA_VTABLE
+
+	/** Single Media Authorization Token (MAT). */
+	TAuthToken iAuthToken;
+	
+	/** Multiple Flow Identifiers. */
+	RFlowIdentifiers	iFlowIds;
+	};
+
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <networking/qos3GPP_subconparams_factory.h>
+#endif
+
+#include <networking/qos3gpp_subconparams.inl>
+
+#endif
+// QOS3GPP_SUBCONPARAMS_H