|
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 #include <etelqos.h> |
|
32 #include <comms-infras/es_parameterfamily.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(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType); |
|
67 inline static CSubConQosR99ParamSet* NewL(); |
|
68 |
|
69 inline CSubConQosR99ParamSet(); |
|
70 |
|
71 inline RPacketQoS::TTrafficClass GetTrafficClass() const; |
|
72 inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const; |
|
73 inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const; |
|
74 inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const; |
|
75 inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const; |
|
76 inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const; |
|
77 inline TInt GetTransferDelay() const; |
|
78 inline TInt GetMaxSduSize() const; |
|
79 inline TInt GetMaxBitrateUplink() const; |
|
80 inline TInt GetMaxBitrateDownlink() const; |
|
81 inline TInt GetGuaBitrateUplink() const; |
|
82 inline TInt GetGuaBitrateDownlink() const; |
|
83 inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass); |
|
84 inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder); |
|
85 inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu); |
|
86 inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer); |
|
87 inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio); |
|
88 inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority); |
|
89 inline void SetTransferDelay(TInt aTransferDelay); |
|
90 inline void SetMaxSduSize(TInt aMaxSduSize); |
|
91 inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink); |
|
92 inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink); |
|
93 inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink); |
|
94 inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink); |
|
95 |
|
96 protected: |
|
97 |
|
98 DATA_VTABLE |
|
99 |
|
100 protected: |
|
101 RPacketQoS::TTrafficClass iTrafficClass; // Traffic class |
|
102 RPacketQoS::TDeliveryOrder iDeliveryOrder; // Delivery order |
|
103 RPacketQoS::TErroneousSDUDelivery iDeliveryOfErroneusSdu; // Delivery of erroneous SDUs |
|
104 RPacketQoS::TBitErrorRatio iResidualBer; // Residual BER |
|
105 RPacketQoS::TSDUErrorRatio iErrorRatio; // SDU error ratio |
|
106 RPacketQoS::TTrafficHandlingPriority iPriority; // Traffic handling priority |
|
107 TInt iTransferDelay; // Transfer delay |
|
108 TInt iMaxSduSize; // Maximum SDU size |
|
109 TInt iMaxBitrateUplink; // Maximum bit rate for uplink |
|
110 TInt iMaxBitrateDownlink; // Maximum bit rate for downlink |
|
111 TInt iGuaBitrateUplink; // Guaranteed bit rate for uplink |
|
112 TInt iGuaBitrateDownlink; // Guaranteed bit rate for downlink |
|
113 }; |
|
114 |
|
115 |
|
116 |
|
117 |
|
118 #ifdef SYMBIAN_NETWORKING_UMTSR5 |
|
119 |
|
120 /** Extension QoS Parameter Set for UMTS Release 5 */ |
|
121 |
|
122 class CSubConImsExtParamSet : public CSubConExtensionParameterSet |
|
123 { |
|
124 public: |
|
125 enum |
|
126 { |
|
127 EUid = KSubCon3GPPExtParamsFactoryUid, |
|
128 EId = KSubConImsExtParamsType, |
|
129 }; |
|
130 public: |
|
131 inline static CSubConImsExtParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType); |
|
132 inline static CSubConImsExtParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType); |
|
133 inline static CSubConImsExtParamSet* NewL(); |
|
134 inline CSubConImsExtParamSet(); |
|
135 |
|
136 // New IM CN Signalling Indicator |
|
137 inline TBool GetImsSignallingIndicator() const; |
|
138 inline void SetImsSignallingIndicator(TBool aIMSSignallingIndicator); |
|
139 protected: |
|
140 DATA_VTABLE |
|
141 |
|
142 private: |
|
143 // IMSSignallingIndicator for raised priority of traffic |
|
144 TBool iImsSignallingIndicator; |
|
145 }; |
|
146 |
|
147 class CSubConQosR5ParamSet : public CSubConQosR99ParamSet |
|
148 { |
|
149 public: |
|
150 enum |
|
151 { |
|
152 EUid = KSubCon3GPPExtParamsFactoryUid, |
|
153 EId = KSubConQosR5ParamsType, |
|
154 }; |
|
155 |
|
156 public: |
|
157 inline static CSubConQosR5ParamSet* NewL(CSubConParameterFamily& aFamily,CSubConParameterFamily::TParameterSetType aType); |
|
158 inline static CSubConQosR5ParamSet* NewL(RParameterFamily& aFamily,RParameterFamily::TParameterSetType aType); |
|
159 inline static CSubConQosR5ParamSet* NewL(); |
|
160 inline CSubConQosR5ParamSet(); |
|
161 |
|
162 inline TBool GetSignallingIndicator() const; |
|
163 inline void SetSignallingIndicator(TBool aSignallingIndicator); |
|
164 inline RPacketQoS::TSourceStatisticsDescriptor GetSourceStatisticsDescriptor() const; |
|
165 inline void SetSourceStatisticsDescriptor(RPacketQoS::TSourceStatisticsDescriptor aSrcStatsDescType); |
|
166 |
|
167 protected: |
|
168 DATA_VTABLE |
|
169 |
|
170 private: |
|
171 // Source Statistics Descriptor |
|
172 RPacketQoS::TSourceStatisticsDescriptor iSrcStatsDesc; |
|
173 TBool iSignallingIndicator; |
|
174 |
|
175 }; |
|
176 |
|
177 #endif |
|
178 // SYMBIAN_NETWORKING_UMTSR5 |
|
179 |
|
180 |
|
181 |
|
182 /** Flow Identifires |
|
183 ECOM Implementation Id for SBLP Extension parameters. |
|
184 |
|
185 @publishedAll |
|
186 @released Since 9.3 |
|
187 */ |
|
188 struct TFlowId |
|
189 { |
|
190 /** Getter Function for the Components of Flow ids. */ |
|
191 inline TUint16 GetMediaComponentNumber() const; |
|
192 inline TUint16 GetIPFlowNumber() const; |
|
193 /** Setter Function For Flow Id Components. */ |
|
194 inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber); |
|
195 inline void SetIPFlowNumber(TUint16 aIPFlowNumber); |
|
196 |
|
197 private: |
|
198 TUint16 iMediaComponentNumber; |
|
199 TUint16 iIPFlowNumber; |
|
200 }; |
|
201 |
|
202 typedef RArray<TFlowId> RFlowIdentifiers; |
|
203 |
|
204 /** Extension Parameter Sets, Consise of MAT and FI(s). |
|
205 Provides Implementation of Extension parameters of the SBLP Family. |
|
206 |
|
207 @publishedAll |
|
208 @released Since 9.3 |
|
209 */ |
|
210 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet |
|
211 { |
|
212 public: |
|
213 enum |
|
214 { |
|
215 EUid = KSubCon3GPPExtParamsFactoryUid, |
|
216 EId = KSubConnSBLPR5ExtensionParamsType, |
|
217 }; |
|
218 |
|
219 |
|
220 public: |
|
221 inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType); |
|
222 inline static CSubConSBLPR5ExtensionParamSet* NewL(RParameterFamily& aFamily, RParameterFamily::TParameterSetType aType); |
|
223 inline static CSubConSBLPR5ExtensionParamSet* NewL(); |
|
224 |
|
225 /** Media Authorization Token setter and getter functions. */ |
|
226 inline const TAuthToken& GetMAT() const; |
|
227 inline void SetMAT(const TAuthToken& aAuthToken); |
|
228 |
|
229 /** Flow identifires setter and getter functions. */ |
|
230 inline TInt GetNumberOfFlowIds() const; |
|
231 inline const TFlowId& GetFlowIdAt(TInt aIndex) const; |
|
232 |
|
233 /** Adding of Flow Identifires into an array. */ |
|
234 inline void AddFlowIdL(const TFlowId& aFlowId); |
|
235 |
|
236 /** public constructors so that it can be accessed by factory. */ |
|
237 inline CSubConSBLPR5ExtensionParamSet(); |
|
238 inline ~CSubConSBLPR5ExtensionParamSet(); |
|
239 |
|
240 protected: |
|
241 DATA_VTABLE |
|
242 |
|
243 /** Single Media Authorization Token (MAT). */ |
|
244 TAuthToken iAuthToken; |
|
245 |
|
246 /** Multiple Flow Identifiers. */ |
|
247 RFlowIdentifiers iFlowIds; |
|
248 }; |
|
249 |
|
250 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS |
|
251 #include <networking/qos3GPP_subconparams_factory.h> |
|
252 #endif |
|
253 |
|
254 #include <networking/qos3gpp_subconparams.inl> |
|
255 |
|
256 #endif |
|
257 // QOS3GPP_SUBCONPARAMS_H |