epoc32/include/ip_subconparams.h
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
     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__