1.1 --- a/epoc32/include/networking/qos3gpp_subconparams.h Tue Nov 24 13:55:44 2009 +0000
1.2 +++ b/epoc32/include/networking/qos3gpp_subconparams.h Tue Mar 16 16:12:26 2010 +0000
1.3 @@ -1,1 +1,259 @@
1.4 -qos3gpp_subconparams.h
1.5 +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
1.6 +// All rights reserved.
1.7 +// This component and the accompanying materials are made available
1.8 +// 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
1.9 +// which accompanies this distribution, and is available
1.10 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.11 +//
1.12 +// Initial Contributors:
1.13 +// Nokia Corporation - initial contribution.
1.14 +//
1.15 +// Contributors:
1.16 +//
1.17 +// Description:
1.18 +// Header file for the 3GPP SubConnection Extension Parameters
1.19 +//
1.20 +//
1.21 +
1.22 +
1.23 +
1.24 +/**
1.25 + @file
1.26 + @publishedAll
1.27 +*/
1.28 +
1.29 +
1.30 +#ifndef QOS3GPP_SUBCONPARAMS_H
1.31 +#define QOS3GPP_SUBCONPARAMS_H
1.32 +
1.33 +#include <es_sock.h>
1.34 +#include <comms-infras/metadata.h>
1.35 +#include <comms-infras/metatype.h>
1.36 +#include <etelqos.h>
1.37 +
1.38 +const TInt KSubCon3GPPExtParamsFactoryUid = 0x1020D460;
1.39 +const TInt KSubConQosR99ParamsType = 1;
1.40 +const TInt KSubConnSBLPR5ExtensionParamsType = 2;
1.41 +
1.42 +
1.43 +#ifdef SYMBIAN_NETWORKING_UMTSR5
1.44 +const TInt KSubConQosR5ParamsType =3;
1.45 +const TInt KSubConImsExtParamsType = 4;
1.46 +#endif
1.47 +// SYMBIAN_NETWORKING_UMTSR5
1.48 +
1.49 +/** Constant definitions particular to the Generic Parameters. */
1.50 +const TInt KMAuthTokenLength = 255;
1.51 +/** Typedef for the AuthToken Holder. */
1.52 +typedef TBuf8<KMAuthTokenLength> TAuthToken;
1.53 +
1.54 +/** Provides Implementation of IP QoS Parameters
1.55 +
1.56 +@publishedAll
1.57 +@released Since 9.3
1.58 +*/
1.59 +//SMetaDataECom must be the first in the superclasses' list
1.60 +class CSubConQosR99ParamSet : public CSubConExtensionParameterSet
1.61 +{
1.62 +public:
1.63 + enum
1.64 + {
1.65 + EUid = KSubCon3GPPExtParamsFactoryUid,
1.66 + EId = KSubConQosR99ParamsType,
1.67 + };
1.68 +public:
1.69 + inline static CSubConQosR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
1.70 + inline static CSubConQosR99ParamSet* NewL();
1.71 +
1.72 + inline CSubConQosR99ParamSet();
1.73 +
1.74 + inline RPacketQoS::TTrafficClass GetTrafficClass() const;
1.75 + inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const;
1.76 + inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const;
1.77 + inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const;
1.78 + inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const;
1.79 + inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const;
1.80 + inline TInt GetTransferDelay() const;
1.81 + inline TInt GetMaxSduSize() const;
1.82 + inline TInt GetMaxBitrateUplink() const;
1.83 + inline TInt GetMaxBitrateDownlink() const;
1.84 + inline TInt GetGuaBitrateUplink() const;
1.85 + inline TInt GetGuaBitrateDownlink() const;
1.86 + inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass);
1.87 + inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder);
1.88 + inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu);
1.89 + inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer);
1.90 + inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio);
1.91 + inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority);
1.92 + inline void SetTransferDelay(TInt aTransferDelay);
1.93 + inline void SetMaxSduSize(TInt aMaxSduSize);
1.94 + inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink);
1.95 + inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink);
1.96 + inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink);
1.97 + inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink);
1.98 +
1.99 +protected:
1.100 +
1.101 + DATA_VTABLE
1.102 +
1.103 +protected:
1.104 + RPacketQoS::TTrafficClass iTrafficClass; // Traffic class
1.105 + RPacketQoS::TDeliveryOrder iDeliveryOrder; // Delivery order
1.106 + RPacketQoS::TErroneousSDUDelivery iDeliveryOfErroneusSdu; // Delivery of erroneous SDUs
1.107 + RPacketQoS::TBitErrorRatio iResidualBer; // Residual BER
1.108 + RPacketQoS::TSDUErrorRatio iErrorRatio; // SDU error ratio
1.109 + RPacketQoS::TTrafficHandlingPriority iPriority; // Traffic handling priority
1.110 + TInt iTransferDelay; // Transfer delay
1.111 + TInt iMaxSduSize; // Maximum SDU size
1.112 + TInt iMaxBitrateUplink; // Maximum bit rate for uplink
1.113 + TInt iMaxBitrateDownlink; // Maximum bit rate for downlink
1.114 + TInt iGuaBitrateUplink; // Guaranteed bit rate for uplink
1.115 + TInt iGuaBitrateDownlink; // Guaranteed bit rate for downlink
1.116 + };
1.117 +
1.118 +
1.119 +
1.120 +
1.121 +#ifdef SYMBIAN_NETWORKING_UMTSR5
1.122 +
1.123 +/** Extension QoS Parameter Set for UMTS Release 5 */
1.124 +class CSubConImsExtParamSet : public CSubConExtensionParameterSet
1.125 + {
1.126 +public:
1.127 + enum
1.128 + {
1.129 + EUid = KSubCon3GPPExtParamsFactoryUid,
1.130 + EId = KSubConImsExtParamsType,
1.131 + };
1.132 +public:
1.133 + inline static CSubConImsExtParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
1.134 + inline static CSubConImsExtParamSet* NewL();
1.135 + inline CSubConImsExtParamSet();
1.136 +
1.137 + // New IM CN Signalling Indicator
1.138 + inline TBool GetImsSignallingIndicator() const;
1.139 + inline void SetImsSignallingIndicator(TBool aIMSSignallingIndicator);
1.140 +protected:
1.141 + DATA_VTABLE
1.142 +
1.143 +private:
1.144 + // IMSSignallingIndicator for raised priority of traffic
1.145 + TBool iImsSignallingIndicator;
1.146 + };
1.147 +
1.148 +class CSubConQosR5ParamSet : public CSubConQosR99ParamSet
1.149 + {
1.150 +public:
1.151 + enum
1.152 + {
1.153 + EUid = KSubCon3GPPExtParamsFactoryUid,
1.154 + EId = KSubConQosR5ParamsType,
1.155 + };
1.156 +
1.157 +public:
1.158 + inline static CSubConQosR5ParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType);
1.159 + inline static CSubConQosR5ParamSet* NewL();
1.160 + inline CSubConQosR5ParamSet();
1.161 +
1.162 + inline TBool GetSignallingIndicator() const;
1.163 + inline void SetSignallingIndicator(TBool aSignallingIndicator);
1.164 + inline RPacketQoS::TSourceStatisticsDescriptor GetSourceStatisticsDescriptor() const;
1.165 + inline void SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType);
1.166 +
1.167 +protected:
1.168 + DATA_VTABLE
1.169 +
1.170 +private:
1.171 + // Source Statistics Descriptor
1.172 + RPacketQoS::TSourceStatisticsDescriptor iSrcStatsDesc;
1.173 + TBool iSignallingIndicator;
1.174 +
1.175 + };
1.176 +
1.177 +#endif
1.178 +// SYMBIAN_NETWORKING_UMTSR5
1.179 +
1.180 +
1.181 +
1.182 +/** Flow Identifires
1.183 +ECOM Implementation Id for SBLP Extension parameters.
1.184 +
1.185 +@publishedAll
1.186 +@released Since 9.3
1.187 +*/
1.188 +struct TFlowId
1.189 + {
1.190 + /** Getter Function for the Components of Flow ids. */
1.191 + inline TUint16 GetMediaComponentNumber() const;
1.192 + inline TUint16 GetIPFlowNumber() const;
1.193 + /** Setter Function For Flow Id Components. */
1.194 + inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber);
1.195 + inline void SetIPFlowNumber(TUint16 aIPFlowNumber);
1.196 +
1.197 +private:
1.198 + TUint16 iMediaComponentNumber;
1.199 + TUint16 iIPFlowNumber;
1.200 + };
1.201 +
1.202 +typedef RArray<TFlowId> RFlowIdentifiers;
1.203 +
1.204 +/** Extension Parameter Sets, Consise of MAT and FI(s).
1.205 +Provides Implementation of Extension parameters of the SBLP Family.
1.206 +
1.207 +@publishedAll
1.208 +@released Since 9.3
1.209 +*/
1.210 +class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet
1.211 + {
1.212 +public:
1.213 + enum
1.214 + {
1.215 + EUid = KSubCon3GPPExtParamsFactoryUid,
1.216 + EId = KSubConnSBLPR5ExtensionParamsType,
1.217 + };
1.218 +
1.219 +
1.220 +public:
1.221 + inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType);
1.222 + inline static CSubConSBLPR5ExtensionParamSet* NewL();
1.223 +
1.224 + /** Media Authorization Token setter and getter functions. */
1.225 + inline const TAuthToken& GetMAT() const;
1.226 + inline void SetMAT(const TAuthToken& aAuthToken);
1.227 +
1.228 + /** Flow identifires setter and getter functions. */
1.229 + inline TInt GetNumberOfFlowIds() const;
1.230 + inline const TFlowId& GetFlowIdAt(TInt aIndex) const;
1.231 +
1.232 + /** Adding of Flow Identifires into an array. */
1.233 + inline void AddFlowIdL(const TFlowId& aFlowId);
1.234 +
1.235 + /** public constructors so that it can be accessed by factory. */
1.236 + inline CSubConSBLPR5ExtensionParamSet();
1.237 + inline ~CSubConSBLPR5ExtensionParamSet();
1.238 +
1.239 +protected:
1.240 + DATA_VTABLE
1.241 +
1.242 + /** Single Media Authorization Token (MAT). */
1.243 + TAuthToken iAuthToken;
1.244 +
1.245 + /** Multiple Flow Identifiers. */
1.246 + RFlowIdentifiers iFlowIds;
1.247 + };
1.248 +
1.249 +/** Factory used to create instances of IP SubConnection Parameters.
1.250 +
1.251 +@internalComponent
1.252 +@released Since 9.3
1.253 +*/
1.254 +class CSubCon3GPPExtParamsFactory : public CBase
1.255 + {
1.256 +public:
1.257 + static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters);
1.258 + };
1.259 +
1.260 +#include <networking/qos3gpp_subconparams.inl>
1.261 +
1.262 +#endif
1.263 +// QOS3GPP_SUBCONPARAMS_H