networkcontrol/ipscpr/inc/ip_subconparams.h
branchRCL_3
changeset 58 8d540f55e491
parent 57 abbed5a4b42a
child 59 e36178c55292
child 63 425d8f4f7fa5
equal deleted inserted replaced
57:abbed5a4b42a 58:8d540f55e491
     1 /**
       
     2 * Copyright (c) 2005-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 const TInt KSubConQosIPLinkR99ParamsType = 1;
       
    38 
       
    39 
       
    40 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
    41 #include <networking/qos3gpp_subconparams.h>
       
    42 
       
    43 #else
       
    44 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
       
    45 
       
    46 
       
    47 /** Constant definitions particular to the Generic Parameters. */
       
    48 const TInt KMAuthTokenLength = 255;
       
    49 /** Typedef for the AuthToken Holder. */
       
    50 typedef TBuf8<KMAuthTokenLength> TAuthToken;
       
    51 
       
    52 #if defined(SYMBIAN_NETWORKING_UMTSR5) && !defined(SYMBIAN_NETWORKING_3GPPDEFAULTQOS)
       
    53 #pragma message("SYMBIAN_NETWORKING_UMTSR5 cannot be defined without SYMBIAN_NETWORKING_3GPPDEFAULTQOS")
       
    54 #endif
       
    55 // SYMBIAN_NETWORKING_UMTSR5 
       
    56 
       
    57 
       
    58 #endif
       
    59 
       
    60 
       
    61 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
    62 /** Provides Implementation of IP QoS Parameters
       
    63 
       
    64 @publishedAll
       
    65 @released since v9.1
       
    66 @deprecated from v9.2 onwards. Use CSubConQosR99ParamSet from Qos3GPP_Subconparams.h instead.
       
    67 */
       
    68 #else
       
    69 /** Provides Implementation of IP QoS Parameters
       
    70 
       
    71 @publishedAll
       
    72 @released since v9.1
       
    73 */#endif
       
    74 class CSubConQosIPLinkR99ParamSet : public CSubConExtensionParameterSet
       
    75 {
       
    76 public:
       
    77 	inline static CSubConQosIPLinkR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
       
    78 	inline static CSubConQosIPLinkR99ParamSet* NewL();
       
    79 
       
    80 	inline CSubConQosIPLinkR99ParamSet();
       
    81 
       
    82 	inline RPacketQoS::TTrafficClass GetTrafficClass() const;
       
    83 	inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
       
    84 	inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
       
    85 	inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
       
    86 	inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
       
    87 	inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
       
    88 	inline TInt GetTransferDelay() const;
       
    89 	inline TInt GetMaxSduSize() const;
       
    90 	inline TInt GetMaxBitrateUplink() const;
       
    91 	inline TInt GetMaxBitrateDownlink() const;
       
    92 	inline TInt GetGuaBitrateUplink() const;
       
    93 	inline TInt GetGuaBitrateDownlink() const;
       
    94 	inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
       
    95 	inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
       
    96 	inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
       
    97 	inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
       
    98 	inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
       
    99 	inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
       
   100 	inline void SetTransferDelay(TInt aTransferDelay);
       
   101 	inline void SetMaxSduSize(TInt aMaxSduSize);
       
   102 	inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
       
   103 	inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
       
   104 	inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
       
   105 	inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
       
   106 
       
   107 protected:
       
   108 
       
   109 	DATA_VTABLE
       
   110 
       
   111 protected:
       
   112 	RPacketQoS::TTrafficClass				iTrafficClass;			// Traffic class
       
   113 	RPacketQoS::TDeliveryOrder				iDeliveryOrder;			// Delivery order
       
   114 	RPacketQoS::TErroneousSDUDelivery		iDeliveryOfErroneusSdu;	// Delivery of erroneous SDUs
       
   115 	RPacketQoS::TBitErrorRatio				iResidualBer;			// Residual BER
       
   116 	RPacketQoS::TSDUErrorRatio				iErrorRatio;			// SDU error ratio
       
   117 	RPacketQoS::TTrafficHandlingPriority	iPriority;				// Traffic handling priority
       
   118 	TInt									iTransferDelay;			// Transfer delay
       
   119 	TInt									iMaxSduSize;			// Maximum SDU size
       
   120 	TInt									iMaxBitrateUplink;		// Maximum bit rate for uplink
       
   121 	TInt									iMaxBitrateDownlink;	// Maximum bit rate for downlink
       
   122 	TInt									iGuaBitrateUplink;		// Guaranteed bit rate for uplink
       
   123 	TInt									iGuaBitrateDownlink;	// Guaranteed bit rate for downlink
       
   124 	};
       
   125 
       
   126 #ifndef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
   127 
       
   128 
       
   129 /** Flow Identifires
       
   130 ECOM Implementation Id for SBLP Extension parameters.
       
   131 
       
   132 @publishedAll
       
   133 @released since v9.1 */
       
   134 struct TFlowId
       
   135 	{
       
   136 	/** Getter Function for the Components of Flow ids. */
       
   137 	inline TUint16 GetMediaComponentNumber() const;
       
   138 	inline TUint16 GetIPFlowNumber() const;
       
   139 	/**	Setter Function For Flow Id Components.	*/
       
   140 	inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
       
   141 	inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
       
   142 
       
   143 private:	
       
   144 	TUint16 iMediaComponentNumber;
       
   145 	TUint16 iIPFlowNumber;
       
   146 	};	
       
   147 
       
   148 typedef RArray<TFlowId> RFlowIdentifiers;
       
   149 
       
   150 /** Extension Parameter Sets, Consise of MAT and FI(s).
       
   151 Provides Implementation of Extension parameters of the SBLP Family.
       
   152 
       
   153 @publishedAll
       
   154 @released since v9.1 */
       
   155 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
       
   156 	{
       
   157 public:
       
   158 	inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
       
   159 	inline static CSubConSBLPR5ExtensionParamSet* NewL();
       
   160 
       
   161 	/**	Media Authorization Token setter and getter functions. */
       
   162 	inline const TAuthToken& GetMAT() const;
       
   163 	inline void SetMAT(const TAuthToken& aAuthToken);
       
   164 	
       
   165 	/** Flow identifires setter and getter functions. */
       
   166 	inline TInt GetNumberOfFlowIds() const;
       
   167 	inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
       
   168 	
       
   169 	/** Adding of Flow Identifires into an array. */
       
   170 	inline void AddFlowIdL(const TFlowId& aFlowId);
       
   171 	
       
   172 	/** public constructors so that it can be accessed by factory. */
       
   173 	inline CSubConSBLPR5ExtensionParamSet();	
       
   174 	inline ~CSubConSBLPR5ExtensionParamSet();
       
   175 	
       
   176 protected:
       
   177 	DATA_VTABLE
       
   178 
       
   179 	/** Single Media Authorization Token (MAT). */
       
   180 	TAuthToken iAuthToken;
       
   181 	
       
   182 	/** Multiple Flow Identifiers. */
       
   183 	RFlowIdentifiers	iFlowIds;
       
   184 	};
       
   185 #endif
       
   186 
       
   187 
       
   188 
       
   189 
       
   190 
       
   191 /**
       
   192 Factory used to create instances of IP SubConnection Parameters.
       
   193 
       
   194 @internalComponent
       
   195 @released since v9.1
       
   196 */
       
   197 class CSubConIPExtensionParamsFactory : public CBase
       
   198 	{
       
   199 public:
       
   200 	static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
       
   201 	};
       
   202 
       
   203 #include <ip_subconparams.inl>
       
   204 
       
   205 
       
   206 
       
   207 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
   208 /*
       
   209  Umts QoS extension classes have been relocated to the UmtsGprsSCPR component.
       
   210  So now we need to make sure that the correct class factory TUid, class name,
       
   211  and class Id are used
       
   212 */
       
   213 #define KSubConIPParamsUid KSubCon3GPPExtParamsFactoryUid
       
   214 #define KSubConQosIPLinkR99ParamsType KSubConQosR99ParamsType
       
   215 #define CSubConQosIPLinkR99ParamSet CSubConQosR99ParamSet
       
   216 #endif
       
   217 // SYMBIAN_NETWORKING_3GPPDEFAULTQOS
       
   218 
       
   219 
       
   220 #endif
       
   221 // __IP_SUBCONPARAMS_H__