Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
2 * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
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".
9 * Initial Contributors:
10 * Nokia Corporation - initial contribution.
14 * Description: Declaration of the class CApAccessPointItem
19 #ifndef ACCESSPOINTITEM_H
20 #define ACCESSPOINTITEM_H
22 // Deprecation warning
23 #warning This header file has been deprecated. Will be removed in one of the next SDK releases.
30 #include <ApEngineVer.h>
31 #include <ApEngineConsts.h>
36 * This enum is used to identify the data when reading or writing
37 * CApAccessPointItem data.
41 * <br>ReadTextL( const TApMember aColumn, TDes8& aValue )
42 * <br>WriteTextL( const TApMember aColumn, const TDesC8& aValue )
43 * <br> EApIspIfCallbackInfo
44 * <br> EApIspInitString
48 * <br>ReadTextL( const TApMember aColumn, TDes16& aValue )
49 * <br>WriteTextL( const TApMember aColumn, const TDesC16& aValue )
50 * <br> EApWapAccessPointName
51 * <br> EApWapCurrentBearer
52 * <br> EApWapGatewayAddress
53 * <br> EApWapServiceCentreAddress
55 * <br> EApIapServiceType
57 * <br> EApIspDescription
58 * <br> EApIspDefaultTelNumber
59 * <br> EApIspLoginName
60 * <br> EApIspLoginPass
64 * <br> EApGprsIfParams
65 * <br> EApIspIfNetworks
66 * <br> EApGprsIfNetworks
67 * <br> EApIspIfAuthName
68 * <br> EApGprsIfAuthName
69 * <br> EApIspIfAuthPass
70 * <br> EApGprsIfAuthPassword
73 * <br> EApIspIPNetMask
74 * <br> EApGprsIpNetMask
75 * <br> EApIspIPGateway
76 * <br> EApGprsIpGateway
77 * <br> EApIspIPNameServer1
78 * <br> EApGprsIPNameServer1
79 * <br> EApIspIPNameServer2
80 * <br> EApGprsIPNameServer2
81 * <br> EApGprsPdpAddress
82 * <br> EApProxyProtocolName
84 * <br> EApProxyLoginName
85 * <br> EApProxyLoginPass
86 * <br> EApIP6NameServer1
87 * <br> EApIP6NameServer2
88 * <br> EApLanBearerName
90 * <br>Long text, 16 bit:
91 * <br>const HBufC* ReadConstLongTextL( const TApMember aColumn )
92 * <br>WriteLongTextL( const TApMember aColumn, const TDesC& aValue )
93 * <br> EApWapStartPage
94 * <br> EApIspLoginScript
95 * <br> EApGprsAccessPointName
96 * <br> EApProxyServerAddress
97 * <br> EApProxyExceptions
100 * <br>ReadUint( const TApMember aColumn, TUint32& aValue )
101 * <br>WriteUint( const TApMember aColumn, const TUint32& aValue )
102 * <br> EApWapAccessPointID
108 * <br> EApWapChargecard
115 * <br> EApIapServiceId
116 * <br> EApIapChargecard
118 * <br> EApIspAuthRetries
119 * <br> EApGprsIfAuthRetries
120 * <br> EApIspIfCallbackType
121 * <br> EApIspCallBackTimeOut
122 * <br> EApIspBearerName
123 * <br> EApIspBearerSpeed
124 * <br> EApIspBearerCE
125 * <br> EApIspBearerType
126 * <br> EApIspBearerCallTypeIsdn
127 * <br> EApIspChannelCoding
129 * <br> EApIspRequestedTimeSlots
130 * <br> EApIspMaximumTimeSlots
131 * <br> EApGprsPdpType
132 * <br> EApGprsReqPrecedence
133 * <br> EApGprsReqDelay
134 * <br> EApGprsReqReliability
135 * <br> EApGprsReqPeakThroughput
136 * <br> EApGprsReqMeanPeakThroughput
137 * <br> EApGprsMinPrecedence
138 * <br> EApGprsMinDelay
139 * <br> EApGprsMinReliability
140 * <br> EApGprsMinPeakThroughput
141 * <br> EApGprsMinMeanThroughput
142 * <br> EApWapWspOption
143 * <br> EApIspBearerCallTypeIsdn
144 * <br> EApProxyPortNumber
146 * <br> EApWapProxyPort
147 * <br> EApIapBearerService
148 * <br> EApIapBearerID
151 * <br>ReadBool( const TApMember aColumn, TBool& aValue )
152 * <br>WriteBool( const TApMember aColumn, const TBool& aValue )
153 * <br> EApWapSecurity
154 * <br> EApIspDialResolution
155 * <br> EApIspUseLoginScript
156 * <br> EApIspPromptForLogin
157 * <br> EApIspDisplayPCT
158 * <br> EApIspIfPromptForAuth
159 * <br> EApGprsIfPromptForAuth
160 * <br> EApIspIfCallbackEnabled
161 * <br> EApIspIPAddrFromServer
162 * <br> EApGprsIpAddrFromServer
163 * <br> EApIspIPDnsAddrFromServer
164 * <br> EApGprsIpDnsAddrFromServer
165 * <br> EApIspEnableIpHeaderComp
166 * <br> EApGprsHeaderCompression
167 * <br> EApIspEnableLCPExtensions
168 * <br> EApGprsEnableLCPExtensions
169 * <br> EApIspDisablePlainTextAuth
170 * <br> EApGprsDisablePlainTextAuth
171 * <br> EApIspEnableSWCompression
172 * <br> EApGprsDataCompression
173 * <br> EApGprsUseAnonymAccess
175 * <br> EApProxyUseProxy
176 * <br> EApHasProxySettings
177 * <br> EApIP6DNSAddrFromServer
181 // WAP Access Point Table
182 EApWapAccessPointID, ///< The Uid of the access point.
183 ///< READ ONLY, assigned by the database.
184 EApWapAccessPointName, ///< The name of the access point
185 EApWapCurrentBearer, ///< Indicates the name of the table from
186 ///< which to read the bearer information
187 EApWapStartPage, ///< WAP start page URL, LONG TEXT!
189 // WAP Common (present in both tables)
190 EApWapGatewayAddress, ///< WAP gateway address (IP address)
191 EApWapWspOption, ///< Enum value indicating whether
192 ///< connection-oriented or connectionless
193 ///< API should be used.
194 ///< Type is TCommsDbWapWspOption.
195 EApWapSecurity, ///< Attepmt secure WTLS connection to
198 // WAP IP Bearer Table
200 EApWapIsp, ///< Identifier of the ISP to use if this
201 ///< is an ISP type database
203 EApWapChargecard, ///< Identifier for the chargecard to use
204 ///< if this is an ISP type database
205 EApWapIap, ///< Identifier of a record in the IAP
206 ///< table to be used if this is an IAP
209 EApWapIspType, ///< Enum value indicating whether IAP/ISP
210 ///< is a dial in or a dial out
212 // WAP SMS Bearer Table
213 // EApSmsWapGatewayAddress is mapped to EApWapGatewayAddress,
214 // different enum needed only for being able to
215 // distinguish when editing...
218 EApIapName, ///< The name of this IAP
219 EApIapServiceType, ///< Name of service table in this IAP
220 EApIapServiceId, ///< Identifier of service in this IAP
221 EApIapChargecard, ///< Identifier of the chargecard in
225 EApIspName, ///< The name of this ISP
226 EApIspDescription, ///< Application's description of this ISP
227 EApIspIspType, ///< Enum value indicating ISP type, e.g.
228 ///< Internet ISP, WAP Isp.TCommsDbIspType.
229 EApIspDefaultTelNumber, ///< Default phone number
230 EApIspDialResolution, ///< Perform dialing resolution for default
232 EApIspUseLoginScript, ///< Use login script?
233 EApIspLoginScript, ///< Login script (used only if Use Login
234 ///< Script is true), LONG TEXT.
235 EApIspPromptForLogin, ///< Prompt user for username and password?
236 EApIspLoginName, ///< Login name
237 EApIspLoginPass, ///< Login password
238 EApIspDisplayPCT, ///< Display PCT (without scanning script
239 ///< for READ command) UNUSED, always FALSE
240 EApIspIfName, ///< Interface name
241 EApIspIfParams, ///< Interface parameter string
242 EApIspIfNetworks, ///< Comma separated list of network
244 EApIspIfPromptForAuth, ///< Prompt user for authentication
245 ///< username and password?
246 EApIspIfAuthName, ///< Authentication username used by PPP
247 EApIspIfAuthPass, ///< Authentication password used by PPP
248 EApIspAuthRetries, ///< Number of times to retry
249 ///< authentication if it fails
250 EApIspIfCallbackEnabled, ///< Is callback enabled?
251 EApIspIfCallbackType, ///< Enum value indicating the type of
252 ///< callback (if enabled).
253 ///< enum TCallbackAction.
254 EApIspIfCallbackInfo, ///< Info for callback request (if enabled)
255 ///< 8-bit text field.
256 EApIspCallBackTimeOut, ///< Time to wait for callback in
257 ///< microseconds (if enabled)
258 EApIspIPAddrFromServer, ///< Get IP address from server?
259 EApIspIPAddr, ///< IP address of interface
260 EApIspIPNetMask, ///< IP net mask of interface
261 EApIspIPGateway, ///< IP address of gateway
262 EApIspIPDnsAddrFromServer, ///< Get DNS address from server?
263 EApIspIPNameServer1, ///< IP address of primary name server
264 EApIspIPNameServer2, ///< IP address of secondary name server
265 EApIspEnableIpHeaderComp, ///< Enable IP header compression?
266 EApIspEnableLCPExtensions, ///< Enable LCP extensions?
267 EApIspDisablePlainTextAuth, ///< Disable plain text authentication?
268 EApIspEnableSWCompression, ///< Enable software compression?
269 EApIspBearerName, ///< Enum value specifying the name of the
270 ///< bearer, e.g. Asunchronous Modem,
271 ///< RBasicGsmCall::TBearerName
272 EApIspBearerSpeed, ///< Enum value specifying the bearer speed
274 EApIspBearerCallTypeIsdn, ///< call type is ISDN or Analogue...
275 EApIspBearerCE, ///< Enum value specifying the bearer CE,
276 ///< RBasicGsmCall::TBearerCE
277 EApIspInitString, ///< Modem initialization string to be used
278 ///< when this ISP is in use.This string
279 ///< will be copied into the
280 ///< MODEM_ISP_INIT_STRING field by
281 ///< NetDial. 8-bit text field.
282 EApIspBearerType, ///< Enum value indicating connection type
283 ///< (CSD or HSCSD), TCommsDbBearerType
284 EApIspChannelCoding, ///< Enum value specifying HSCSD channel
286 EApIspAIUR, ///< Enum value specifying AIUR for HSCSD
287 EApIspRequestedTimeSlots, ///< Requested number of time slots for
289 EApIspMaximumTimeSlots, ///< Maximum number of time slots for HSCSD
290 ///< which could be requested during this
293 EApGprsAccessPointName, ///< Access Point Name, LONG TEXT!
294 EApGprsPdpType, ///< PDP type
295 EApGprsPdpAddress, ///< PDP address
296 EApGprsReqPrecedence, ///< Requested quality of service
297 ///< precedence class
298 EApGprsReqDelay, ///< Requested quality of service
300 EApGprsReqReliability, ///< Requested quality of service
301 ///< reliability class
302 EApGprsReqPeakThroughput, ///< Requested quality of service
303 ///< peak throughput class
304 EApGprsReqMeanPeakThroughput, ///< Requested quality of service
305 ///< mean throughput class
306 EApGprsMinPrecedence, ///< Minimum quality of service
307 ///< precedence class
308 EApGprsMinDelay, ///< Minimum quality of service
310 EApGprsMinReliability, ///< Minimum quality of service
311 ///< reliability class
312 EApGprsMinPeakThroughput, ///< Minimum quality of service
313 ///< peak throughput class
314 EApGprsMinMeanThroughput, ///< Minimum quality of service
315 ///< mean throughput class
316 EApGprsUseAnonymAccess, ///< Use anonymous access on?
318 // followings are mapped to ISP... fields
319 EApGprsDataCompression, ///< Data compression on?
320 EApGprsHeaderCompression, ///< IP header compression on?
321 EApGprsIfName, ///< Interface name
322 EApGprsIfParams, ///< Interface parameter string
323 EApGprsIfNetworks, ///< Comma separated list of network
325 EApGprsIfPromptForAuth, ///< Prompt user for authentication
326 ///< username and password?
327 EApGprsIfAuthName, ///< Authentication username used by PPP
328 EApGprsIfAuthPassword, ///< Authentication password used by PPP
329 EApGprsIfAuthRetries, ///< Number of times to retry
330 ///< authentication if it fails
331 EApGprsIpNetMask, ///< IP net mask of interface
332 EApGprsIpGateway, ///< IP address of gateway
333 EApGprsIpAddrFromServer, ///< Get IP adresses (for Symbian OS)
335 EApGprsIpAddr, ///< IP address of Symbian OS
336 EApGprsIpDnsAddrFromServer, ///< Get DNS addresses from server?
337 EApGprsIPNameServer1, ///< IP address of primary name server
338 EApGprsIPNameServer2, ///< IP address of secondary name server
339 EApGprsEnableLCPExtensions, ///< Enable LCP extension?
340 EApGprsDisablePlainTextAuth, ///< Disable plain text authentication?
341 EApIsReadOnly ///< Is the current record read only?
344 // expanding this enum is safe and will not cause any trouble as all public
345 // part of this module uses it as a const parameter and NEVER as
346 // a return value, therefore non-aware clients will NEVER meet with the new
347 // ones, thus it can not cause any problems that they do not expect them...
349 EApProxyServerAddress, ///< Proxy server address, long text
350 EApProxyProtocolName, ///< Proxy protocol name, Text
351 EApProxyPortNumber, ///< Proxy port number, TUint32
352 EApProxyUseProxy, ///< Use proxy server?, TBool
353 EApProxyExceptions, ///< ';' separated list of addr. for wich
354 ///< the server should not be used.
356 EApHasProxySettings, ///< Has proxy settings? READ ONLY.
357 EApNetworkID, ///< The network ID
358 EApNetworkName, ///< The network name
360 EApWapProxyPort, ///< The wap proxy port number
361 EApProxyLoginName, ///< The proxy login name
362 EApProxyLoginPass, ///< The proxy login password
363 EApIapBearerService, ///< Bearer service
365 EApIP6DNSAddrFromServer, ///< Get IPv6 DNS addresses from server?
366 EApIP6NameServer1, ///< IP address of primary name server
367 EApIP6NameServer2, ///< IP address of secondary name server
370 EApCdmaIwfName, ///< IWF name, Text
371 EApCdmaServiceOption, ///< Service Option, TUint32
372 EApCdmaPdpType, ///< PDP type, TUin32
373 EApCdmaPdpAddress, ///< PDP address, Text
374 EApCdmaReqFwdPriority, ///< Requested forward priority, TUint32
375 EApCdmaReqRevPriority, ///< Requested reverse priority, TUint32
376 EApCdmaReqFwdBitrate, ///< Requested forward bitrate, TUint32
377 EApCdmaReqRevBitrate, ///< Requested reverse bitrate, TUint32
378 EApCdmaReqFwdLoss, ///< Req. forward frame loss rate, TUint32
379 EApCdmaReqRevLoss, ///< Req. reverse frame loss rate, TUint32
380 EApCdmaReqFwdMaxDelay, ///< Requested forward delay, TUint32
381 EApCdmaReqRevMaxDelay, ///< Requested reverse delay, TUint32
382 EApCdmaMinFwdBitrate, ///< Min. acceptable fwd bitrate, TUint32
383 EApCdmaMinRevBitrate, ///< Min. acceptable rev bitrate, TUint32
384 EApCdmaAccptFwdLoss, ///< Max. acc. fwd frame loss rate, TUint32
385 EApCdmaAccptRevLoss, ///< Max. acc. rev frame loss rate, TUint32
386 EApCdmaAccptFwdMaxDelay, ///< Max. acceptable forward delay, TUint32
387 EApCdmaAccptRevMaxDelay, ///< Max. acceptable reverse delay, TUint32
389 // CDMA2000, mapped to ISP... fields
390 EApCdmaDataCompression, ///< Data compression on? TBool
391 EApCdmaHeaderCompression, ///< IP header compression on? TBool
392 EApCdmaAnonymousAccess, ///< Use anonymous access on? TBool
393 EApCdmaIfName, ///< Interface name
394 EApCdmaIfParams, ///< Interface parameter string
395 EApCdmaIfNetworks, ///< Comma separated list of network
397 EApCdmaIfPromptForAuth, ///< Prompt user for authentication
398 ///< username and password?
399 EApCdmaIfAuthName, ///< Authentication username used by PPP
400 EApCdmaIfAuthPassword, ///< Authentication password used by PPP
401 EApCdmaIfAuthRetries, ///< Number of times to retry
402 ///< authentication if it fails
403 EApCdmaIpNetMask, ///< IP net mask of interface
404 EApCdmaIpGateway, ///< IP address of gateway
405 EApCdmaIpAddrFromServer, ///< Get IP adresses (for Symbian OS)
407 EApCdmaIpAddr, ///< IP address of Symbian OS
408 EApCdmaIpDnsAddrFromServer, ///< Get DNS addresses from server?
409 EApCdmaIPNameServer1, ///< IP address of primary name server
410 EApCdmaIPNameServer2, ///< IP address of secondary name server
411 EApCdmaEnableLCPExtensions, ///< Enable LCP extension?
412 EApCdmaDisablePlainTextAuth, ///< Disable plain text authentication?
415 EApCdmaApType, ///< Internet / WAP or both? TUint32
416 EApCdmaQosWarningTimeout, ///< Notify user if the requested QOS
417 ///< cannot be satisfied for this time in
418 ///< microseconds, TUint32
419 EApCdmaRlpMode, ///< Transparent or non-transparent
420 ///< radio link protocol, TUint32
421 // CDMA2000 deprecated Mobile IP fields
422 EApCdmaMip, ///< Attempt to use mobile IP, TBool
423 EApCdmaHomeAgentAddress, ///< Home Agent address, Text
424 EApCdmaMipTimeout, ///< A normal reconnect (informing the
425 ///< user) takes place if both the PPP link
426 ///< drops and a change in SID or NID is
427 ///< received within this time in
428 ///< milliseconds, TUint32
429 // CDMA2000 specific CDMA parameters provisioned through OTA and defined
430 // in TIA-683B section 3.5.8
431 // These fields replace the old Mobile IP fields (above).
432 EApCdmaNaiType, ///< Type of NAI, TUint32
433 EApCdmaSimpleIpAuthAlgorithm, ///< SimpleIP auth.algorithm, TUint32
434 EApCdmaSimpleIpPapSsHandle, ///< SimpleIP PAP shared secret handle,
436 EApCdmaSimpleIpChapSsHandle, ///< SimpleIP CHAP shared secret handle,
438 EApCdmaMipTBit, ///< Reverse-tunneling reqd flag, TUint32
439 EApCdmaMipHomeAddress, ///< Home address, Text
440 EApCdmaMipPrimaryHomeAgent, ///< IP address of mobile node's
441 ///< primary home agent, Text
442 EApCdmaMipSecondaryHomeAgent, ///< IP address of mobile node's
443 ///< secondary home agent, Text
444 EApCdmaMipMnAaaAuthAlgorithm, ///< MN-AAA auth algorithm, TUint32
445 EApCdmaMipMnAaaSpi, ///< MN-AAA security param index, TUint32
446 EApCdmaMipMnAaaSsHandle, ///< MN-AAA shared secret handle, TUint32
447 EApCdmaMipMnHaAuthAlgorithm, ///< MN-HA auth algorithm, TUint32
448 EApCdmaMipMnHaSpi, ///< MN-HA security param index, TUint32
449 EApCdmaMipMnHaSsHandle, ///< MN-HA shared secret handle, TUint32
452 // WLAN specific fields
453 EApWlanNetworkName, ///< The network name, Text
454 EApWlanNetworkMode, ///< Gives network mode, TUint32
455 EApWlanSecurityMode, ///< The security mode, TUint32
457 // WLAN, mapped to ISP... fields
458 EApWlanIfNetworks, ///< Comma separated list of network
460 EApWlanIfPromptForAuth, ///< Prompt user for authentication
461 ///< username and password?
462 EApWlanIfAuthName, ///< Authentication username used by PPP
463 EApWlanIfAuthPassword, ///< Authentication password used by PPP
464 EApWlanIfAuthRetries, ///< Number of times to retry
465 ///< authentication if it fails
466 EApWlanIpNetMask, ///< IP net mask of interface
467 EApWlanIpGateway, ///< IP address of gateway
468 EApWlanIpAddrFromServer, ///< Get IP adresses (for Symbian OS)
470 EApWlanIpAddr, ///< IP address of Symbian OS
471 EApWlanIpDnsAddrFromServer, ///< Get DNS addresses from server?
472 EApWlanIPNameServer1, ///< IP address of primary name server
473 EApWlanIPNameServer2, ///< IP address of secondary name server
474 EApWlanSettingsId, ///< COMMDB_ID of the WLAN settings,
476 EApWlanScanSSID, ///< TBool, whether need to scan the SSID
477 EApWlanChannelId, ///< In ad-hoc network mode, the channel
479 EApLanBearerName, ///< The name of the LAN bearer
480 EApIapBearerID, ///< UID of the bearer record (LAN/Modem)
481 EApIapBearerType, ///< The name of the iap bearer
482 ///< table (LAN/Modem)
483 // some defines for UI ONLY, NOT TO BE USED BY ANYONE ELSE!!!
484 EApIpv4Settings = 0x00010000,
486 EApWlanSecuritySettings ///< The security settings launcher
492 // D E P R E C A T E D, please do not use it!!!!!!!!!!
493 // can not remove as it was part of the public API...
494 const TInt KApMemberNum = EApGprsDisablePlainTextAuth+1;
503 * CApAccessPointItem is used to exchange data between engine and client.
504 * It holds the information for an access point including WAP, IAP, ISP
505 * (if present & applies).
506 * This class uses the same approach as CommDB to read and write data: it
507 * has functions for each data type implemented. To read or write the data,
508 * we have to know the data type and the enum name of the 'column'.
509 * The column values has the names of the database columns with the 'EAp'
510 * prefix. The reason for this (not using the database column descriptors)
511 * is performance. It is much faster to compare enum values than literals.
513 class CApAccessPointItem :public CBase
516 public: // Constructors and destructor
518 * Two-phased constructor. Leaves on failure, places instance
519 * on cleanup stack. Instance is initialised to default values.
520 * The created instance is suitable for passing to CApDataHandler's
521 * functions, contains all necessary information.
522 * @return The constructed CApAccessPointItem.
526 IMPORT_C static CApAccessPointItem* NewLC();
534 IMPORT_C virtual ~CApAccessPointItem();
538 * Copies the data from another CApAccessPointItem.
539 * Substitute for the "assignment operator". It requires allocation
541 * Wap Access Point Uid is not copied.
545 IMPORT_C void CopyFromL( const CApAccessPointItem& aCopyFrom );
549 * Equality operator. Wap Access Point Uid is not counted.
553 IMPORT_C TBool operator==( const CApAccessPointItem& aitem ) const;
557 * Inequality operator. Wap Access Point Uid is not counted.
561 IMPORT_C TBool operator!=( const CApAccessPointItem& aitem ) const;
564 protected: // Constructors
567 * C++ default constructor.
571 IMPORT_C CApAccessPointItem();
574 * Second-phase constructor.
578 IMPORT_C void ConstructL();
583 public: // New functions
587 * This function reads up an 8-bit text value from the specified column.
588 * @param aColumn Enum value indicating the column to read.
589 * @param aValue Reference to an 8-bit descriptor to hold the value
590 * @return no return value
594 IMPORT_C void ReadTextL( const TApMember aColumn, TDes8& aValue );
597 * This function reads up a 16-bit text value from the specified column.
598 * @param aColumn Enum value indicating the column to read.
599 * @param aValue Reference to a 16-bit descriptor to hold the value
600 * @return no return value
604 IMPORT_C void ReadTextL( const TApMember aColumn, TDes16& aValue );
607 * NOTE: This function is deprecated. Use ReadConstLongTextL!
608 * This function reads up a long text value from the specified column.
609 * The ownership is not passed to the caller. It means that the caller
610 * should not delete the received value.
611 * If the caller must take the ownership for any reason, must make a
612 * copy and use that and delete the copy when no longer needed.
613 * @param aColumn Enum value indicating the column to read.
614 * @return A HBufC* to the value.
618 IMPORT_C HBufC* ReadLongTextL( const TApMember aColumn );
622 * This function reads up a long text value from the specified column.
623 * The ownership is not passed to the caller. It means that the caller
624 * should not delete the received value.
625 * If the caller must take the ownership for any reason, must make a
626 * copy and use that and delete the copy when no longer needed.
627 * @param aColumn Enum value indicating the column to read.
628 * @return A const HBufC* to the value.
632 IMPORT_C const HBufC* ReadConstLongTextL( const TApMember aColumn );
637 * This function reads the length of the text in the specified column.
638 * @param aColumn Enum value indicating the column to read.
639 * @return The length of the text in that column.
643 IMPORT_C TUint32 ReadTextLengthL( const TApMember aColumn );
647 * This function reads up a TUint32 value from the specified column.
648 * In case the given value was not written to the database,
649 * it will return KErrValueUnspecified.
650 * If the specified column does not exist (that is, not part of the
651 * database structure), it will Panic in debug builds and it will
652 * return KErrInvalidColumn in release builds without Panicking.
653 * Panic is used in debug builds because it indicates a programming
654 * error. In release, it 'notifies' the caller about the error through
655 * the return value but enables system to continue operation.
656 * @param aColumn Enum value indicating the column to read.
657 * @param aValue A reference to a TUint32 to hold the value
658 * @return Error code.
662 IMPORT_C TInt ReadUint( const TApMember aColumn, TUint32& aValue );
665 * This function reads up a boolean value from the specified column.
666 * If the specified column does not exist (that is, not part of the
667 * database structure), it will Panic in debug builds and it will
668 * return KErrInvalidColumn in release builds without Panicking.
669 * Panic is used in debug builds because it indicates a programming
670 * error. In release, it 'notifies' the caller about the error through
671 * the return value but enables system to continue operation.
672 * @param aColumn Enum value indicating the column to read.
673 * @param aValue A reference to a boolean to hold the value
674 * @return Error code.
678 IMPORT_C TInt ReadBool( const TApMember aColumn, TBool& aValue );
683 * This function writes an 8-bit text value to the specified column.
684 * If the specified column does not exist (that is, not part of the
685 * database structure), it will Panic in debug builds and it will
686 * return KErrInvalidColumn in release builds without Panicking.
687 * Panic is used in debug builds because it indicates a programming
688 * error. In release, it 'notifies' the caller about the error through
689 * the return value but enables system to continue operation.
690 * This function can Leave if the copying of the text does not succeed.
691 * Possible leave codes are the system leave codes.
692 * @param aColumn Enum value indicating the column to write.
693 * @param aValue Reference to an 8-bit text descriptor to the value
694 * @return Error code.
698 IMPORT_C TInt WriteTextL( const TApMember aColumn,
699 const TDesC8& aValue );
702 * This function writes a 16-bit text value to the specified column.
703 * If the specified column does not exist (that is, not part of the
704 * database structure), it will Panic in debug builds and it will
705 * return KErrInvalidColumn in release builds without Panicking.
706 * Panic is used in debug builds because it indicates a programming
707 * error. In release, it 'notifies' the caller about the error through
708 * the return value but enables system to continue operation.
709 * This function can Leave if the copying of the text does not succeed.
710 * @param aColumn Enum value indicating the column to write.
711 * @param aValue Reference to a 16-bit text descriptor to the value
712 * @return Error code.
716 IMPORT_C TInt WriteTextL( const TApMember aColumn,
717 const TDesC16& aValue );
720 * This function writes a long text value to the specified column.
721 * If the specified column does not exist (that is, not part of the
722 * database structure), it will Panic in debug builds and it will
723 * return KErrInvalidColumn in release builds without Panicking.
724 * Panic is used in debug builds because it indicates a programming
725 * error. In release, it 'notifies' the caller about the error through
726 * the return value but enables system to continue operation.
727 * This function can Leave if the copying of the text does not succeed.
728 * @param aColumn Enum value indicating the column to write.
729 * @param aValue Reference to a 16-bit text descriptor to the value
730 * @return Error code.
734 IMPORT_C TInt WriteLongTextL( const TApMember aColumn,
735 const TDesC& aValue );
738 * This function writes a TUint32 value to the specified column.
739 * If the specified column does not exist (that is, not part of the
740 * database structure), it will Panic in debug builds and it will
741 * return KErrInvalidColumn in release builds without Panicking.
742 * Panic is used in debug builds because it indicates a programming
743 * error. In release, it 'notifies' the caller about the error through
744 * the return value but enables system to continue operation.
745 * @param aColumn Enum value indicating the column to write.
746 * @param aValue A const reference to a TUint32 value
747 * @return Error code.
751 IMPORT_C TInt WriteUint( const TApMember aColumn,
752 const TUint32& aValue );
755 * This function writes a boolean value to the specified column.
756 * If the specified column does not exist (that is, not part of the
757 * database structure), it will Panic in debug builds and it will
758 * return KErrInvalidColumn in release builds without Panicking.
759 * Panic is used in debug builds because it indicates a programming
760 * error. In release, it 'notifies' the caller about the error through
761 * the return value but enables system to continue operation.
762 * @param aColumn Enum value indicating the column to write.
763 * @param aValue A const reference to a boolean value
764 * @return Error code.
768 IMPORT_C TInt WriteBool( const TApMember aColumn,
769 const TBool& aValue );
775 * This function returns the ID of the access point
776 * @return The ID of this access point
780 IMPORT_C TUint32 WapUid() const;
784 * This function returns the name of the connection
785 * Ownership is not passed.
786 * @return The name of the connection
790 IMPORT_C const TDesC& ConnectionName() const;
795 * This function returns the current WAP bearer for the access point
796 * Ownership is not passed.
797 * @return The current WAP bearer for the access point
801 IMPORT_C const TDesC& WapBearer() const;
805 * This function returns the bearer type for the current access point
806 * @return The current bearer type for the access point
810 IMPORT_C TApBearerType BearerTypeL();
814 * This function sets the bearer type for the current access point
815 * @param aBearer TApBearerType enum indicating the desired bearer type.
816 * @return No return value.
820 IMPORT_C void SetBearerTypeL( TApBearerType aBearer );
824 * This function writes a 16-bit text value to the 'name' fields
825 * of the access point.
826 * This includes: WAP_ACCESS_POINT, IAP, Dial/in/out/Gprs In/Out
827 * table's COMM_DB_NAME fields.
828 * These fields are (by TApMember): EApWapAccessPointName, EApIapName,
830 * It is useful if we need to use same names.
831 * @param aValue A const reference to a 16-bit text descriptor to
833 * @return No return value.
837 IMPORT_C void SetNamesL( const TDesC16& aValue );
841 * This function checks the integrity of the CApAccessPointItem.
843 * IF WAP_IP_BEARER, WAP_ISP_TYPE conforms to IAP_SERVICE_TYPE
844 * @return Boolean indicating whether the sanity check has
845 * passed(ETrue) or not(EFalse)
849 IMPORT_C TBool SanityCheckOk();
853 * This function compares this and the passed CApAccessPointItem
854 * whether they have the same ISP and bearer
855 * Returns true if the APs have the same phone number
856 * @param aItem a CApAccessPointItem to compare with
857 * @return whether the APs have the same isp and bearer
861 IMPORT_C TBool HasSameIspAndBearerL( CApAccessPointItem& aItem );
864 * This function returns whether the access point is read-only or not.
865 * @return Whether the current access point is read-only or not.
869 IMPORT_C TBool IsReadOnly() const;
871 public: // public, not exported, available only inside the ApEngine dll
873 * Returnes whether the given access point is a VPN ap or not.
875 TBool IsVpnAp() const;
878 * Sets the current access point as VPN or as normal AP.
880 * @param aIsVpn a TBool specifiyng that the current AP is VPN or not.
882 void SetVpnAp( TBool aIsVpn );
886 * Returns whether a given member is specified (after reading it from
888 * @param aMember The member we would like to knopw if it is specified
890 * @return whether a given member is specified (after reading it from
893 TBool Specified( TApMember aMember );
896 * Sets a given member as specified or not
897 * @param aMember The member to set
898 * @param aOn The value to set
900 void Specify( TApMember aMember, TBool aOn );
903 * Sets all WAP member as specified or not
904 * @param aOn The value to set
906 void SpecifyWap( TBool aOn );
909 * Sets all IP bearer member as specified or not
910 * @param aOn The value to set
912 void SpecifyIpBearer( TBool aOn );
915 * Sets all IAP member as specified or not
916 * @param aOn The value to set
918 void SpecifyIAP( TBool aOn );
921 * Sets all ISP member as specified or not
922 * @param aOn The value to set
924 void SpecifyISP( TBool aOn );
927 * Sets all GPRS member as specified or not
928 * @param aOn The value to set
930 void SpecifyGPRS( TBool aOn );
933 * Sets all CDMA member as specified or not
934 * @param aOn The value to set
936 void SpecifyCDMA( TBool aOn );
939 * Sets all WLAN member as specified or not
940 * @param aOn The value to set
942 void SpecifyWLAN( TBool aOn );
945 * Sets all member as specified or not
946 * @param aOn The value to set
948 void SpecifyAll( TBool aOn );
951 * Sets iGetDNSIPFromServer according the currently valid iPrimaryDNS
952 * & iSecondaryDNS values. Called internally, after every setting of
953 * the above two values
955 void SetDnsIpFromServer();
958 * Sets iIspIPAddrFromServer according the currently valid iIspIPAddr
959 * value. Called internally, after every setting of iIspIPAddr values
961 void SetIpFromServer();
965 * Sets iExt->iIpv6GetDNSIPFromServer according the currently valid
966 * iExt->iIpv6PrimaryDNS & iExt->iIpv6SecondaryDNS values.
967 * Called internally, after every setting of the above two values
969 void SetDns6IpFromServer();
973 * Reallocates a passed 16-bit descriptor. Passed descriptor is deleted,
974 * new one is AllocL-ed
975 * Passed descriptor MUST NOT BE on the CleanupStack
976 * @param aDes The descriptor to hold the value
977 * @param aValue The value to pass to the aDes descriptor.
979 void ReAllocL(HBufC*& aDes, const TDesC16& aValue);
982 * Reallocates a passed 8-bit descriptor. Passed descriptor is deleted,
983 * new one is AllocL-ed
984 * Passed descriptor MUST NOT BE on the CleanupStack
985 * @param aDes The descriptor to hold the value
986 * @param aValue The value to pass to the aDes descriptor.
988 void ReAllocL(HBufC8*& aDes, const TDesC8& aValue);
992 * Compares THIS and the passed aItem.
993 * @param aItem The item to compare this to
994 * @return Whether the item is equal with this or not
996 TBool DoCompareApL( const CApAccessPointItem& aItem ) const;
1000 * Compares the WAP part of THIS and the passed aItem.
1001 * Does not compares IAP ID
1002 * @param aItem The item to compare this to
1003 * @return Whether the WAP part is equal with this or not
1005 TBool CompareWap( const CApAccessPointItem& aItem ) const;
1009 * Compares the IAP part of THIS and the passed aItem.
1010 * @param aItem The item to compare this to
1011 * @return Whether the IAP part is equal with this or not
1013 TBool CompareIap( const CApAccessPointItem& aItem ) const;
1017 * Compares the IsP part of THIS and the passed aItem.
1018 * @param aItem The item to compare this to
1019 * @return Whether the ISP part is equal with this or not
1021 TBool CompareIsp( const CApAccessPointItem& aItem ) const;
1025 * Compares the Gprs part of THIS and the passed aItem.
1026 * @param aItem The item to compare this to
1027 * @return Whether the GPRS part is equal with this or not
1029 TBool CompareGprs( const CApAccessPointItem& aItem ) const;
1033 * Compares the Cdma part of THIS and the passed aItem.
1034 * @param aItem The item to compare this to
1035 * @return Whether the CDMA part is equal with this or not
1037 TBool CompareCdma( const CApAccessPointItem& aItem ) const;
1041 * Compares the Wlan part of THIS and the passed aItem.
1042 * @param aItem The item to compare this to
1043 * @return Whether the WLAN part is equal with this or not
1045 TBool CompareWlan( const CApAccessPointItem& aItem ) const;
1049 * Removes leading 0s from the passed IP address.
1050 * @param aValue A descriptor holding the IP address to remove
1052 * @return A newly allocated HBufC holding the resulting string.
1054 HBufC* GetCleanIpAddressLC( const TDesC& aValue );
1059 * Removes invalid chars e.g. space, () from the passed phone number.
1060 * (valid are 0,1,2,..9,p,w,+,*,#)
1061 * Strips pre- and postfixes, prefix separator is#,
1062 * postfix separators are p, w or +
1063 * @param aValue A descriptor holding the phone number
1064 * @return A newly allocated HBufC holding the resulting string.
1066 HBufC* GetPlainPhoneNumberLC( const TDesC& aNumber );
1070 * Compares the 'default phone number' (ISP dial-in number) of this
1071 * and the passed CApAccessPointItem
1072 * @param aItem The item to compare this to
1073 * @return a TBool indicating whether the phone numbers are
1076 TBool IsSamePhoneNumberL( CApAccessPointItem& aItem );
1080 * Removes invalid chars from the passed phone number
1081 * @param aIntext Text to remove invalid characters from phone number
1082 * @return a HBufC holding the new text
1084 HBufC* RemoveInvalidPhoneCharsLC( const TDesC16& aInText );
1088 * Removes invalid chars from the passed text
1089 * Invalid chars are: TAB
1090 * @param aIntext Text to remove invalid characters from
1091 * @return a HBufC16 holding the new text
1093 HBufC* RemoveInvalidCharsLC( const TDesC16& aInText );
1097 * Removes invalid chars from the passed text
1098 * Invalid chars are: TAB
1099 * @param aIntext Text to remove invalid characters from
1100 * @return a HBufC8 holding the new text
1102 HBufC8* RemoveInvalidCharsLC( const TDesC8& aInText );
1106 * Compares the proxy data of this and the passed CApAccessPointItem.
1107 * @param aItem The item to compare this to
1108 * @return Whether the Proxy part is equal with this or not
1110 TBool CompareProxy( const CApAccessPointItem& aItem ) const;
1114 * Returns whether the Ap has proxy data or not.
1115 * @return Whether the Ap has proxy data or not.
1117 TBool HasProxy() const;
1121 * Sets the proxy flag.
1123 void SetProxyFlag();
1127 * Limits the speed after changing e.g. bearer type
1133 * Sets the IfNetworks value according to the bearer type and
1134 * the IPv6 support availability. The required values are:
1136 * GPRS/CDMA, pdptype ipv4 "ip",
1140 * GPRS/CDMA, pdptype ipv4 "ip",
1141 * GPRS/CDMA, pdptype ipv6 "ip6",
1146 void SetIfNetworksL();
1150 * Check if aColumn is supported.
1151 * @param aColumn Enum value indicating the column to check.
1152 * @return Whether the given member is supported or not
1154 TBool IsSupported( TApMember aColumn );
1158 * Leave with KErrNotSupported if aColumn is not supported.
1159 * @param aColumn Enum value indicating the column to check.
1161 void LeaveIfUnsupportedL( TApMember aColumn );
1165 * Returns whether this item has WLAN or not
1166 * @return Whether this item has WLAN or not
1172 * Limit the Ip6 DNS address
1173 * In case of CSD, HSCSD, only Well-known and User defined is supported,
1174 * so if the bearer is changed from something else to these bearer
1175 * types, the possible 'Dynamic' should be replaced with Well-known
1177 void LimitIp6DNSL();
1183 TUint32 iWapUid; ///< The unique identifier of the AP record.
1184 HBufC* iWapAccessPointName;
1189 HBufC* iStartingPage;
1191 // common for bearers
1192 HBufC* iWapGatewayAddress; ///< The WAP gateway address
1193 TBool iIsWTLSSecurityOn;
1194 TUint32 iIsConnectionTypeContinuous;
1197 TUint32 iChargeCard;
1199 TUint32 iWapIspType; // deprecated, not used but kept
1200 // to keep member positions
1206 TUint32 iIapServiceId;
1207 HBufC* iIapServiceType;
1209 TUint32 iIapChargeCardId;
1213 HBufC* iIspDescription;
1214 TCommsDbIspType iIspType;
1215 HBufC* iIspDefaultTelNumber;
1216 TBool iIspDialResolution;
1217 TBool iUseLoginScript;
1218 HBufC* iLoginScript;
1219 TBool iPromptPassword;
1222 TBool iDisplayTerminalWindow;
1224 HBufC* iIspIfParams;
1225 HBufC* iIspIfNetworks;
1226 TBool iIspIfPromptForAuth;
1227 HBufC* iIspIfAuthName;
1228 HBufC* iIspIfAuthPass;
1229 TUint32 iIspIfAuthRetries;
1231 TCallbackAction iCallBackTypeIsServerNum;
1232 HBufC8* iIspIfCallbackInfo;
1233 TUint32 iIspCallbackTimeOut;
1234 TBool iIspIPAddrFromServer;
1236 HBufC* iIspIPNetMask;
1238 TBool iGetDNSIPFromServer;
1240 HBufC* iSecondaryDNS;
1241 TBool iEnablePPPCompression;
1242 TBool iIspEnableLCPExtensions;
1243 TBool iIsPasswordAuthenticationSecure;
1244 TBool iIspEnableSwCompression;
1245 /*****************************************************
1246 * Series 60 Customer / ETel
1247 * Series 60 ETel API
1248 *****************************************************/
1249 TInt iIspBearerName; // RMobileCall::TMobileCallDataServiceCaps
1250 TApCallSpeed iMaxConnSpeed;
1251 TApCallType iBearerCallTypeIsdn; //RMobileCall::TMobileCallDataProtocol
1252 TInt iIspBearerCE; // RMobileCall::TMobileCallDataQoS
1253 HBufC8* iIspInitString;
1254 TUint32 iIspBearerType;
1255 TUint32 iIspChannelCoding;
1257 TUint32 iIspRequestedTimeSlots;
1258 TUint32 iIspMaximumTimeSlots;
1261 HBufC* iGprsAccessPointName;
1262 TUint32 iGprsPdpType;
1263 HBufC* iGprsPdpAddress;
1264 TUint32 iGprsReqPrecedence;
1265 TUint32 iGprsReqDelay;
1266 TUint32 iGprsReqReliability;
1267 TUint32 iGprsReqPeakThroughput;
1268 TUint32 iGprsReqMeanPeakThroughput;
1269 TUint32 iGprsMinPrecedence;
1271 TUint32 iGprsMinDelay;
1272 TUint32 iGprsMinReliability;
1273 TUint32 iGprsMinPeakThroughput;
1274 TUint32 iGprsMinMeanThroughput;
1275 TBool iGprsUseAnonymAccess;
1277 CArrayFixFlat<TBool> *iSpecified;
1280 HBufC* iApProxyProtocolName;
1281 HBufC* iApProxyServerAddress;
1282 TUint32 iApProxyPortNumber;
1283 TBool iApProxyUseProxy;
1284 HBufC* iApProxyExceptions;
1285 TBool iApHasProxySettings;
1288 TUint32 iWapProxyPort;
1289 HBufC* iNetworkName;
1290 HBufC* iWapProxyLoginName;
1291 HBufC* iWapProxyLoginPass;
1292 TUint32 iApIapBearerService; // RMobileCall::TMobileCallDataServiceCaps
1296 protected: // Friend classes
1297 friend class CApDataHandler;
1302 #endif // ACCESSPOINTITEM_H