diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/mw/cmconnectionmethoddef.h --- a/epoc32/include/mw/cmconnectionmethoddef.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/mw/cmconnectionmethoddef.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,761 @@ -cmconnectionmethoddef.h +/* +* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* 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 +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Definition of attributes used by every Connection Methods. +* +*/ + +#ifndef CMCONNECTIONMETHODDEF_H +#define CMCONNECTIONMETHODDEF_H + +// INCLUDES +#include <e32base.h> + +// CONSTANTS + +// Beginning of the CMManager enum range (internal use) +const TUint KLanBaseSpecificAttributes = 20000; +const TUint KLanBaseIfNetworks = 20100; +// End of the CMManager enum range (internal use) +const TUint KLanBaseRangeMax = 29999; + +/** ECOM interface UID */ +const TUint KCMPluginInterfaceUid = 0x10207377; + +namespace CMManager + { + //Enumeration for possible values of seamlessness field + //in IAP Metadata table + /** Naming method options */ + enum TNamingMethod + { + ENamingNothing, ///< Do nothing with name set via ECmName + ENamingUnique, ///< Make name unique when ECmName is set. + ENamingNotAccept ///< Do not accept duplication. It will leave with + ///< KErrArgument. + }; + + // Enumeration for IPv6 types + enum TIPv6Types + { + EIPv6Unspecified, ///< Unspecified IPv6 type + EIPv6WellKnown, ///< Well known IPv6 type + EIPv6UserDefined ///< User defined IPv6 type + }; + + enum TSeamlessnessValue + { + ESeamlessnessNotRoamedTo, // NOT supported + ESeamlessnessConfirmFirst, // Confirm first + ESeamlessnessShowprogress, // Shows progress + ESeamlessnessFullySeamless // NOT supported + }; + + + /// Unspecified IPv4 address + _LIT( KUnspecifiedIPv4, "0.0.0.0" ); + + /// Known IPv6 name server 1 + _LIT( KKnownIp6NameServer1, "fec0:000:0000:ffff::1" ); + /// Known IPv6 name server 2 + _LIT( KKnownIp6NameServer2, "fec0:000:0000:ffff::2" ); + + /// Dynamic IPv6 address + _LIT( KDynamicIpv6Address, "0:0:0:0:0:0:0:0" ); + + /// Default proxy protocol name + _LIT( KDefProxyProtocolName, "http" ); + + /// Default proxy port number + _LIT( KDefaultProxyPortNumber, "0" ); + + /// IPv4 network protocol + _LIT( KDefIspIfNetworksIPv4, "ip" ); + /// IPv6 network protocol + _LIT( KDefIspIfNetworksIPv6, "ip6" ); + /// IPv4 and IPv6 network protocols + _LIT( KDefIspIfNetworksIPv4IPv6, "ip,ip6" ); + /// IPv4 and IPv6 network protocols for LAN bearers + _LIT( KDefIspIfNetworksIPv4IPv6LAN, "ip" ); + + _LIT( KDaemonManagerName, "NetCfgExtnDhcp" ); + _LIT( KConfigDaemonName, "!DhcpServ" ); + + + /** + * This enum lists all the common attributes of Connection Methods. + */ + enum TConnectionMethodCommonAttributes + { + /** + * The following attributes can be queried via both + * the manager interface's and connection method interface's ::Get functions. + */ + ECmCoverage, /**< + * Checks if there's coverage for this bearer. + * (TBool - default: none - read only) + */ + + ECmDefaultPriority, /**< + * Default global priority of the CM's bearer + * type. + * (TUint32 - default: none - read only) + */ + + ECmDestination, /**< + * ETrue if this connection method is + * an embedded destination. + * (TBool - default: none - read only) + */ + + ECmBearerHasUi, /**< + * Indicates whether the bearer has any UI. + * (TBool - default: none - read only) + */ + + ECmIPv6Supported, /**< + * Returns ETrue if IPv6 is supported. + * (TBool - default: none - read only) + */ + + ECmDefaultUiPriority, /**< + * Priority of this bearer type when shown in UI for + * configuring a new IAP. + * (TUint32 - default: none - read only) + */ + + ECmBearerIcon = 100, /**< + * Return the bearer specific icon. Assumes that + * there's an existing EEikEnv in the client. + * Type cast return value from TUint32 to + * CGuiIcon*. + * Return value 0 means bearer has no icon. + * (TUint32 - default: none - read only) + */ + + ECmBearerAvailableIcon, /**< + * Return the bearer available specific icon. + * Assumes that there's an existing EEikEnv + * in the client. Type cast return value from + * TUint32 to CGuiIcon*. + * Return value 0 means bearer has no icon. + * (TUint32 - default: none - read only) + */ + + ECmBearerAvailableName = 200, /**< + * Name of the bearer. Can be used in + * layout + * list_double_large_graphic_popup_menu_pane. + * (String - default: none - read only) + */ + + ECmBearerSupportedName, /**< + * Name of the bearer. Can be used in + * layout list_single_popup_menu_pane_1. + * (String - default: none - read only) + */ + + ECmBearerAvailableText, /**< + * Localized text 'Available'. Can be used in + * layout + * list_double_large_graphic_popup_menu_pane. + * (String - default: none - read only) + */ + + ECmBearerNamePopupNote, /**< + * Localized text of the bearer type name. + * Can be used in layout popup note. + * (String - default: none - read only) + */ + + ECmCommsDBBearerType, /**< + * For backward compatibility, connection method + * can return its CommsDB specific bearer type. + * (TUint32 - default: none - read only) + * Leaves with KErrUnknown if no associated bearer + * type exists in CommsDat. + */ + + ECmBearerSettingName, /**< + * Name of the data bearer used when + * accessing external network. + * (String - default: none - read only) + */ + + ECmVirtual, /**< + * Is the given connection method virtual? + * (TBool - default: none - read only) + */ + + /** + * These are not bearer specific, but controling attributes. + */ + ECmInvalidAttribute = 400, /**< + * Client application can check which attribute + * was incorrect in UpdateL(). + * (TUint32 - default: none - read only) + */ + + ECmAddToAvailableList, /**< + * Bearer type has to be added to the avaialable + * bearer type list. + * (TBool - default: EFalse - read only) + */ + + ECmLoadResult, /**< + * Result of the load process. KErrNone if there + * was no error. Otherwise a system wide + * error code. + * (TUint32 - default: KErrNone - read only) + */ + + /** + * Attributes the can be queried only via + * - connection method's GetXXXAttributeL() + * - connection manager's function GetConnectionMethodInfoXXXL() + * functions + */ + ECmBearerType = 500, /**< + * Bearer type of the CM + * (TUint - default: none - read only) + */ + + ECmName, /**< + * Name of the CM + * (String - default: none) + */ + + ECmIapId, /**< + * IAP id + * (TUint32 - default: none - read only) + */ + + ECmStartPage, /**< + * Start page of the connection method + * (String - default: empty string) + */ + + ECmHidden, /**< + * Connection method is hidden. + * (not supported yet) + * (TBool - default: EFalse) + */ + + ECmProtected, /**< + * This connection method is protected. + * Modifying it needs NetworkControl capability. + * (TBool - default: EFalse) + */ + + ECmNamingMethod, /**< + * See acceptable values in TNamingControl. + * (TUint32 - default: ENamingUnique) + */ + + ECmSeamlessnessLevel, /**< + * Defines whether an IAP can be roamed to. + * See details in TSeamlessnessValue. + * (TUint32 - default: ESeamlessnessConfirmFirst ) + */ + + ECmElementID, /**< + * Element id of the connection method in IAP table. + * (TUint32 - default: none - read only) + */ + + ECmNetworkId, /**< + * Network id of the connection method. + * (TUint32 - default: none - read only) + */ + + ECmConnected, /**< + * Is network connection created with connection + * method? + * (TBool - default: none - read only) + */ + + ECmId, /**< + * ID to uniquely identify the connection + * methods + * It is guaranteed that every connection + * method has an ECmId + * (TUint32 - default: none - read only) + */ + + ECmWapId, /** + * Provided for backwards compatibility only. + * The record ID of the connection methods' + * corresponding WAP_ACCESS_POINT record, which + * use had been deprecated as the main ID + * should now be ECmIapId, ECmElementID or ECmId. + * (TUint32 - default: none - read only) + */ + + ECmIapServiceId, /** + * Provided for backwards compatibility only. + * The record ID of the connection methods' + * service record + * (TUint32 - default: none - read only) + */ + + /** + * The following attributes are stored in the connection method's + * meta data record. + */ + ECmMetaHighlight = 600, /**< + * Set to indicate that this connection method is + * highlighted in Agent dialog. Only one connection + * method can have this flag set. + * (TBool - default: EFalse) + */ + + ECmMetaHiddenAgent, /**< + * Set to hide this connection method in Agent + * dialog. + * (TBool - default: EFalse) + */ + + // These attributes can be used with virtual bearer type + // connection methods. + ECmNextLayerIapId, /**< + * Returns the linked connection method's IAP id. + * (TUint32 - default: None) + */ + + ECmNextLayerSNAPId, /**< + * Returns the linked connection method's SNAP id. + * (TUint32 - default: None) + */ + + // Proxy attributes + ECmProxyUsageEnabled = 1000, /**< + * Set to enable/disable proxy setting + * of connection method. + * Disabling: record is deleted from proxy + * when UpdateL() is called. + * Proxy record is deleted on UpdateL() + * if ECmProxyServerName is an empty string. + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool: default: EFalse) + */ + + ECmProxyServerName, /**< + * Name of the host. + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmProxyProtocolName, /**< + * Name of the protocol for which this proxy + * can be used. + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmProxyPortNumber, /**< + * Port number + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TUint32 - default: none) + */ + + ECmProxyExceptions, /**< + * ";" separated list of the addresses for + * which the proxy server should not be used. + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmProxyRangeMax = 1999, /**< + * Marks the end of the proxy range + */ + + ECmChargeCardUsageEnabled = 2000, /**< + * Same as in ECmProxyUsageEnabled but + * for charge card. + * (TBool - default: EFalse) + */ + + ECmChargeCardAccountNumber, /**< + * Account number + * (String - default: none) + */ + + ECmChargeCardPIN, /**< + * PIN number + * (String - default: none) + */ + + ECmChargeCardLocalRule, /**< + * Order of dialling account number, + * PIN and phone number for local calls. + * (String - default: none) + */ + + ECmChargeCardNatRule, /**< + * Order of dialling account number, + * PIN and phone number for national + * calls. + * (String - default: none) + */ + + ECmChargeCardIntlRule, /**< + * Order of dialling account number, + * PIN and phone number for + * international calls. + * (String - default: none) + */ + + ECmChargeCardRangeMax = 2999, /**< + * Marks the end of the chargecard range + */ + + ECmLocationUsageEnabled = 3000, /**< + * Same as in ECmProxyUsageEnabled but + * for location. + * (TBool - default: EFalse) + */ + + ECmLocationIntlPrefixCode, /**< + * International prefix code. + * (String - default: none) + */ + + ECmLocationNatPrefixCode, /**< + * National prefix code. + * (String - default: none) + */ + + ECmLocationNatCode, /**< + * National code + * (String - default: none) + */ + + ECmLocationAreaCode, /**< + * Area code. + * (String - default: none) + */ + + ECmLocationDialOutCode, /**< + * Number to dial for an outside line. + * (String - default: none) + */ + + ECmLocationDisableCallWaitingCode, /**< + * Code to dial to disable call waiting + * facility. + * (String - default: none) + */ + + ECmLocationMobile, /**< + * Mobile phone? + * (TBool - default: none) + */ + + ECmLocationUsePulseDial, /**< + * Use pulse dialling? + * (TBool - default: none) + */ + + ECmLocationWaitForDialTone, /**< + * Wait for the dial tone? + * (TBool - default: none) + */ + + ECmLocationPauseAfterDialOut, /**< + * Pause time after dial out. + * (TUint32 - default: none) + */ + + ECmLocationRangeMax = 3999, /**< + * Marks the end of the location + * range + */ + + // WAP specific attributes + ECmWapIPGatewayAddress = 4000, /**< + * WAP Gateway address, in this case an + * IP address. + * (String - default: none) + */ + + ECmWapIPWSPOption, /**< + * Enum value indicating whether + * connection-oriented + * or connectionless API should be used. + * See valid values in TWapWSPOption. + * (TUint32 - default: + * ECmWapWspOptionConnectionless) + */ + + ECmWapIPSecurity, /**< + * Attempt secure WTLS connection to the gateway + * (TBool - default: EFalse) + */ + + ECmWapIPProxyPort, /**< + * Proxy port number. Required for WAP2.0 only. + * (TUint32 - default: none) + */ + + ECmWapIPProxyLoginName, /**< + * Proxy login name. Required for WAP2.0 only. + * (String - default: none) + */ + + ECmWapIPProxyLoginPass, /**< + * Proxy login password. + * Required for WAP2.0 only. + * (String - default: none) + */ + + ECmWapRangeMax = 4099, /**< + * Marks the end of the WAP specific range + */ + + /** + * The following attributes are common for many bearer types. + * It's not sure that every IF or IP attribute is supported by + * all bearer types. + * It's not possible to query these attributes via + * GetConnectionInfoXXX() functions. + */ + ECmCommonAttributesStart = 5000, /**< + * Marks the beginning of the common + * attributes + */ + + ECmIFName, /**< + * Interface name + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIFParams, /**< + * Interface parameter string + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIFNetworks, /**< + * List of network protocols + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIFPromptForAuth, /**< + * Prompt user for authentication + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool - default: none) + */ + + ECmIFAuthName, /**< + * Authentication user name used by PPP + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIFAuthPass, /**< + * Authentication password used by PPP + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIFAuthRetries, /**< + * Number of times for retrying authentication + * if it fails + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TUint32 - default: none) + */ + + ECmIPNetmask = 5050, /**< + * IP net mask of interface + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIPGateway, /**< + * IP address of gateway + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIPAddFromServer, /**< + * Get IP address from server? + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool - default: none) + */ + + ECmIPAddress, /**< + * IP address of interface + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIPDNSAddrFromServer, /**< + * Get DNS addresses from server? + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool - default: none) + */ + + ECmIPNameServer1, /**< + * IP address of primary name server + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIPNameServer2, /**< + * IP address of secondary name server + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIP6DNSAddrFromServer, /**< + * Get IP6 DNS addresses from server? + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool - default: none) + */ + + ECmIP6NameServer1, /**< + * IP6 address of primary name server + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIP6NameServer2, /**< + * IP6 address of secondary name server + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIPAddrLeaseValidFrom, /**< + * IP address valid from this time, used to + * store dynamically assigned address lease + * info + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmIPAddrLeaseValidTo, /**< + * IP address valid for use until this time, + * used to store dynamically assigned + * address lease info + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmConfigDaemonManagerName = 5100, /**< + * Name of the ECom configuration + * daemon manager component. This + * component interfaces with the + * server identified in + * ECmConfigDaemonName. If + * specified, ECmConfigDaemonName + * should also be specified. + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmConfigDaemonName, /**< + * Name of the configuration daemon server. + * This server is used to provide further + * configuration for a connection, e.g. + * dynamic IP address assignment. If + * specified, ECmConfigDaemonManagerName + * should also be specified. + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (String - default: none) + */ + + ECmEnableLPCExtension = 5110, /**< + * Enable LCP extensions? + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool - default: none) + */ + + ECmDisablePlainTextAuth, /**< + * Disable plaintext authentication? + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool - default: none) + */ + + ECmCommonAttributesEnd = 5999, /**< + * Marks the end of common attributes + */ + + /** + * The following methods can be queried only via + * connection method's GetXXXAttributeL() + */ + ECmSpecialAttributes = 6000, /**< + * Marks the beginning of special + * attributes + */ + + ECmIsLinked, /**< + * Is connection method linked to any + * virtual connection method? + * It can be queried only via the + * connection method's GetXXXAttributeL() + * (TBool - default: none) + */ + + ECmSpecialAttributesEnd = 8999 /**< + * Marks the end of special attributes + */ + }; + + /** WAP WSP options */ + enum TWapWSPOption + { + /** + * Indicates that connectionless APIs should be used + */ + ECmWapWspOptionConnectionless, + + /** + * Indicates that connection oriented APIs should be used + */ + ECmWapWspOptionConnectionOriented + }; + + } // namespace CMManager + +#endif // CMCONNECTIONMETHODDEF_H