networkcontrol/qosipscpr/inc/ip_subconparams.h
changeset 0 af10295192d8
child 5 1422c6cd3f0c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/networkcontrol/qosipscpr/inc/ip_subconparams.h	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,210 @@
+/**
+* Copyright (c) 2004-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 Parameters
+* 
+*
+*/
+
+
+
+/**
+ @file ip_subconparams.h
+*/
+
+#ifndef __IP_SUBCONPARAMS_H__
+#define __IP_SUBCONPARAMS_H__
+
+#include <es_sock.h>
+#include <comms-infras/metadata.h>
+#include <comms-infras/metatype.h>
+#include <etelqos.h>
+
+ 
+// NOTE: This Uid may be changed - See #ifdef at bottom of the file
+const TInt KSubConIPParamsUid = 0x10204309;
+
+const TInt KSubConQosIPLinkR99ParamsType = 1;
+
+#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
+#include <networking/qos3gpp_subconparams.h>
+
+#else
+const TInt KSubConnSBLPR5ExtensionParamsType = 2;
+
+/** Constant definitions particular to the Generic Parameters. */
+const TInt KMAuthTokenLength = 255;
+/** Typedef for the AuthToken Holder. */
+typedef TBuf8<KMAuthTokenLength> TAuthToken;
+#endif
+
+#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
+/** Provides Implementation of IP QoS Parameters
+
+@publishedAll
+@released since v9.1
+@deprecated Since Intulo. Use CSubConQosR99ParamSet from Qos3GPP_Subconparams.h instead.
+*/
+#else
+/** Provides Implementation of IP QoS Parameters
+
+@publishedAll
+@released since v9.1
+*/
+#endif
+
+class CSubConQosIPLinkR99ParamSet : public CSubConExtensionParameterSet
+{
+public:
+	inline static CSubConQosIPLinkR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
+	inline static CSubConQosIPLinkR99ParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
+	inline static CSubConQosIPLinkR99ParamSet* NewL();
+
+	inline CSubConQosIPLinkR99ParamSet();
+
+	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
+	};
+
+
+
+#ifndef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
+
+/** Flow Identifires
+ECOM Implementation Id for SBLP Extension parameters.
+
+@publishedAll
+@released since v9.1 */
+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 v9.1 */
+class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
+	{
+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;
+	};
+#endif
+
+/**
+Factory used to create instances of IP SubConnection Parameters.
+
+@internalComponent
+@released since v9.1
+*/
+class CSubConIPExtensionParamsFactory : public CBase
+	{
+public:
+	static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
+	};
+
+#include <ip_subconparams.inl>
+
+#ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
+/*
+ Umts QoS extension classes have been relocated to the UmtsGprsSCPR component.
+ So now we need to make sure that the correct class factory TUid, class name,
+ and class Id are used
+*/
+#define KSubConIPParamsUid KSubCon3GPPExtParamsFactoryUid
+#define KSubConQosIPLinkR99ParamsType KSubConQosR99ParamsType
+#define CSubConQosIPLinkR99ParamSet CSubConQosR99ParamSet
+#endif
+// SYMBIAN_NETWORKING_3GPPDEFAULTQOS
+
+#endif
+// __IP_SUBCONPARAMS_H__