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