networkcontrol/qosipscpr/inc/ip_subconparams.h
changeset 0 af10295192d8
child 5 1422c6cd3f0c
equal deleted inserted replaced
-1:000000000000 0:af10295192d8
       
     1 /**
       
     2 * Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 * Header file for the IP SubConnection Parameters
       
    16 * 
       
    17 *
       
    18 */
       
    19 
       
    20 
       
    21 
       
    22 /**
       
    23  @file ip_subconparams.h
       
    24 */
       
    25 
       
    26 #ifndef __IP_SUBCONPARAMS_H__
       
    27 #define __IP_SUBCONPARAMS_H__
       
    28 
       
    29 #include <es_sock.h>
       
    30 #include <comms-infras/metadata.h>
       
    31 #include <comms-infras/metatype.h>
       
    32 #include <etelqos.h>
       
    33 
       
    34  
       
    35 // NOTE: This Uid may be changed - See #ifdef at bottom of the file
       
    36 const TInt KSubConIPParamsUid = 0x10204309;
       
    37 
       
    38 const TInt KSubConQosIPLinkR99ParamsType = 1;
       
    39 
       
    40 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
    41 #include <networking/qos3gpp_subconparams.h>
       
    42 
       
    43 #else
       
    44 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
       
    45 
       
    46 /** Constant definitions particular to the Generic Parameters. */
       
    47 const TInt KMAuthTokenLength = 255;
       
    48 /** Typedef for the AuthToken Holder. */
       
    49 typedef TBuf8<KMAuthTokenLength> TAuthToken;
       
    50 #endif
       
    51 
       
    52 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
    53 /** Provides Implementation of IP QoS Parameters
       
    54 
       
    55 @publishedAll
       
    56 @released since v9.1
       
    57 @deprecated Since Intulo. Use CSubConQosR99ParamSet from Qos3GPP_Subconparams.h instead.
       
    58 */
       
    59 #else
       
    60 /** Provides Implementation of IP QoS Parameters
       
    61 
       
    62 @publishedAll
       
    63 @released since v9.1
       
    64 */
       
    65 #endif
       
    66 
       
    67 class CSubConQosIPLinkR99ParamSet : public CSubConExtensionParameterSet
       
    68 {
       
    69 public:
       
    70 	inline static CSubConQosIPLinkR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
       
    71 	inline static CSubConQosIPLinkR99ParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
       
    72 	inline static CSubConQosIPLinkR99ParamSet* NewL();
       
    73 
       
    74 	inline CSubConQosIPLinkR99ParamSet();
       
    75 
       
    76 	inline RPacketQoS::TTrafficClass GetTrafficClass() const;
       
    77 	inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
       
    78 	inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
       
    79 	inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
       
    80 	inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
       
    81 	inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
       
    82 	inline TInt GetTransferDelay() const;
       
    83 	inline TInt GetMaxSduSize() const;
       
    84 	inline TInt GetMaxBitrateUplink() const;
       
    85 	inline TInt GetMaxBitrateDownlink() const;
       
    86 	inline TInt GetGuaBitrateUplink() const;
       
    87 	inline TInt GetGuaBitrateDownlink() const;
       
    88 	inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
       
    89 	inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
       
    90 	inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
       
    91 	inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
       
    92 	inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
       
    93 	inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
       
    94 	inline void SetTransferDelay(TInt aTransferDelay);
       
    95 	inline void SetMaxSduSize(TInt aMaxSduSize);
       
    96 	inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
       
    97 	inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
       
    98 	inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
       
    99 	inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
       
   100 
       
   101 protected:
       
   102 
       
   103 	DATA_VTABLE
       
   104 
       
   105 protected:
       
   106 	RPacketQoS::TTrafficClass				iTrafficClass;			// Traffic class
       
   107 	RPacketQoS::TDeliveryOrder				iDeliveryOrder;			// Delivery order
       
   108 	RPacketQoS::TErroneousSDUDelivery		iDeliveryOfErroneusSdu;	// Delivery of erroneous SDUs
       
   109 	RPacketQoS::TBitErrorRatio				iResidualBer;			// Residual BER
       
   110 	RPacketQoS::TSDUErrorRatio				iErrorRatio;			// SDU error ratio
       
   111 	RPacketQoS::TTrafficHandlingPriority	iPriority;				// Traffic handling priority
       
   112 	TInt									iTransferDelay;			// Transfer delay
       
   113 	TInt									iMaxSduSize;			// Maximum SDU size
       
   114 	TInt									iMaxBitrateUplink;		// Maximum bit rate for uplink
       
   115 	TInt									iMaxBitrateDownlink;	// Maximum bit rate for downlink
       
   116 	TInt									iGuaBitrateUplink;		// Guaranteed bit rate for uplink
       
   117 	TInt									iGuaBitrateDownlink;	// Guaranteed bit rate for downlink
       
   118 	};
       
   119 
       
   120 
       
   121 
       
   122 #ifndef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
   123 
       
   124 /** Flow Identifires
       
   125 ECOM Implementation Id for SBLP Extension parameters.
       
   126 
       
   127 @publishedAll
       
   128 @released since v9.1 */
       
   129 struct TFlowId
       
   130 	{
       
   131 	/** Getter Function for the Components of Flow ids. */
       
   132 	inline TUint16 GetMediaComponentNumber() const;
       
   133 	inline TUint16 GetIPFlowNumber() const;
       
   134 	/**	Setter Function For Flow Id Components.	*/
       
   135 	inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
       
   136 	inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
       
   137 
       
   138 private:	
       
   139 	TUint16 iMediaComponentNumber;
       
   140 	TUint16 iIPFlowNumber;
       
   141 	};	
       
   142 
       
   143 typedef RArray<TFlowId> RFlowIdentifiers;
       
   144 
       
   145 /** Extension Parameter Sets, Consise of MAT and FI(s).
       
   146 Provides Implementation of Extension parameters of the SBLP Family.
       
   147 
       
   148 @publishedAll
       
   149 @released since v9.1 */
       
   150 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
       
   151 	{
       
   152 public:
       
   153 	inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
       
   154 	inline static CSubConSBLPR5ExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
       
   155 	inline static CSubConSBLPR5ExtensionParamSet* NewL();
       
   156 
       
   157 	/**	Media Authorization Token setter and getter functions. */
       
   158 	inline const TAuthToken& GetMAT() const;
       
   159 	inline void SetMAT(const TAuthToken& aAuthToken);
       
   160 	
       
   161 	/** Flow identifires setter and getter functions. */
       
   162 	inline TInt GetNumberOfFlowIds() const;
       
   163 	inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
       
   164 	
       
   165 	/** Adding of Flow Identifires into an array. */
       
   166 	inline void AddFlowIdL(const TFlowId& aFlowId);
       
   167 	
       
   168 	/** public constructors so that it can be accessed by factory. */
       
   169 	inline CSubConSBLPR5ExtensionParamSet();	
       
   170 	inline ~CSubConSBLPR5ExtensionParamSet();
       
   171 	
       
   172 protected:
       
   173 	DATA_VTABLE
       
   174 
       
   175 	/** Single Media Authorization Token (MAT). */
       
   176 	TAuthToken iAuthToken;
       
   177 	
       
   178 	/** Multiple Flow Identifiers. */
       
   179 	RFlowIdentifiers	iFlowIds;
       
   180 	};
       
   181 #endif
       
   182 
       
   183 /**
       
   184 Factory used to create instances of IP SubConnection Parameters.
       
   185 
       
   186 @internalComponent
       
   187 @released since v9.1
       
   188 */
       
   189 class CSubConIPExtensionParamsFactory : public CBase
       
   190 	{
       
   191 public:
       
   192 	static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
       
   193 	};
       
   194 
       
   195 #include <ip_subconparams.inl>
       
   196 
       
   197 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
   198 /*
       
   199  Umts QoS extension classes have been relocated to the UmtsGprsSCPR component.
       
   200  So now we need to make sure that the correct class factory TUid, class name,
       
   201  and class Id are used
       
   202 */
       
   203 #define KSubConIPParamsUid KSubCon3GPPExtParamsFactoryUid
       
   204 #define KSubConQosIPLinkR99ParamsType KSubConQosR99ParamsType
       
   205 #define CSubConQosIPLinkR99ParamSet CSubConQosR99ParamSet
       
   206 #endif
       
   207 // SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
   208 
       
   209 #endif
       
   210 // __IP_SUBCONPARAMS_H__