epoc32/include/networking/qos3gpp_subconparams.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:33:34 +0100
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
permissions -rw-r--r--
Current Symbian^3 public API header files (from PDK 3.0.h)
This is the epoc32/include tree with the "platform" subtrees removed, and
all but a selected few mbg and rsg files removed.
     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 "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.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  @file
    20  @publishedAll
    21  @released
    22 */
    23 
    24 
    25 #ifndef QOS3GPP_SUBCONPARAMS_H
    26 #define QOS3GPP_SUBCONPARAMS_H
    27 
    28 #include <es_sock.h>
    29 #include <comms-infras/metadata.h>
    30 #include <comms-infras/metatype.h>
    31 
    32 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
    33 #include <etelqos.h>
    34 #else
    35 #include <eteldefaultqos.h>
    36 #endif
    37 #include <comms-infras/es_parameterfamily.h>
    38 
    39 const TInt KSubCon3GPPExtParamsFactoryUid = 0x1020D460;
    40 const TInt KSubConQosR99ParamsType = 1;
    41 const TInt KSubConnSBLPR5ExtensionParamsType = 2;
    42 
    43 
    44 #ifdef SYMBIAN_NETWORKING_UMTSR5  
    45 const TInt KSubConQosR5ParamsType =3;
    46 const TInt KSubConImsExtParamsType = 4;
    47 #endif 
    48 // SYMBIAN_NETWORKING_UMTSR5 
    49 
    50 /** Constant definitions particular to the Generic Parameters. */
    51 const TInt KMAuthTokenLength = 255;
    52 /** Typedef for the AuthToken Holder. */
    53 typedef TBuf8<KMAuthTokenLength> TAuthToken;
    54 
    55 /** Provides Implementation of IP QoS Parameters
    56 
    57 @publishedAll
    58 @released Since 9.3
    59 */
    60 //SMetaDataECom must be the first in the superclasses' list
    61 class CSubConQosR99ParamSet : public CSubConExtensionParameterSet
    62 {
    63 public:
    64 	enum 
    65 		{
    66 		EUid = KSubCon3GPPExtParamsFactoryUid,
    67 		EId = KSubConQosR99ParamsType,
    68 		};
    69 public:
    70 	inline static CSubConQosR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
    71 	inline static CSubConQosR99ParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
    72 	inline static CSubConQosR99ParamSet* NewL();
    73 
    74 	inline CSubConQosR99ParamSet();
    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 
   123 #ifdef SYMBIAN_NETWORKING_UMTSR5  
   124 
   125 /** Extension QoS Parameter Set for UMTS Release 5 */
   126 
   127 class CSubConImsExtParamSet : public CSubConExtensionParameterSet
   128 	{
   129 public:
   130 	enum 
   131 		{
   132 		EUid = KSubCon3GPPExtParamsFactoryUid,
   133 		EId = KSubConImsExtParamsType,
   134 		};
   135 public:
   136 	inline static CSubConImsExtParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
   137 	inline static CSubConImsExtParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType);
   138 	inline static CSubConImsExtParamSet* NewL();
   139 	inline CSubConImsExtParamSet();
   140 	
   141 	// New IM CN Signalling Indicator   
   142 	inline TBool GetImsSignallingIndicator() const;
   143 	inline void SetImsSignallingIndicator(TBool aIMSSignallingIndicator);
   144 protected:
   145 	DATA_VTABLE
   146 	
   147 private:	
   148 	// IMSSignallingIndicator for raised priority of traffic 
   149 	TBool iImsSignallingIndicator;
   150 	};
   151 
   152 class CSubConQosR5ParamSet : public CSubConQosR99ParamSet
   153 	{
   154 public:
   155 	enum 
   156 		{
   157 		EUid = KSubCon3GPPExtParamsFactoryUid,
   158 		EId = KSubConQosR5ParamsType,
   159 		};
   160 	
   161 public:
   162 	inline static CSubConQosR5ParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
   163 	inline static CSubConQosR5ParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType);
   164 	inline static CSubConQosR5ParamSet* NewL();
   165 	inline CSubConQosR5ParamSet();
   166 
   167 	inline TBool GetSignallingIndicator() const;
   168 	inline void SetSignallingIndicator(TBool aSignallingIndicator);
   169 	inline RPacketQoS::TSourceStatisticsDescriptor GetSourceStatisticsDescriptor() const;
   170 	inline void SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType);
   171 	
   172 protected:
   173 	DATA_VTABLE
   174 	
   175 private:
   176 	// Source Statistics Descriptor 
   177 	RPacketQoS::TSourceStatisticsDescriptor iSrcStatsDesc;
   178 	TBool iSignallingIndicator;
   179 		
   180 	};
   181 
   182 #endif 
   183 // SYMBIAN_NETWORKING_UMTSR5 
   184 
   185 
   186 
   187 /** Flow Identifires
   188 ECOM Implementation Id for SBLP Extension parameters.
   189 
   190 @publishedAll
   191 @released Since 9.3
   192 */
   193 struct TFlowId
   194 	{
   195 	/** Getter Function for the Components of Flow ids. */
   196 	inline TUint16 GetMediaComponentNumber() const;
   197 	inline TUint16 GetIPFlowNumber() const;
   198 	/**	Setter Function For Flow Id Components.	*/
   199 	inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
   200 	inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
   201 
   202 private:	
   203 	TUint16 iMediaComponentNumber;
   204 	TUint16 iIPFlowNumber;
   205 	};	
   206 
   207 typedef RArray<TFlowId> RFlowIdentifiers;
   208 
   209 /** Extension Parameter Sets, Consise of MAT and FI(s).
   210 Provides Implementation of Extension parameters of the SBLP Family.
   211 
   212 @publishedAll
   213 @released Since 9.3
   214 */
   215 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
   216 	{
   217 public:
   218 	enum 
   219 		{
   220 		EUid = KSubCon3GPPExtParamsFactoryUid,
   221 		EId = KSubConnSBLPR5ExtensionParamsType,
   222 		};
   223 	
   224 
   225 public:
   226 	inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
   227 	inline static CSubConSBLPR5ExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType);
   228 	inline static CSubConSBLPR5ExtensionParamSet* NewL();
   229 
   230 	/**	Media Authorization Token setter and getter functions. */
   231 	inline const TAuthToken& GetMAT() const;
   232 	inline void SetMAT(const TAuthToken& aAuthToken);
   233 	
   234 	/** Flow identifires setter and getter functions. */
   235 	inline TInt GetNumberOfFlowIds() const;
   236 	inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
   237 	
   238 	/** Adding of Flow Identifires into an array. */
   239 	inline void AddFlowIdL(const TFlowId& aFlowId);
   240 	
   241 	/** public constructors so that it can be accessed by factory. */
   242 	inline CSubConSBLPR5ExtensionParamSet();	
   243 	inline ~CSubConSBLPR5ExtensionParamSet();
   244 	
   245 protected:
   246 	DATA_VTABLE
   247 
   248 	/** Single Media Authorization Token (MAT). */
   249 	TAuthToken iAuthToken;
   250 	
   251 	/** Multiple Flow Identifiers. */
   252 	RFlowIdentifiers	iFlowIds;
   253 	};
   254 
   255 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
   256 #include <networking/qos3GPP_subconparams_factory.h>
   257 #endif
   258 
   259 #include <networking/qos3gpp_subconparams.inl>
   260 
   261 #endif
   262 // QOS3GPP_SUBCONPARAMS_H