|
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 "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.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 @file ip_subconparams.h |
|
24 */ |
|
25 |
|
26 #ifndef __IP_SUBCONPARAMS_H__ |
|
27 #define __IP_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 |
|
35 // NOTE: This Uid may be changed - See #ifdef at bottom of the file |
|
36 const TInt KSubConIPParamsUid = 0x10204309; |
|
37 const TInt KSubConQosIPLinkR99ParamsType = 1; |
|
38 |
|
39 |
|
40 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS |
|
41 #include <networking/qos3gpp_subconparams.h> |
|
42 |
|
43 #else |
|
44 const TInt KSubConnSBLPR5ExtensionParamsType = 2; |
|
45 |
|
46 |
|
47 /** Constant definitions particular to the Generic Parameters. */ |
|
48 const TInt KMAuthTokenLength = 255; |
|
49 /** Typedef for the AuthToken Holder. */ |
|
50 typedef TBuf8<KMAuthTokenLength> TAuthToken; |
|
51 |
|
52 #if defined(SYMBIAN_NETWORKING_UMTSR5) && !defined(SYMBIAN_NETWORKING_3GPPDEFAULTQOS) |
|
53 #pragma message("SYMBIAN_NETWORKING_UMTSR5 cannot be defined without SYMBIAN_NETWORKING_3GPPDEFAULTQOS") |
|
54 #endif |
|
55 // SYMBIAN_NETWORKING_UMTSR5 |
|
56 |
|
57 |
|
58 #endif |
|
59 |
|
60 |
|
61 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS |
|
62 /** Provides Implementation of IP QoS Parameters |
|
63 |
|
64 @publishedAll |
|
65 @released since v9.1 |
|
66 @deprecated from v9.2 onwards. Use CSubConQosR99ParamSet from Qos3GPP_Subconparams.h instead. |
|
67 */ |
|
68 #else |
|
69 /** Provides Implementation of IP QoS Parameters |
|
70 |
|
71 @publishedAll |
|
72 @released since v9.1 |
|
73 */#endif |
|
74 class CSubConQosIPLinkR99ParamSet : public CSubConExtensionParameterSet |
|
75 { |
|
76 public: |
|
77 inline static CSubConQosIPLinkR99ParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType); |
|
78 inline static CSubConQosIPLinkR99ParamSet* NewL(); |
|
79 |
|
80 inline CSubConQosIPLinkR99ParamSet(); |
|
81 |
|
82 inline RPacketQoS::TTrafficClass GetTrafficClass() const; |
|
83 inline RPacketQoS::TDeliveryOrder GetDeliveryOrder() const; |
|
84 inline RPacketQoS::TErroneousSDUDelivery GetErroneousSDUDelivery() const; |
|
85 inline RPacketQoS::TBitErrorRatio GetResidualBitErrorRatio() const; |
|
86 inline RPacketQoS::TSDUErrorRatio GetSDUErrorRatio() const; |
|
87 inline RPacketQoS::TTrafficHandlingPriority GetTrafficHandlingPriority() const; |
|
88 inline TInt GetTransferDelay() const; |
|
89 inline TInt GetMaxSduSize() const; |
|
90 inline TInt GetMaxBitrateUplink() const; |
|
91 inline TInt GetMaxBitrateDownlink() const; |
|
92 inline TInt GetGuaBitrateUplink() const; |
|
93 inline TInt GetGuaBitrateDownlink() const; |
|
94 inline void SetTrafficClass(RPacketQoS::TTrafficClass aTrafficClass); |
|
95 inline void SetDeliveryOrder(RPacketQoS::TDeliveryOrder aDeliveryOrder); |
|
96 inline void SetErroneousSDUDelivery(RPacketQoS::TErroneousSDUDelivery aDeliveryOfErroneusSdu); |
|
97 inline void SetResidualBitErrorRatio(RPacketQoS::TBitErrorRatio aResidualBer); |
|
98 inline void SetSDUErrorRatio(RPacketQoS::TSDUErrorRatio aErrorRatio); |
|
99 inline void SetTrafficHandlingPriority(RPacketQoS::TTrafficHandlingPriority aPriority); |
|
100 inline void SetTransferDelay(TInt aTransferDelay); |
|
101 inline void SetMaxSduSize(TInt aMaxSduSize); |
|
102 inline void SetMaxBitrateUplink(TInt aMaxBitrateUplink); |
|
103 inline void SetMaxBitrateDownlink(TInt aMaxBitrateDownlink); |
|
104 inline void SetGuaBitrateUplink(TInt aGuaBitrateUplink); |
|
105 inline void SetGuaBitrateDownlink(TInt aGuaBitrateDownlink); |
|
106 |
|
107 protected: |
|
108 |
|
109 DATA_VTABLE |
|
110 |
|
111 protected: |
|
112 RPacketQoS::TTrafficClass iTrafficClass; // Traffic class |
|
113 RPacketQoS::TDeliveryOrder iDeliveryOrder; // Delivery order |
|
114 RPacketQoS::TErroneousSDUDelivery iDeliveryOfErroneusSdu; // Delivery of erroneous SDUs |
|
115 RPacketQoS::TBitErrorRatio iResidualBer; // Residual BER |
|
116 RPacketQoS::TSDUErrorRatio iErrorRatio; // SDU error ratio |
|
117 RPacketQoS::TTrafficHandlingPriority iPriority; // Traffic handling priority |
|
118 TInt iTransferDelay; // Transfer delay |
|
119 TInt iMaxSduSize; // Maximum SDU size |
|
120 TInt iMaxBitrateUplink; // Maximum bit rate for uplink |
|
121 TInt iMaxBitrateDownlink; // Maximum bit rate for downlink |
|
122 TInt iGuaBitrateUplink; // Guaranteed bit rate for uplink |
|
123 TInt iGuaBitrateDownlink; // Guaranteed bit rate for downlink |
|
124 }; |
|
125 |
|
126 #ifndef SYMBIAN_NETWORKING_3GPPDEFAULTQOS |
|
127 |
|
128 |
|
129 /** Flow Identifires |
|
130 ECOM Implementation Id for SBLP Extension parameters. |
|
131 |
|
132 @publishedAll |
|
133 @released since v9.1 */ |
|
134 struct TFlowId |
|
135 { |
|
136 /** Getter Function for the Components of Flow ids. */ |
|
137 inline TUint16 GetMediaComponentNumber() const; |
|
138 inline TUint16 GetIPFlowNumber() const; |
|
139 /** Setter Function For Flow Id Components. */ |
|
140 inline void SetMediaComponentNumber(TUint16 aMediaComponentNumber); |
|
141 inline void SetIPFlowNumber(TUint16 aIPFlowNumber); |
|
142 |
|
143 private: |
|
144 TUint16 iMediaComponentNumber; |
|
145 TUint16 iIPFlowNumber; |
|
146 }; |
|
147 |
|
148 typedef RArray<TFlowId> RFlowIdentifiers; |
|
149 |
|
150 /** Extension Parameter Sets, Consise of MAT and FI(s). |
|
151 Provides Implementation of Extension parameters of the SBLP Family. |
|
152 |
|
153 @publishedAll |
|
154 @released since v9.1 */ |
|
155 class CSubConSBLPR5ExtensionParamSet : public CSubConExtensionParameterSet |
|
156 { |
|
157 public: |
|
158 inline static CSubConSBLPR5ExtensionParamSet* NewL(CSubConParameterFamily& aFamily, CSubConParameterFamily::TParameterSetType aType); |
|
159 inline static CSubConSBLPR5ExtensionParamSet* NewL(); |
|
160 |
|
161 /** Media Authorization Token setter and getter functions. */ |
|
162 inline const TAuthToken& GetMAT() const; |
|
163 inline void SetMAT(const TAuthToken& aAuthToken); |
|
164 |
|
165 /** Flow identifires setter and getter functions. */ |
|
166 inline TInt GetNumberOfFlowIds() const; |
|
167 inline const TFlowId& GetFlowIdAt(TInt aIndex) const; |
|
168 |
|
169 /** Adding of Flow Identifires into an array. */ |
|
170 inline void AddFlowIdL(const TFlowId& aFlowId); |
|
171 |
|
172 /** public constructors so that it can be accessed by factory. */ |
|
173 inline CSubConSBLPR5ExtensionParamSet(); |
|
174 inline ~CSubConSBLPR5ExtensionParamSet(); |
|
175 |
|
176 protected: |
|
177 DATA_VTABLE |
|
178 |
|
179 /** Single Media Authorization Token (MAT). */ |
|
180 TAuthToken iAuthToken; |
|
181 |
|
182 /** Multiple Flow Identifiers. */ |
|
183 RFlowIdentifiers iFlowIds; |
|
184 }; |
|
185 #endif |
|
186 |
|
187 |
|
188 |
|
189 |
|
190 |
|
191 /** |
|
192 Factory used to create instances of IP SubConnection Parameters. |
|
193 |
|
194 @internalComponent |
|
195 @released since v9.1 |
|
196 */ |
|
197 class CSubConIPExtensionParamsFactory : public CBase |
|
198 { |
|
199 public: |
|
200 static CSubConExtensionParameterSet* NewL(TAny* aConstructionParameters); |
|
201 }; |
|
202 |
|
203 #include <ip_subconparams.inl> |
|
204 |
|
205 |
|
206 |
|
207 #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS |
|
208 /* |
|
209 Umts QoS extension classes have been relocated to the UmtsGprsSCPR component. |
|
210 So now we need to make sure that the correct class factory TUid, class name, |
|
211 and class Id are used |
|
212 */ |
|
213 #define KSubConIPParamsUid KSubCon3GPPExtParamsFactoryUid |
|
214 #define KSubConQosIPLinkR99ParamsType KSubConQosR99ParamsType |
|
215 #define CSubConQosIPLinkR99ParamSet CSubConQosR99ParamSet |
|
216 #endif |
|
217 // SYMBIAN_NETWORKING_3GPPDEFAULTQOS |
|
218 |
|
219 |
|
220 #endif |
|
221 // __IP_SUBCONPARAMS_H__ |