epoc32/include/networking/qos3gpp_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 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // 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
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 // Header file for the 3GPP SubConnection Extension Parameters
    15 // 
    16 //
    17 
    18 
    19 
    20 /**
    21  @file
    22  @publishedAll
    23 */
    24 
    25 
    26 #ifndef QOS3GPP_SUBCONPARAMS_H
    27 #define QOS3GPP_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 const TInt KSubCon3GPPExtParamsFactoryUid = 0x1020D460;
    35 const TInt KSubConQosR99ParamsType = 1;
    36 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
    37 
    38 
    39 #ifdef SYMBIAN_NETWORKING_UMTSR5  
    40 const TInt KSubConQosR5ParamsType =3;
    41 const TInt KSubConImsExtParamsType = 4;
    42 #endif 
    43 // SYMBIAN_NETWORKING_UMTSR5 
    44 
    45 /** Constant definitions particular to the Generic Parameters. */
    46 const TInt KMAuthTokenLength = 255;
    47 /** Typedef for the AuthToken Holder. */
    48 typedef TBuf8<KMAuthTokenLength> TAuthToken;
    49 
    50 /** Provides Implementation of IP QoS Parameters
    51 
    52 @publishedAll
    53 @released Since 9.3
    54 */
    55 //SMetaDataECom must be the first in the superclasses' list
    56 class CSubConQosR99ParamSet : public CSubConExtensionParameterSet
    57 {
    58 public:
    59 	enum 
    60 		{
    61 		EUid = KSubCon3GPPExtParamsFactoryUid,
    62 		EId = KSubConQosR99ParamsType,
    63 		};
    64 public:
    65 	inline static CSubConQosR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
    66 	inline static CSubConQosR99ParamSet* NewL();
    67 
    68 	inline CSubConQosR99ParamSet();
    69 
    70 	inline RPacketQoS::TTrafficClass GetTrafficClass() const;
    71 	inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
    72 	inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
    73 	inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
    74 	inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
    75 	inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
    76 	inline TInt GetTransferDelay() const;
    77 	inline TInt GetMaxSduSize() const;
    78 	inline TInt GetMaxBitrateUplink() const;
    79 	inline TInt GetMaxBitrateDownlink() const;
    80 	inline TInt GetGuaBitrateUplink() const;
    81 	inline TInt GetGuaBitrateDownlink() const;
    82 	inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
    83 	inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
    84 	inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
    85 	inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
    86 	inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
    87 	inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
    88 	inline void SetTransferDelay(TInt aTransferDelay);
    89 	inline void SetMaxSduSize(TInt aMaxSduSize);
    90 	inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
    91 	inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
    92 	inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
    93 	inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
    94 
    95 protected:
    96 
    97 	DATA_VTABLE
    98 
    99 protected:
   100 	RPacketQoS::TTrafficClass				iTrafficClass;			// Traffic class
   101 	RPacketQoS::TDeliveryOrder				iDeliveryOrder;			// Delivery order
   102 	RPacketQoS::TErroneousSDUDelivery		iDeliveryOfErroneusSdu;	// Delivery of erroneous SDUs
   103 	RPacketQoS::TBitErrorRatio				iResidualBer;			// Residual BER
   104 	RPacketQoS::TSDUErrorRatio				iErrorRatio;			// SDU error ratio
   105 	RPacketQoS::TTrafficHandlingPriority	iPriority;				// Traffic handling priority
   106 	TInt									iTransferDelay;			// Transfer delay
   107 	TInt									iMaxSduSize;			// Maximum SDU size
   108 	TInt									iMaxBitrateUplink;		// Maximum bit rate for uplink
   109 	TInt									iMaxBitrateDownlink;	// Maximum bit rate for downlink
   110 	TInt									iGuaBitrateUplink;		// Guaranteed bit rate for uplink
   111 	TInt									iGuaBitrateDownlink;	// Guaranteed bit rate for downlink
   112 	};
   113 
   114 
   115 
   116 
   117 #ifdef SYMBIAN_NETWORKING_UMTSR5  
   118 
   119 /** Extension QoS Parameter Set for UMTS Release 5 */
   120 class CSubConImsExtParamSet : public CSubConExtensionParameterSet
   121 	{
   122 public:
   123 	enum 
   124 		{
   125 		EUid = KSubCon3GPPExtParamsFactoryUid,
   126 		EId = KSubConImsExtParamsType,
   127 		};
   128 public:
   129 	inline static CSubConImsExtParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
   130 	inline static CSubConImsExtParamSet* NewL();
   131 	inline CSubConImsExtParamSet();
   132 	
   133 	// New IM CN Signalling Indicator   
   134 	inline TBool GetImsSignallingIndicator() const;
   135 	inline void SetImsSignallingIndicator(TBool aIMSSignallingIndicator);
   136 protected:
   137 	DATA_VTABLE
   138 	
   139 private:	
   140 	// IMSSignallingIndicator for raised priority of traffic 
   141 	TBool iImsSignallingIndicator;
   142 	};
   143 
   144 class CSubConQosR5ParamSet : public CSubConQosR99ParamSet
   145 	{
   146 public:
   147 	enum 
   148 		{
   149 		EUid = KSubCon3GPPExtParamsFactoryUid,
   150 		EId = KSubConQosR5ParamsType,
   151 		};
   152 	
   153 public:
   154 	inline static CSubConQosR5ParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
   155 	inline static CSubConQosR5ParamSet* NewL();
   156 	inline CSubConQosR5ParamSet();
   157 
   158 	inline TBool GetSignallingIndicator() const;
   159 	inline void SetSignallingIndicator(TBool aSignallingIndicator);
   160 	inline RPacketQoS::TSourceStatisticsDescriptor GetSourceStatisticsDescriptor() const;
   161 	inline void SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType);
   162 	
   163 protected:
   164 	DATA_VTABLE
   165 	
   166 private:
   167 	// Source Statistics Descriptor 
   168 	RPacketQoS::TSourceStatisticsDescriptor iSrcStatsDesc;
   169 	TBool iSignallingIndicator;
   170 		
   171 	};
   172 
   173 #endif 
   174 // SYMBIAN_NETWORKING_UMTSR5 
   175 
   176 
   177 
   178 /** Flow Identifires
   179 ECOM Implementation Id for SBLP Extension parameters.
   180 
   181 @publishedAll
   182 @released Since 9.3
   183 */
   184 struct TFlowId
   185 	{
   186 	/** Getter Function for the Components of Flow ids. */
   187 	inline TUint16 GetMediaComponentNumber() const;
   188 	inline TUint16 GetIPFlowNumber() const;
   189 	/**	Setter Function For Flow Id Components.	*/
   190 	inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
   191 	inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
   192 
   193 private:	
   194 	TUint16 iMediaComponentNumber;
   195 	TUint16 iIPFlowNumber;
   196 	};	
   197 
   198 typedef RArray<TFlowId> RFlowIdentifiers;
   199 
   200 /** Extension Parameter Sets, Consise of MAT and FI(s).
   201 Provides Implementation of Extension parameters of the SBLP Family.
   202 
   203 @publishedAll
   204 @released Since 9.3
   205 */
   206 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
   207 	{
   208 public:
   209 	enum 
   210 		{
   211 		EUid = KSubCon3GPPExtParamsFactoryUid,
   212 		EId = KSubConnSBLPR5ExtensionParamsType,
   213 		};
   214 	
   215 
   216 public:
   217 	inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
   218 	inline static CSubConSBLPR5ExtensionParamSet* NewL();
   219 
   220 	/**	Media Authorization Token setter and getter functions. */
   221 	inline const TAuthToken& GetMAT() const;
   222 	inline void SetMAT(const TAuthToken& aAuthToken);
   223 	
   224 	/** Flow identifires setter and getter functions. */
   225 	inline TInt GetNumberOfFlowIds() const;
   226 	inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
   227 	
   228 	/** Adding of Flow Identifires into an array. */
   229 	inline void AddFlowIdL(const TFlowId& aFlowId);
   230 	
   231 	/** public constructors so that it can be accessed by factory. */
   232 	inline CSubConSBLPR5ExtensionParamSet();	
   233 	inline ~CSubConSBLPR5ExtensionParamSet();
   234 	
   235 protected:
   236 	DATA_VTABLE
   237 
   238 	/** Single Media Authorization Token (MAT). */
   239 	TAuthToken iAuthToken;
   240 	
   241 	/** Multiple Flow Identifiers. */
   242 	RFlowIdentifiers	iFlowIds;
   243 	};
   244 
   245 /** Factory used to create instances of IP SubConnection Parameters.
   246 
   247 @internalComponent
   248 @released Since 9.3
   249 */
   250 class CSubCon3GPPExtParamsFactory : public CBase
   251 	{
   252 public:
   253 	static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
   254 	};
   255 
   256 #include <networking/qos3gpp_subconparams.inl>
   257 
   258 #endif
   259 // QOS3GPP_SUBCONPARAMS_H