1 ip_subconparams.h |
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__ |