williamr@2: /*
williamr@2: * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
williamr@2: * All rights reserved.
williamr@2: * This component and the accompanying materials are made available
williamr@2: * 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
williamr@2: * which accompanies this distribution, and is available
williamr@2: * at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2: *
williamr@2: * Initial Contributors:
williamr@2: * Nokia Corporation - initial contribution.
williamr@2: *
williamr@2: * Contributors:
williamr@2: *
williamr@2: * Description:  Declaration of the class CApAccessPointItem
williamr@2: *
williamr@2: */
williamr@2: 
williamr@2: 
williamr@2: #ifndef ACCESSPOINTITEM_H
williamr@2: #define ACCESSPOINTITEM_H
williamr@2: 
williamr@2: // Deprecation warning
williamr@2: #warning This header file has been deprecated. Will be removed in one of the next SDK releases.
williamr@2: 
williamr@2:  
williamr@2: //  INCLUDES
williamr@2: #include <etelmm.h>
williamr@2: #include <cdbcols.h>
williamr@2: #include <nifvar.h>
williamr@2: #include <ApEngineVer.h>
williamr@2: #include <ApEngineConsts.h>
williamr@2: 
williamr@2: 
williamr@2: // DATA TYPES
williamr@2: /**
williamr@2: * This enum is used to identify the data when reading or writing
williamr@2: * CApAccessPointItem data.
williamr@2: * <br>Field types:
williamr@2: * <br>
williamr@2: *    8 - bit text:
williamr@2: * <br>ReadTextL( const TApMember aColumn, TDes8& aValue )
williamr@2: * <br>WriteTextL( const TApMember aColumn, const TDesC8& aValue )
williamr@2: * <br>  EApIspIfCallbackInfo
williamr@2: * <br>  EApIspInitString
williamr@2: * <br>
williamr@2: * <br>
williamr@2: *    16-bit text:
williamr@2: * <br>ReadTextL( const TApMember aColumn, TDes16& aValue )
williamr@2: * <br>WriteTextL( const TApMember aColumn, const TDesC16& aValue )
williamr@2: * <br>  EApWapAccessPointName
williamr@2: * <br>  EApWapCurrentBearer
williamr@2: * <br>  EApWapGatewayAddress
williamr@2: * <br>  EApWapServiceCentreAddress
williamr@2: * <br>  EApIapName
williamr@2: * <br>  EApIapServiceType
williamr@2: * <br>  EApIspName
williamr@2: * <br>  EApIspDescription
williamr@2: * <br>  EApIspDefaultTelNumber
williamr@2: * <br>  EApIspLoginName
williamr@2: * <br>  EApIspLoginPass
williamr@2: * <br>  EApIspIfName
williamr@2: * <br>  EApGprsIfName
williamr@2: * <br>  EApIspIfParams
williamr@2: * <br>  EApGprsIfParams
williamr@2: * <br>  EApIspIfNetworks
williamr@2: * <br>  EApGprsIfNetworks
williamr@2: * <br>  EApIspIfAuthName
williamr@2: * <br>  EApGprsIfAuthName
williamr@2: * <br>  EApIspIfAuthPass
williamr@2: * <br>  EApGprsIfAuthPassword
williamr@2: * <br>  EApIspIPAddr
williamr@2: * <br>  EApGprsIpAddr
williamr@2: * <br>  EApIspIPNetMask
williamr@2: * <br>  EApGprsIpNetMask
williamr@2: * <br>  EApIspIPGateway
williamr@2: * <br>  EApGprsIpGateway
williamr@2: * <br>  EApIspIPNameServer1
williamr@2: * <br>  EApGprsIPNameServer1
williamr@2: * <br>  EApIspIPNameServer2
williamr@2: * <br>  EApGprsIPNameServer2
williamr@2: * <br>  EApGprsPdpAddress
williamr@2: * <br>  EApProxyProtocolName
williamr@2: * <br>  EApNetworkName
williamr@2: * <br>  EApProxyLoginName
williamr@2: * <br>  EApProxyLoginPass
williamr@2: * <br>  EApIP6NameServer1
williamr@2: * <br>  EApIP6NameServer2
williamr@2: * <br>  EApLanBearerName
williamr@2: * <br>
williamr@2: * <br>Long text, 16 bit:
williamr@2: * <br>const HBufC* ReadConstLongTextL( const TApMember aColumn )
williamr@2: * <br>WriteLongTextL( const TApMember aColumn, const TDesC& aValue )
williamr@2: * <br>  EApWapStartPage
williamr@2: * <br>  EApIspLoginScript
williamr@2: * <br>  EApGprsAccessPointName
williamr@2: * <br>  EApProxyServerAddress
williamr@2: * <br>  EApProxyExceptions
williamr@2: * <br>
williamr@2: * <br>Uint:
williamr@2: * <br>ReadUint( const TApMember aColumn, TUint32& aValue )
williamr@2: * <br>WriteUint( const TApMember aColumn, const TUint32& aValue )
williamr@2: * <br>  EApWapAccessPointID
williamr@2: 
williamr@2: // DEPRECATED
williamr@2: * <br>  EApWapIsp
williamr@2: 
williamr@2: // DEPRECATED
williamr@2: * <br>  EApWapChargecard
williamr@2: 
williamr@2: * <br>  EApWapIap
williamr@2: 
williamr@2: // DEPRECATED
williamr@2: * <br>  EApWapIspType
williamr@2: 
williamr@2: * <br>  EApIapServiceId
williamr@2: * <br>  EApIapChargecard
williamr@2: * <br>  EApIspIspType
williamr@2: * <br>  EApIspAuthRetries
williamr@2: * <br>  EApGprsIfAuthRetries
williamr@2: * <br>  EApIspIfCallbackType
williamr@2: * <br>  EApIspCallBackTimeOut
williamr@2: * <br>  EApIspBearerName
williamr@2: * <br>  EApIspBearerSpeed
williamr@2: * <br>  EApIspBearerCE
williamr@2: * <br>  EApIspBearerType
williamr@2: * <br>  EApIspBearerCallTypeIsdn
williamr@2: * <br>  EApIspChannelCoding
williamr@2: * <br>  EApIspAIUR
williamr@2: * <br>  EApIspRequestedTimeSlots
williamr@2: * <br>  EApIspMaximumTimeSlots
williamr@2: * <br>  EApGprsPdpType
williamr@2: * <br>  EApGprsReqPrecedence
williamr@2: * <br>  EApGprsReqDelay
williamr@2: * <br>  EApGprsReqReliability
williamr@2: * <br>  EApGprsReqPeakThroughput
williamr@2: * <br>  EApGprsReqMeanPeakThroughput
williamr@2: * <br>  EApGprsMinPrecedence
williamr@2: * <br>  EApGprsMinDelay
williamr@2: * <br>  EApGprsMinReliability
williamr@2: * <br>  EApGprsMinPeakThroughput
williamr@2: * <br>  EApGprsMinMeanThroughput
williamr@2: * <br>  EApWapWspOption
williamr@2: * <br>  EApIspBearerCallTypeIsdn
williamr@2: * <br>  EApProxyPortNumber
williamr@2: * <br>  EApNetworkID
williamr@2: * <br>  EApWapProxyPort
williamr@2: * <br>  EApIapBearerService
williamr@2: * <br>  EApIapBearerID
williamr@2: * <br>
williamr@2: * <br>Bool:
williamr@2: * <br>ReadBool( const TApMember aColumn, TBool& aValue )
williamr@2: * <br>WriteBool( const TApMember aColumn, const TBool& aValue )
williamr@2: * <br>  EApWapSecurity
williamr@2: * <br>  EApIspDialResolution
williamr@2: * <br>  EApIspUseLoginScript
williamr@2: * <br>  EApIspPromptForLogin
williamr@2: * <br>  EApIspDisplayPCT
williamr@2: * <br>  EApIspIfPromptForAuth
williamr@2: * <br>  EApGprsIfPromptForAuth
williamr@2: * <br>  EApIspIfCallbackEnabled
williamr@2: * <br>  EApIspIPAddrFromServer
williamr@2: * <br>  EApGprsIpAddrFromServer
williamr@2: * <br>  EApIspIPDnsAddrFromServer
williamr@2: * <br>  EApGprsIpDnsAddrFromServer
williamr@2: * <br>  EApIspEnableIpHeaderComp
williamr@2: * <br>  EApGprsHeaderCompression
williamr@2: * <br>  EApIspEnableLCPExtensions
williamr@2: * <br>  EApGprsEnableLCPExtensions
williamr@2: * <br>  EApIspDisablePlainTextAuth
williamr@2: * <br>  EApGprsDisablePlainTextAuth
williamr@2: * <br>  EApIspEnableSWCompression
williamr@2: * <br>  EApGprsDataCompression
williamr@2: * <br>  EApGprsUseAnonymAccess
williamr@2: * <br>  EApIsReadOnly
williamr@2: * <br>  EApProxyUseProxy
williamr@2: * <br>  EApHasProxySettings
williamr@2: * <br>  EApIP6DNSAddrFromServer
williamr@2: */
williamr@2: enum TApMember
williamr@2:     {
williamr@2:     // WAP Access Point Table
williamr@2:     EApWapAccessPointID,            ///< The Uid of the access point.
williamr@2:                                     ///< READ ONLY, assigned by the database.
williamr@2:     EApWapAccessPointName,          ///< The name of the access point
williamr@2:     EApWapCurrentBearer,            ///< Indicates the name of the table from
williamr@2:                                     ///< which to read the bearer information
williamr@2:     EApWapStartPage,                ///< WAP start page URL, LONG TEXT!
williamr@2: 
williamr@2:     // WAP Common (present in both tables)
williamr@2:     EApWapGatewayAddress,           ///< WAP gateway address (IP address)
williamr@2:     EApWapWspOption,                ///< Enum value indicating whether
williamr@2:                                     ///< connection-oriented or connectionless
williamr@2:                                     ///< API should be used.
williamr@2:                                     ///< Type is TCommsDbWapWspOption.
williamr@2:     EApWapSecurity,                 ///< Attepmt secure WTLS connection to
williamr@2:                                     ///< the gateway
williamr@2: 
williamr@2:     // WAP IP Bearer Table
williamr@2: //* DEPRECATED
williamr@2:     EApWapIsp,                      ///< Identifier of the ISP to use if this
williamr@2:                                     ///< is an ISP type database
williamr@2: //* DEPRECATED
williamr@2:     EApWapChargecard,               ///< Identifier for the chargecard to use
williamr@2:                                     ///< if this is an ISP type database
williamr@2:     EApWapIap,                      ///< Identifier of a record in the IAP
williamr@2:                                     ///< table to be used if this is an IAP
williamr@2:                                     ///< type database
williamr@2: //* DEPRECATED
williamr@2:     EApWapIspType,                  ///< Enum value indicating whether IAP/ISP
williamr@2:                                     ///< is a dial in or a dial out
williamr@2: 
williamr@2:     // WAP SMS Bearer Table
williamr@2:     // EApSmsWapGatewayAddress is mapped to EApWapGatewayAddress,
williamr@2:     // different enum needed only for being able to
williamr@2:     // distinguish when editing...
williamr@2: 
williamr@2:     // IAP Table
williamr@2:     EApIapName,                     ///< The name of this IAP
williamr@2:     EApIapServiceType,              ///< Name of service table in this IAP
williamr@2:     EApIapServiceId,                ///< Identifier of service in this IAP
williamr@2:     EApIapChargecard,               ///< Identifier of the chargecard in
williamr@2:                                     ///< this IAP
williamr@2: 
williamr@2:     // ISP table
williamr@2:     EApIspName,                     ///< The name of this ISP
williamr@2:     EApIspDescription,              ///< Application's description of this ISP
williamr@2:     EApIspIspType,                  ///< Enum value indicating ISP type, e.g.
williamr@2:                                     ///< Internet ISP, WAP Isp.TCommsDbIspType.
williamr@2:     EApIspDefaultTelNumber,         ///< Default phone number
williamr@2:     EApIspDialResolution,           ///< Perform dialing resolution for default
williamr@2:                                     ///< phone number?
williamr@2:     EApIspUseLoginScript,           ///< Use login script?
williamr@2:     EApIspLoginScript,              ///< Login script (used only if Use Login
williamr@2:                                     ///< Script is true), LONG TEXT.
williamr@2:     EApIspPromptForLogin,           ///< Prompt user for username and password?
williamr@2:     EApIspLoginName,                ///< Login name
williamr@2:     EApIspLoginPass,                ///< Login password
williamr@2:     EApIspDisplayPCT,               ///< Display PCT (without scanning script
williamr@2:                                     ///< for READ command) UNUSED, always FALSE
williamr@2:     EApIspIfName,                   ///< Interface name
williamr@2:     EApIspIfParams,                 ///< Interface parameter string
williamr@2:     EApIspIfNetworks,               ///< Comma separated list of network
williamr@2:                                     ///< protocols
williamr@2:     EApIspIfPromptForAuth,          ///< Prompt user for authentication
williamr@2:                                     ///< username and password?
williamr@2:     EApIspIfAuthName,               ///< Authentication username used by PPP
williamr@2:     EApIspIfAuthPass,               ///< Authentication password used by PPP
williamr@2:     EApIspAuthRetries,              ///< Number of times to retry
williamr@2:                                     ///< authentication if it fails
williamr@2:     EApIspIfCallbackEnabled,        ///< Is callback enabled?
williamr@2:     EApIspIfCallbackType,           ///< Enum value indicating the type of
williamr@2:                                     ///< callback (if enabled).
williamr@2:                                     ///< enum TCallbackAction.
williamr@2:     EApIspIfCallbackInfo,           ///< Info for callback request (if enabled)
williamr@2:                                     ///< 8-bit text field.
williamr@2:     EApIspCallBackTimeOut,          ///< Time to wait for callback in
williamr@2:                                     ///< microseconds (if enabled)
williamr@2:     EApIspIPAddrFromServer,         ///< Get IP address from server?
williamr@2:     EApIspIPAddr,                   ///< IP address of interface
williamr@2:     EApIspIPNetMask,                ///< IP net mask of interface
williamr@2:     EApIspIPGateway,                ///< IP address of gateway
williamr@2:     EApIspIPDnsAddrFromServer,      ///< Get DNS address from server?
williamr@2:     EApIspIPNameServer1,            ///< IP address of primary name server
williamr@2:     EApIspIPNameServer2,            ///< IP address of secondary name server
williamr@2:     EApIspEnableIpHeaderComp,       ///< Enable IP header compression?
williamr@2:     EApIspEnableLCPExtensions,      ///< Enable LCP extensions?
williamr@2:     EApIspDisablePlainTextAuth,     ///< Disable plain text authentication?
williamr@2:     EApIspEnableSWCompression,      ///< Enable software compression?
williamr@2:     EApIspBearerName,               ///< Enum value specifying the name of the
williamr@2:                                     ///< bearer, e.g. Asunchronous Modem,
williamr@2:                                     ///< RBasicGsmCall::TBearerName
williamr@2:     EApIspBearerSpeed,              ///< Enum value specifying the bearer speed
williamr@2:                                     ///< TApCallSpeed.
williamr@2:     EApIspBearerCallTypeIsdn,       ///< call type is ISDN or Analogue...
williamr@2:     EApIspBearerCE,                 ///< Enum value specifying the bearer CE,
williamr@2:                                     ///< RBasicGsmCall::TBearerCE
williamr@2:     EApIspInitString,               ///< Modem initialization string to be used
williamr@2:                                     ///< when this ISP is in use.This string
williamr@2:                                     ///< will be copied into the
williamr@2:                                     ///< MODEM_ISP_INIT_STRING field by
williamr@2:                                     ///< NetDial. 8-bit text field.
williamr@2:     EApIspBearerType,               ///< Enum value indicating connection type
williamr@2:                                     ///< (CSD or HSCSD), TCommsDbBearerType
williamr@2:     EApIspChannelCoding,            ///< Enum value specifying HSCSD channel
williamr@2:                                     ///< coding
williamr@2:     EApIspAIUR,                     ///< Enum value specifying AIUR for HSCSD
williamr@2:     EApIspRequestedTimeSlots,       ///< Requested number of time slots for
williamr@2:                                     ///< HSCSD
williamr@2:     EApIspMaximumTimeSlots,         ///< Maximum number of time slots for HSCSD
williamr@2:                                     ///< which could be requested during this
williamr@2:                                     ///< connection
williamr@2: 
williamr@2:     EApGprsAccessPointName,         ///< Access Point Name, LONG TEXT!
williamr@2:     EApGprsPdpType,                 ///< PDP type
williamr@2:     EApGprsPdpAddress,              ///< PDP address
williamr@2:     EApGprsReqPrecedence,           ///< Requested quality of service
williamr@2:                                     ///< precedence class
williamr@2:     EApGprsReqDelay,                ///< Requested quality of service
williamr@2:                                     ///< delay class
williamr@2:     EApGprsReqReliability,          ///< Requested quality of service
williamr@2:                                     ///< reliability class
williamr@2:     EApGprsReqPeakThroughput,       ///< Requested quality of service
williamr@2:                                     ///< peak throughput class
williamr@2:     EApGprsReqMeanPeakThroughput,   ///< Requested quality of service
williamr@2:                                     ///< mean throughput class
williamr@2:     EApGprsMinPrecedence,           ///< Minimum quality of service
williamr@2:                                     ///< precedence class
williamr@2:     EApGprsMinDelay,                ///< Minimum quality of service
williamr@2:                                     ///< delay class
williamr@2:     EApGprsMinReliability,          ///< Minimum quality of service
williamr@2:                                     ///< reliability class
williamr@2:     EApGprsMinPeakThroughput,       ///< Minimum quality of service
williamr@2:                                     ///< peak throughput class
williamr@2:     EApGprsMinMeanThroughput,       ///< Minimum quality of service
williamr@2:                                     ///< mean throughput class
williamr@2:     EApGprsUseAnonymAccess,         ///< Use anonymous access on?
williamr@2: 
williamr@2:     // followings are mapped to ISP... fields
williamr@2:     EApGprsDataCompression,         ///< Data compression on?
williamr@2:     EApGprsHeaderCompression,       ///< IP header compression on?
williamr@2:     EApGprsIfName,                  ///< Interface name
williamr@2:     EApGprsIfParams,                ///< Interface parameter string
williamr@2:     EApGprsIfNetworks,              ///< Comma separated list of network
williamr@2:                                     ///< protocols
williamr@2:     EApGprsIfPromptForAuth,         ///< Prompt user for authentication
williamr@2:                                     ///< username and password?
williamr@2:     EApGprsIfAuthName,              ///< Authentication username used by PPP
williamr@2:     EApGprsIfAuthPassword,          ///< Authentication password used by PPP
williamr@2:     EApGprsIfAuthRetries,           ///< Number of times to retry
williamr@2:                                     ///< authentication if it fails
williamr@2:     EApGprsIpNetMask,               ///< IP net mask of interface
williamr@2:     EApGprsIpGateway,               ///< IP address of gateway
williamr@2:     EApGprsIpAddrFromServer,        ///< Get IP adresses (for Symbian OS)
williamr@2:                                     ///< from server?
williamr@2:     EApGprsIpAddr,                  ///< IP address of Symbian OS
williamr@2:     EApGprsIpDnsAddrFromServer,     ///< Get DNS addresses from server?
williamr@2:     EApGprsIPNameServer1,           ///< IP address of primary name server
williamr@2:     EApGprsIPNameServer2,           ///< IP address of secondary name server
williamr@2:     EApGprsEnableLCPExtensions,     ///< Enable LCP extension?
williamr@2:     EApGprsDisablePlainTextAuth,    ///< Disable plain text authentication?
williamr@2:     EApIsReadOnly                   ///< Is the current record read only?
williamr@2: 
williamr@2: 
williamr@2: // expanding this enum is safe and will not cause any trouble as all public 
williamr@2: // part of this module uses it as a const parameter and NEVER as 
williamr@2: // a return value, therefore non-aware clients will NEVER meet with the new
williamr@2: // ones, thus it can not cause any problems that they do not expect them...
williamr@2:     ,
williamr@2:     EApProxyServerAddress,          ///< Proxy server address, long text
williamr@2:     EApProxyProtocolName,           ///< Proxy protocol name, Text
williamr@2:     EApProxyPortNumber,             ///< Proxy port number,  TUint32
williamr@2:     EApProxyUseProxy,               ///< Use proxy server?, TBool 
williamr@2:     EApProxyExceptions,             ///< ';' separated list of addr. for wich 
williamr@2:                                     ///< the server should not be used. 
williamr@2:                                     ///< Long text
williamr@2:     EApHasProxySettings,            ///< Has proxy settings? READ ONLY.
williamr@2:     EApNetworkID,                   ///< The network ID
williamr@2:     EApNetworkName,                 ///< The network name
williamr@2: 
williamr@2:     EApWapProxyPort,                ///< The wap proxy port number
williamr@2:     EApProxyLoginName,              ///< The proxy login name
williamr@2:     EApProxyLoginPass,              ///< The proxy login password
williamr@2:     EApIapBearerService,            ///< Bearer service
williamr@2: 
williamr@2:     EApIP6DNSAddrFromServer,        ///< Get IPv6 DNS addresses from server?
williamr@2:     EApIP6NameServer1,              ///< IP address of primary name server
williamr@2:     EApIP6NameServer2,              ///< IP address of secondary name server
williamr@2: 
williamr@2:     // CDMA2000
williamr@2:     EApCdmaIwfName,                 ///< IWF name, Text
williamr@2:     EApCdmaServiceOption,           ///< Service Option, TUint32
williamr@2:     EApCdmaPdpType,                 ///< PDP type, TUin32
williamr@2:     EApCdmaPdpAddress,              ///< PDP address, Text
williamr@2:     EApCdmaReqFwdPriority,          ///< Requested forward priority, TUint32
williamr@2:     EApCdmaReqRevPriority,          ///< Requested reverse priority, TUint32
williamr@2:     EApCdmaReqFwdBitrate,           ///< Requested forward bitrate, TUint32
williamr@2:     EApCdmaReqRevBitrate,           ///< Requested reverse bitrate, TUint32
williamr@2:     EApCdmaReqFwdLoss,              ///< Req. forward frame loss rate, TUint32
williamr@2:     EApCdmaReqRevLoss,              ///< Req. reverse frame loss rate, TUint32
williamr@2:     EApCdmaReqFwdMaxDelay,          ///< Requested forward delay, TUint32
williamr@2:     EApCdmaReqRevMaxDelay,          ///< Requested reverse delay, TUint32
williamr@2:     EApCdmaMinFwdBitrate,           ///< Min. acceptable fwd bitrate, TUint32
williamr@2:     EApCdmaMinRevBitrate,           ///< Min. acceptable rev bitrate, TUint32
williamr@2:     EApCdmaAccptFwdLoss,            ///< Max. acc. fwd frame loss rate, TUint32
williamr@2:     EApCdmaAccptRevLoss,            ///< Max. acc. rev frame loss rate, TUint32
williamr@2:     EApCdmaAccptFwdMaxDelay,        ///< Max. acceptable forward delay, TUint32
williamr@2:     EApCdmaAccptRevMaxDelay,        ///< Max. acceptable reverse delay, TUint32
williamr@2: 
williamr@2:     // CDMA2000, mapped to ISP... fields
williamr@2:     EApCdmaDataCompression,         ///< Data compression on? TBool
williamr@2:     EApCdmaHeaderCompression,       ///< IP header compression on? TBool
williamr@2:     EApCdmaAnonymousAccess,         ///< Use anonymous access on? TBool
williamr@2:     EApCdmaIfName,                  ///< Interface name
williamr@2:     EApCdmaIfParams,                ///< Interface parameter string
williamr@2:     EApCdmaIfNetworks,              ///< Comma separated list of network
williamr@2:                                     ///< protocols
williamr@2:     EApCdmaIfPromptForAuth,         ///< Prompt user for authentication
williamr@2:                                     ///< username and password?
williamr@2:     EApCdmaIfAuthName,              ///< Authentication username used by PPP
williamr@2:     EApCdmaIfAuthPassword,          ///< Authentication password used by PPP
williamr@2:     EApCdmaIfAuthRetries,           ///< Number of times to retry
williamr@2:                                     ///< authentication if it fails
williamr@2:     EApCdmaIpNetMask,               ///< IP net mask of interface
williamr@2:     EApCdmaIpGateway,               ///< IP address of gateway
williamr@2:     EApCdmaIpAddrFromServer,        ///< Get IP adresses (for Symbian OS)
williamr@2:                                     ///< from server?
williamr@2:     EApCdmaIpAddr,                  ///< IP address of Symbian OS
williamr@2:     EApCdmaIpDnsAddrFromServer,     ///< Get DNS addresses from server?
williamr@2:     EApCdmaIPNameServer1,           ///< IP address of primary name server
williamr@2:     EApCdmaIPNameServer2,           ///< IP address of secondary name server
williamr@2:     EApCdmaEnableLCPExtensions,     ///< Enable LCP extension?
williamr@2:     EApCdmaDisablePlainTextAuth,    ///< Disable plain text authentication?
williamr@2: 
williamr@2:     // CDMA2000
williamr@2:     EApCdmaApType,                  ///< Internet / WAP or both? TUint32
williamr@2:     EApCdmaQosWarningTimeout,       ///< Notify user if the requested QOS
williamr@2:                                     ///< cannot be satisfied for this time in
williamr@2:                                     ///< microseconds, TUint32
williamr@2:     EApCdmaRlpMode,                 ///< Transparent or non-transparent
williamr@2:                                     ///< radio link protocol, TUint32
williamr@2:     // CDMA2000 deprecated Mobile IP fields
williamr@2:     EApCdmaMip,                     ///< Attempt to use mobile IP, TBool
williamr@2:     EApCdmaHomeAgentAddress,        ///< Home Agent address, Text
williamr@2:     EApCdmaMipTimeout,              ///< A normal reconnect (informing the
williamr@2:                                     ///< user) takes place if both the PPP link
williamr@2:                                     ///< drops and a change in SID or NID is
williamr@2:                                     ///< received within this time in
williamr@2:                                     ///< milliseconds, TUint32
williamr@2:     // CDMA2000 specific CDMA parameters provisioned through OTA and defined
williamr@2:     // in TIA-683B section 3.5.8
williamr@2:     // These fields replace the old Mobile IP fields (above).
williamr@2:     EApCdmaNaiType,                 ///< Type of NAI, TUint32
williamr@2:     EApCdmaSimpleIpAuthAlgorithm,   ///< SimpleIP auth.algorithm, TUint32
williamr@2:     EApCdmaSimpleIpPapSsHandle,     ///< SimpleIP PAP shared secret handle,
williamr@2:                                     ///< TUint32
williamr@2:     EApCdmaSimpleIpChapSsHandle,    ///< SimpleIP CHAP shared secret handle,
williamr@2:                                     ///< TUint32
williamr@2:     EApCdmaMipTBit,                 ///< Reverse-tunneling reqd flag, TUint32
williamr@2:     EApCdmaMipHomeAddress,          ///< Home address, Text
williamr@2:     EApCdmaMipPrimaryHomeAgent,     ///< IP address of mobile node's
williamr@2:                                     ///< primary home agent, Text
williamr@2:     EApCdmaMipSecondaryHomeAgent,   ///< IP address of mobile node's
williamr@2:                                     ///< secondary home agent, Text
williamr@2:     EApCdmaMipMnAaaAuthAlgorithm,   ///< MN-AAA auth algorithm, TUint32
williamr@2:     EApCdmaMipMnAaaSpi,             ///< MN-AAA security param index, TUint32
williamr@2:     EApCdmaMipMnAaaSsHandle,        ///< MN-AAA shared secret handle, TUint32
williamr@2:     EApCdmaMipMnHaAuthAlgorithm,    ///< MN-HA auth algorithm, TUint32
williamr@2:     EApCdmaMipMnHaSpi,              ///< MN-HA security param index, TUint32
williamr@2:     EApCdmaMipMnHaSsHandle,         ///< MN-HA shared secret handle, TUint32
williamr@2:     
williamr@2: 
williamr@2:     // WLAN specific fields
williamr@2:     EApWlanNetworkName,             ///< The network name, Text
williamr@2:     EApWlanNetworkMode,             ///< Gives network mode, TUint32
williamr@2:     EApWlanSecurityMode,            ///< The security mode, TUint32
williamr@2: 
williamr@2:     // WLAN, mapped to ISP... fields
williamr@2:     EApWlanIfNetworks,              ///< Comma separated list of network
williamr@2:                                 ///< protocols
williamr@2:     EApWlanIfPromptForAuth,         ///< Prompt user for authentication
williamr@2:                                 ///< username and password?
williamr@2:     EApWlanIfAuthName,              ///< Authentication username used by PPP
williamr@2:     EApWlanIfAuthPassword,          ///< Authentication password used by PPP
williamr@2:     EApWlanIfAuthRetries,           ///< Number of times to retry
williamr@2:                                 ///< authentication if it fails
williamr@2:     EApWlanIpNetMask,               ///< IP net mask of interface
williamr@2:     EApWlanIpGateway,               ///< IP address of gateway
williamr@2:     EApWlanIpAddrFromServer,        ///< Get IP adresses (for Symbian OS)
williamr@2:                                     ///< from server?
williamr@2:     EApWlanIpAddr,                  ///< IP address of Symbian OS
williamr@2:     EApWlanIpDnsAddrFromServer,     ///< Get DNS addresses from server?
williamr@2:     EApWlanIPNameServer1,           ///< IP address of primary name server
williamr@2:     EApWlanIPNameServer2,           ///< IP address of secondary name server
williamr@2:     EApWlanSettingsId,              ///< COMMDB_ID of the WLAN settings,
williamr@2:                                     ///< TUint32
williamr@2:     EApWlanScanSSID,                ///< TBool, whether need to scan the SSID
williamr@2:     EApWlanChannelId,               ///< In ad-hoc network mode, the channel  
williamr@2:                                     ///< ID, TUint32
williamr@2:     EApLanBearerName,               ///< The name of the LAN bearer
williamr@2:     EApIapBearerID,                 ///< UID of the bearer record (LAN/Modem)
williamr@2:     EApIapBearerType,               ///< The name of the iap bearer 
williamr@2:                                     ///< table (LAN/Modem)
williamr@2:     // some defines for UI ONLY, NOT TO BE USED BY ANYONE ELSE!!!
williamr@2:     EApIpv4Settings = 0x00010000,
williamr@2:     EApIpv6Settings,
williamr@2:     EApWlanSecuritySettings         ///< The security settings launcher
williamr@2:     };
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: // CONSTANTS
williamr@2: // D E P R E C A T E D,  please do not use it!!!!!!!!!!
williamr@2: // can not remove as it was part of the public API...
williamr@2: const TInt KApMemberNum = EApGprsDisablePlainTextAuth+1;
williamr@2: 
williamr@2: // FORWARD
williamr@2: class CApItemExtra;
williamr@2: 
williamr@2: // CLASS DECLARATION
williamr@2: 
williamr@2: 
williamr@2: /**
williamr@2: * CApAccessPointItem is used to exchange data between engine and client.
williamr@2: * It holds the information for an access point including WAP, IAP, ISP
williamr@2: * (if present & applies).
williamr@2: * This class uses the same approach as CommDB to read and write data: it
williamr@2: * has functions for each data type implemented. To read or write the data,
williamr@2: * we have to know the data type and the enum name of the 'column'.
williamr@2: * The column values has the names of the database columns with the 'EAp'
williamr@2: * prefix. The reason for this (not using the database column descriptors)
williamr@2: * is performance. It is much faster to compare enum values than literals.
williamr@2: */
williamr@2: class CApAccessPointItem :public CBase
williamr@2:     {
williamr@2: 
williamr@2:     public:  // Constructors and destructor
williamr@2:         /**
williamr@2:         * Two-phased constructor. Leaves on failure, places instance
williamr@2:         * on cleanup stack. Instance is initialised to default values.
williamr@2:         * The created instance is suitable for passing to CApDataHandler's
williamr@2:         * functions, contains all necessary information.
williamr@2:         * @return The constructed CApAccessPointItem.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C static CApAccessPointItem* NewLC();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Destructor.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C virtual ~CApAccessPointItem();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Copies the data from another CApAccessPointItem.
williamr@2:         * Substitute for the "assignment operator". It requires allocation
williamr@2:         * thus can leave.
williamr@2:         * Wap Access Point Uid is not copied.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C void CopyFromL( const CApAccessPointItem& aCopyFrom  );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Equality operator. Wap Access Point Uid is not counted.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TBool operator==( const CApAccessPointItem& aitem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Inequality operator. Wap Access Point Uid is not counted.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TBool operator!=( const CApAccessPointItem& aitem ) const;
williamr@2: 
williamr@2: 
williamr@2:     protected:      // Constructors
williamr@2: 
williamr@2:         /**
williamr@2:         * C++ default constructor.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C CApAccessPointItem();
williamr@2: 
williamr@2:         /**
williamr@2:         * Second-phase constructor.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C void ConstructL();
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     public: // New functions
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function reads up an 8-bit text value from the specified column.
williamr@2:         * @param aColumn Enum value indicating the column to read.
williamr@2:         * @param aValue Reference to an 8-bit descriptor to hold the value
williamr@2:         * @return no return value
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C void ReadTextL( const TApMember aColumn, TDes8& aValue );
williamr@2: 
williamr@2:         /**
williamr@2:         * This function reads up a 16-bit text value from the specified column.
williamr@2:         * @param aColumn Enum value indicating the column to read.
williamr@2:         * @param aValue Reference to a 16-bit descriptor to hold the value
williamr@2:         * @return no return value
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C void ReadTextL( const TApMember aColumn, TDes16& aValue );
williamr@2: 
williamr@2:         /**
williamr@2:         * NOTE: This function is deprecated. Use ReadConstLongTextL!
williamr@2:         * This function reads up a long text value from the specified column.
williamr@2:         * The ownership is not passed to the caller. It means that the caller
williamr@2:         * should not delete the received value.
williamr@2:         * If the caller must take the ownership for any reason, must make a
williamr@2:         * copy and use that and delete the copy when no longer needed.
williamr@2:         * @param aColumn Enum value indicating the column to read.
williamr@2:         * @return A HBufC* to the value.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C HBufC* ReadLongTextL( const TApMember aColumn );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function reads up a long text value from the specified column.
williamr@2:         * The ownership is not passed to the caller. It means that the caller
williamr@2:         * should not delete the received value.
williamr@2:         * If the caller must take the ownership for any reason, must make a
williamr@2:         * copy and use that and delete the copy when no longer needed.
williamr@2:         * @param aColumn Enum value indicating the column to read.
williamr@2:         * @return A const HBufC* to the value.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C const HBufC* ReadConstLongTextL( const TApMember aColumn );
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function reads the length of the text in the specified column.
williamr@2:         * @param aColumn Enum value indicating the column to read.
williamr@2:         * @return The length of the text in that column.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TUint32 ReadTextLengthL( const TApMember aColumn );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function reads up a TUint32 value from the specified column.
williamr@2:         * In case the given value was not written to the database,
williamr@2:         * it will return KErrValueUnspecified.
williamr@2:         * If the specified column does not exist (that is, not part of the
williamr@2:         * database structure), it will Panic in debug builds and it will
williamr@2:         * return KErrInvalidColumn in release builds without Panicking.
williamr@2:         * Panic is used in debug builds because it indicates a programming
williamr@2:         * error. In release, it 'notifies' the caller about the error through
williamr@2:         * the return value but enables system to continue operation.
williamr@2:         * @param aColumn Enum value indicating the column to read.
williamr@2:         * @param aValue A reference to a TUint32 to hold the value
williamr@2:         * @return Error code.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TInt ReadUint( const TApMember aColumn, TUint32& aValue );
williamr@2: 
williamr@2:         /**
williamr@2:         * This function reads up a boolean value from the specified column.
williamr@2:         * If the specified column does not exist (that is, not part of the
williamr@2:         * database structure), it will Panic in debug builds and it will
williamr@2:         * return KErrInvalidColumn in release builds without Panicking.
williamr@2:         * Panic is used in debug builds because it indicates a programming
williamr@2:         * error. In release, it 'notifies' the caller about the error through
williamr@2:         * the return value but enables system to continue operation.
williamr@2:         * @param aColumn Enum value indicating the column to read.
williamr@2:         * @param aValue A reference to a boolean to hold the value
williamr@2:         * @return Error code.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TInt ReadBool( const TApMember aColumn, TBool& aValue );
williamr@2: 
williamr@2: 
williamr@2:         // Update
williamr@2:         /**
williamr@2:         * This function writes an 8-bit text value to the specified column.
williamr@2:         * If the specified column does not exist (that is, not part of the
williamr@2:         * database structure), it will Panic in debug builds and it will
williamr@2:         * return KErrInvalidColumn in release builds without Panicking.
williamr@2:         * Panic is used in debug builds because it indicates a programming
williamr@2:         * error. In release, it 'notifies' the caller about the error through
williamr@2:         * the return value but enables system to continue operation.
williamr@2:         * This function can Leave if the copying of the text does not succeed.
williamr@2:         * Possible leave codes are the system leave codes.
williamr@2:         * @param aColumn Enum value indicating the column to write.
williamr@2:         * @param aValue Reference to an 8-bit text descriptor to the value
williamr@2:         * @return Error code.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TInt WriteTextL( const TApMember aColumn,
williamr@2:                                 const TDesC8& aValue );
williamr@2: 
williamr@2:         /**
williamr@2:         * This function writes a 16-bit text value to the specified column.
williamr@2:         * If the specified column does not exist (that is, not part of the
williamr@2:         * database structure), it will Panic in debug builds and it will
williamr@2:         * return KErrInvalidColumn in release builds without Panicking.
williamr@2:         * Panic is used in debug builds because it indicates a programming
williamr@2:         * error. In release, it 'notifies' the caller about the error through
williamr@2:         * the return value but enables system to continue operation.
williamr@2:         * This function can Leave if the copying of the text does not succeed.
williamr@2:         * @param aColumn Enum value indicating the column to write.
williamr@2:         * @param aValue Reference to a 16-bit text descriptor to the value
williamr@2:         * @return Error code.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TInt WriteTextL( const TApMember aColumn,
williamr@2:                                 const TDesC16& aValue );
williamr@2: 
williamr@2:         /**
williamr@2:         * This function writes a long text value to the specified column.
williamr@2:         * If the specified column does not exist (that is, not part of the
williamr@2:         * database structure), it will Panic in debug builds and it will
williamr@2:         * return KErrInvalidColumn in release builds without Panicking.
williamr@2:         * Panic is used in debug builds because it indicates a programming
williamr@2:         * error. In release, it 'notifies' the caller about the error through
williamr@2:         * the return value but enables system to continue operation.
williamr@2:         * This function can Leave if the copying of the text does not succeed.
williamr@2:         * @param aColumn Enum value indicating the column to write.
williamr@2:         * @param aValue Reference to a 16-bit text descriptor to the value
williamr@2:         * @return Error code.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TInt WriteLongTextL( const TApMember aColumn,
williamr@2:                                     const TDesC& aValue );
williamr@2: 
williamr@2:         /**
williamr@2:         * This function writes a TUint32 value to the specified column.
williamr@2:         * If the specified column does not exist (that is, not part of the
williamr@2:         * database structure), it will Panic in debug builds and it will
williamr@2:         * return KErrInvalidColumn in release builds without Panicking.
williamr@2:         * Panic is used in debug builds because it indicates a programming
williamr@2:         * error. In release, it 'notifies' the caller about the error through
williamr@2:         * the return value but enables system to continue operation.
williamr@2:         * @param aColumn Enum value indicating the column to write.
williamr@2:         * @param aValue A const reference to a TUint32 value
williamr@2:         * @return Error code.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TInt WriteUint( const TApMember aColumn,
williamr@2:                                 const TUint32& aValue );
williamr@2: 
williamr@2:         /**
williamr@2:         * This function writes a boolean value to the specified column.
williamr@2:         * If the specified column does not exist (that is, not part of the
williamr@2:         * database structure), it will Panic in debug builds and it will
williamr@2:         * return KErrInvalidColumn in release builds without Panicking.
williamr@2:         * Panic is used in debug builds because it indicates a programming
williamr@2:         * error. In release, it 'notifies' the caller about the error through
williamr@2:         * the return value but enables system to continue operation.
williamr@2:         * @param aColumn Enum value indicating the column to write.
williamr@2:         * @param aValue A const reference to a boolean value
williamr@2:         * @return Error code.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TInt WriteBool( const TApMember aColumn,
williamr@2:                                 const TBool& aValue );
williamr@2: 
williamr@2: 
williamr@2:         // Query
williamr@2:         // COMMON
williamr@2:         /**
williamr@2:         * This function returns the ID of the access point
williamr@2:         * @return The ID of this access point
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TUint32 WapUid() const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function returns the name of the connection
williamr@2:         * Ownership is not passed.
williamr@2:         * @return The name of the connection
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C const TDesC& ConnectionName() const;
williamr@2: 
williamr@2: 
williamr@2:         // WAP-spec.
williamr@2:         /**
williamr@2:         * This function returns the current WAP bearer for the access point
williamr@2:         * Ownership is not passed.
williamr@2:         * @return The current WAP bearer for the access point
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C const TDesC& WapBearer() const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function returns the bearer type for the current access point
williamr@2:         * @return The current bearer type for the access point
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TApBearerType BearerTypeL();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function sets the bearer type for the current access point
williamr@2:         * @param aBearer TApBearerType enum indicating the desired bearer type.
williamr@2:         * @return No return value.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C void SetBearerTypeL( TApBearerType aBearer );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function writes a 16-bit text value to the 'name' fields
williamr@2:         * of the access point.
williamr@2:         * This includes: WAP_ACCESS_POINT, IAP, Dial/in/out/Gprs In/Out
williamr@2:         * table's COMM_DB_NAME fields.
williamr@2:         * These fields are (by TApMember): EApWapAccessPointName, EApIapName,
williamr@2:         * EApIspName.
williamr@2:         * It is useful if we need to use same names.
williamr@2:         * @param aValue A const reference to a 16-bit text descriptor to
williamr@2:         * the value.
williamr@2:         * @return No return value.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C void SetNamesL( const TDesC16& aValue );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function checks the integrity of the CApAccessPointItem.
williamr@2:         * Currently checks:
williamr@2:         * IF WAP_IP_BEARER, WAP_ISP_TYPE conforms to IAP_SERVICE_TYPE
williamr@2:         * @return Boolean indicating whether the sanity check has
williamr@2:         * passed(ETrue) or not(EFalse)
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TBool SanityCheckOk();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * This function compares this and the passed CApAccessPointItem
williamr@2:         * whether they have the same ISP and bearer
williamr@2:         * Returns true if the APs have the same phone number
williamr@2:         * @param aItem a CApAccessPointItem to compare with
williamr@2:         * @return whether the APs have the same isp and bearer
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TBool HasSameIspAndBearerL( CApAccessPointItem& aItem );
williamr@2: 
williamr@2:         /**
williamr@2:         * This function returns whether the access point is read-only or not.
williamr@2:         * @return Whether the current access point is read-only or not.
williamr@2:         *
williamr@2:         * @deprecated
williamr@2:         */
williamr@2:         IMPORT_C TBool IsReadOnly() const;
williamr@2: 
williamr@2:     public: // public, not exported, available only inside the ApEngine dll
williamr@2:         /**
williamr@2:         * Returnes whether the given access point is a VPN ap or not.
williamr@2:         */
williamr@2:         TBool IsVpnAp() const;
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets the current access point as VPN or as normal AP.
williamr@2:         * Internal use only!
williamr@2:         * @param aIsVpn a TBool specifiyng that the current AP is VPN or not.
williamr@2:         */
williamr@2:         void SetVpnAp( TBool aIsVpn );
williamr@2: 
williamr@2:     private:
williamr@2:         /**
williamr@2:         * Returns whether a given member is specified (after reading it from
williamr@2:         * the DB) or not.
williamr@2:         * @param aMember The member we would like to knopw if it is specified 
williamr@2:         * or not.
williamr@2:         * @return whether a given member is specified (after reading it from
williamr@2:         * the DB) or not.
williamr@2:         */
williamr@2:         TBool Specified( TApMember aMember );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets a given member as specified or not
williamr@2:         * @param aMember The member to set
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void Specify( TApMember aMember, TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all WAP member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyWap( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all IP bearer member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyIpBearer( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all IAP member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyIAP( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all ISP member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyISP( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all GPRS member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyGPRS( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all CDMA member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyCDMA( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all WLAN member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyWLAN( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets all member as specified or not
williamr@2:         * @param aOn The value to set
williamr@2:         */
williamr@2:         void SpecifyAll( TBool aOn );
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets iGetDNSIPFromServer according the currently valid iPrimaryDNS
williamr@2:         * & iSecondaryDNS values. Called internally, after every setting of
williamr@2:         * the above two values
williamr@2:         */
williamr@2:         void SetDnsIpFromServer();
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets iIspIPAddrFromServer according the currently valid iIspIPAddr
williamr@2:         * value. Called internally, after every setting of iIspIPAddr values
williamr@2:         */
williamr@2:         void SetIpFromServer();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets iExt->iIpv6GetDNSIPFromServer according the currently valid 
williamr@2:         * iExt->iIpv6PrimaryDNS & iExt->iIpv6SecondaryDNS values.
williamr@2:         * Called internally, after every setting of the above two values
williamr@2:         */
williamr@2:         void SetDns6IpFromServer();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Reallocates a passed 16-bit descriptor. Passed descriptor is deleted,
williamr@2:         * new one is AllocL-ed
williamr@2:         * Passed descriptor MUST NOT BE on the CleanupStack
williamr@2:         * @param aDes The descriptor to hold the value
williamr@2:         * @param aValue The value to pass to the aDes descriptor.
williamr@2:         */
williamr@2:         void ReAllocL(HBufC*& aDes, const TDesC16& aValue);
williamr@2: 
williamr@2:         /**
williamr@2:         * Reallocates a passed 8-bit descriptor. Passed descriptor is deleted,
williamr@2:         * new one is AllocL-ed
williamr@2:         * Passed descriptor MUST NOT BE on the CleanupStack
williamr@2:         * @param aDes The descriptor to hold the value
williamr@2:         * @param aValue The value to pass to the aDes descriptor.
williamr@2:         */
williamr@2:         void ReAllocL(HBufC8*& aDes, const TDesC8& aValue);
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares THIS and the passed aItem.
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the item is equal with this or not
williamr@2:         */
williamr@2:         TBool DoCompareApL( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the WAP part of THIS and the passed aItem.
williamr@2:         * Does not compares IAP ID
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the WAP part is equal with this or not
williamr@2:         */
williamr@2:         TBool CompareWap( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the IAP part of THIS and the passed aItem.
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the IAP part is equal with this or not
williamr@2:         */
williamr@2:         TBool CompareIap( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the IsP part of THIS and the passed aItem.
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the ISP part is equal with this or not
williamr@2:         */
williamr@2:         TBool CompareIsp( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the Gprs part of THIS and the passed aItem.
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the GPRS part is equal with this or not
williamr@2:         */
williamr@2:         TBool CompareGprs( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the Cdma part of THIS and the passed aItem.
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the CDMA part is equal with this or not        
williamr@2:         */
williamr@2:         TBool CompareCdma( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the Wlan part of THIS and the passed aItem.
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the WLAN part is equal with this or not
williamr@2:         */
williamr@2:         TBool CompareWlan( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Removes leading 0s from the passed IP address.
williamr@2:         * @param aValue A descriptor holding the IP address to remove
williamr@2:         * leading 0s from
williamr@2:         * @return A newly allocated HBufC holding the resulting string.
williamr@2:         */
williamr@2:         HBufC* GetCleanIpAddressLC( const TDesC& aValue );
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Removes invalid chars e.g. space, () from the passed phone number.
williamr@2:         * (valid are 0,1,2,..9,p,w,+,*,#)
williamr@2:         * Strips pre- and postfixes, prefix separator is#,
williamr@2:         * postfix separators are p, w or +
williamr@2:         * @param aValue A descriptor holding the phone number
williamr@2:         * @return A newly allocated HBufC holding the resulting string.
williamr@2:         */
williamr@2:         HBufC* GetPlainPhoneNumberLC( const TDesC& aNumber );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the 'default phone number' (ISP dial-in number) of this
williamr@2:         * and the passed CApAccessPointItem
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return a TBool indicating whether the phone numbers are
williamr@2:         * the same or not.
williamr@2:         */
williamr@2:         TBool IsSamePhoneNumberL( CApAccessPointItem& aItem );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Removes invalid chars from the passed phone number
williamr@2:         * @param aIntext Text to remove invalid characters from phone number
williamr@2:         * @return a HBufC holding the new text
williamr@2:         */
williamr@2:         HBufC* RemoveInvalidPhoneCharsLC( const TDesC16& aInText );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Removes invalid chars from the passed text
williamr@2:         * Invalid chars are: TAB
williamr@2:         * @param aIntext Text to remove invalid characters from        
williamr@2:         * @return a HBufC16 holding the new text
williamr@2:         */
williamr@2:         HBufC* RemoveInvalidCharsLC( const TDesC16& aInText );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Removes invalid chars from the passed text
williamr@2:         * Invalid chars are: TAB
williamr@2:         * @param aIntext Text to remove invalid characters from        
williamr@2:         * @return a HBufC8 holding the new text
williamr@2:         */
williamr@2:         HBufC8* RemoveInvalidCharsLC( const TDesC8& aInText );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Compares the proxy data of this and the passed CApAccessPointItem.
williamr@2:         * @param aItem The item to compare this to
williamr@2:         * @return Whether the Proxy part is equal with this or not
williamr@2:         */
williamr@2:         TBool CompareProxy( const CApAccessPointItem& aItem ) const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns whether the Ap has proxy data or not.
williamr@2:         * @return Whether the Ap has proxy data or not.
williamr@2:         */
williamr@2:         TBool HasProxy() const;
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets the proxy flag.
williamr@2:         */
williamr@2:         void SetProxyFlag();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Limits the speed after changing e.g. bearer type
williamr@2:         */
williamr@2:         void LimitSpeedL();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Sets the IfNetworks value according to the bearer type and 
williamr@2:         * the IPv6 support availability. The required values are:
williamr@2:         * IPv4:
williamr@2:         *   GPRS/CDMA, pdptype ipv4 "ip",
williamr@2:         *   CSD                     "ip"
williamr@2:         *   HSCSD                   "ip"
williamr@2:         * IPv6:
williamr@2:         *   GPRS/CDMA, pdptype ipv4 "ip",
williamr@2:         *   GPRS/CDMA, pdptype ipv6 "ip6",
williamr@2:         *   CSD                     "ip,ip6"
williamr@2:         *   HSCSD                   "ip,ip6"
williamr@2:         *
williamr@2:         */
williamr@2:         void SetIfNetworksL();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Check if aColumn is supported.
williamr@2:         * @param aColumn Enum value indicating the column to check.
williamr@2:         * @return Whether the given member is supported or not
williamr@2:         */
williamr@2:         TBool IsSupported( TApMember aColumn );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Leave with KErrNotSupported if aColumn is not supported.
williamr@2:         * @param aColumn Enum value indicating the column to check.
williamr@2:         */
williamr@2:         void LeaveIfUnsupportedL( TApMember aColumn );
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Returns whether this item has WLAN or not
williamr@2:         * @return Whether this item has WLAN or not
williamr@2:         */
williamr@2:         TBool IsWlan();
williamr@2: 
williamr@2: 
williamr@2:         /**
williamr@2:         * Limit the Ip6 DNS address
williamr@2:         * In case of CSD, HSCSD, only Well-known and User defined is supported, 
williamr@2:         * so if the bearer is changed from something else to these bearer
williamr@2:         * types, the possible 'Dynamic' should be replaced with Well-known
williamr@2:         */
williamr@2:         void LimitIp6DNSL();
williamr@2: 
williamr@2: private:    // Data
williamr@2: 
williamr@2:         // member data
williamr@2:         // COMMON
williamr@2:         TUint32 iWapUid;        ///< The unique identifier of the AP record.
williamr@2:         HBufC* iWapAccessPointName;
williamr@2: 
williamr@2: 
williamr@2:         // WAP-spec.
williamr@2:         HBufC* iWapBearer;
williamr@2:         HBufC* iStartingPage;
williamr@2: 
williamr@2:         // common for bearers
williamr@2:         HBufC* iWapGatewayAddress;  ///< The WAP gateway address
williamr@2:         TBool iIsWTLSSecurityOn;
williamr@2:         TUint32 iIsConnectionTypeContinuous;
williamr@2: 
williamr@2:         CApItemExtra*   iExt;
williamr@2:         TUint32         iChargeCard;
williamr@2:         TUint32         iWapIap;
williamr@2:         TUint32         iWapIspType;    // deprecated, not used but kept 
williamr@2:                                         // to keep member positions
williamr@2: 
williamr@2: 
williamr@2:         // IAP-part
williamr@2:         HBufC* iIapName;
williamr@2: 
williamr@2:         TUint32 iIapServiceId;
williamr@2:         HBufC* iIapServiceType;
williamr@2: 
williamr@2:         TUint32 iIapChargeCardId;
williamr@2: 
williamr@2:         // ISP-part
williamr@2:         HBufC* iIspName;
williamr@2:         HBufC* iIspDescription;
williamr@2:         TCommsDbIspType  iIspType;
williamr@2:         HBufC* iIspDefaultTelNumber;
williamr@2:         TBool iIspDialResolution;
williamr@2:         TBool iUseLoginScript;
williamr@2:         HBufC* iLoginScript;
williamr@2:         TBool iPromptPassword;
williamr@2:         HBufC* iUserName;
williamr@2:         HBufC* iPassword;
williamr@2:         TBool iDisplayTerminalWindow;
williamr@2:         HBufC* iIspIfName;
williamr@2:         HBufC* iIspIfParams;
williamr@2:         HBufC* iIspIfNetworks;
williamr@2:         TBool iIspIfPromptForAuth;
williamr@2:         HBufC* iIspIfAuthName;
williamr@2:         HBufC* iIspIfAuthPass;
williamr@2:         TUint32 iIspIfAuthRetries;
williamr@2:         TBool iUseCallBack;
williamr@2:         TCallbackAction iCallBackTypeIsServerNum;
williamr@2:         HBufC8* iIspIfCallbackInfo;
williamr@2:         TUint32 iIspCallbackTimeOut;
williamr@2:         TBool iIspIPAddrFromServer;
williamr@2:         HBufC* iIspIPAddr;
williamr@2:         HBufC* iIspIPNetMask;
williamr@2:         HBufC* iIspGateway;
williamr@2:         TBool iGetDNSIPFromServer;
williamr@2:         HBufC* iPrimaryDNS;
williamr@2:         HBufC* iSecondaryDNS;
williamr@2:         TBool iEnablePPPCompression;
williamr@2:         TBool iIspEnableLCPExtensions;
williamr@2:         TBool iIsPasswordAuthenticationSecure;
williamr@2:         TBool iIspEnableSwCompression;
williamr@2:         /*****************************************************
williamr@2:         *   Series 60 Customer / ETel
williamr@2:         *   Series 60   ETel API
williamr@2:         *****************************************************/
williamr@2:         TInt    iIspBearerName; // RMobileCall::TMobileCallDataServiceCaps  
williamr@2:         TApCallSpeed iMaxConnSpeed;
williamr@2:         TApCallType iBearerCallTypeIsdn; //RMobileCall::TMobileCallDataProtocol
williamr@2:         TInt    iIspBearerCE; // RMobileCall::TMobileCallDataQoS 
williamr@2:         HBufC8* iIspInitString;
williamr@2:         TUint32 iIspBearerType;
williamr@2:         TUint32 iIspChannelCoding;
williamr@2:         TUint32 iIspAIUR;
williamr@2:         TUint32 iIspRequestedTimeSlots;
williamr@2:         TUint32 iIspMaximumTimeSlots;
williamr@2: 
williamr@2:         // GPRS part
williamr@2:         HBufC*  iGprsAccessPointName;
williamr@2:         TUint32 iGprsPdpType;
williamr@2:         HBufC*  iGprsPdpAddress;
williamr@2:         TUint32 iGprsReqPrecedence;
williamr@2:         TUint32 iGprsReqDelay;
williamr@2:         TUint32 iGprsReqReliability;
williamr@2:         TUint32 iGprsReqPeakThroughput;
williamr@2:         TUint32 iGprsReqMeanPeakThroughput;
williamr@2:         TUint32 iGprsMinPrecedence;
williamr@2: 
williamr@2:         TUint32 iGprsMinDelay;
williamr@2:         TUint32 iGprsMinReliability;
williamr@2:         TUint32 iGprsMinPeakThroughput;
williamr@2:         TUint32 iGprsMinMeanThroughput;
williamr@2:         TBool   iGprsUseAnonymAccess;
williamr@2: 
williamr@2:         CArrayFixFlat<TBool>    *iSpecified;
williamr@2:         TBool iIsReadOnly;
williamr@2: 
williamr@2:         HBufC*  iApProxyProtocolName;
williamr@2:         HBufC*  iApProxyServerAddress;
williamr@2:         TUint32 iApProxyPortNumber;
williamr@2:         TBool   iApProxyUseProxy;
williamr@2:         HBufC*  iApProxyExceptions;
williamr@2:         TBool   iApHasProxySettings;
williamr@2: 
williamr@2:         TUint32 iNetworkId;
williamr@2:         TUint32 iWapProxyPort;
williamr@2:         HBufC*  iNetworkName;
williamr@2:         HBufC*  iWapProxyLoginName;
williamr@2:         HBufC*  iWapProxyLoginPass;
williamr@2:         TUint32 iApIapBearerService; // RMobileCall::TMobileCallDataServiceCaps
williamr@2: 
williamr@2: 
williamr@2: 
williamr@2:     protected:  // Friend classes
williamr@2:         friend class CApDataHandler;
williamr@2: 
williamr@2: 
williamr@2:     };
williamr@2: 
williamr@2: #endif      // ACCESSPOINTITEM_H
williamr@2: 
williamr@2: // End of File