williamr@2: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // Interface Manager API williamr@2: // williamr@2: // williamr@2: williamr@2: /** williamr@2: @file williamr@2: */ williamr@2: williamr@2: williamr@2: #if !defined(__NIFMAN_H__) williamr@2: #define __NIFMAN_H__ williamr@2: williamr@2: #include williamr@4: williamr@4: #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS williamr@4: #include williamr@4: #else williamr@4: #include williamr@4: #endif williamr@4: williamr@4: /** williamr@4: @publishedPartner williamr@4: */ williamr@4: enum TAgentConnectType williamr@4: { williamr@4: EAgentStartDialOut, williamr@4: EAgentReconnect, williamr@4: EAgentStartCallBack, williamr@4: EAgentNone, williamr@4: EAgentStartDialIn williamr@4: }; williamr@2: williamr@2: class CNifMan; williamr@4: class MNifIfUser; williamr@2: class CNifFactory : public CObject williamr@2: /** williamr@2: Manager classes williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: { williamr@2: friend class CNifMan; williamr@2: public: williamr@2: IMPORT_C CNifFactory(); williamr@2: IMPORT_C virtual TInt Open(); williamr@2: IMPORT_C virtual void Close(); williamr@2: IMPORT_C static void Cleanup(TAny* aObject); williamr@2: IMPORT_C static TInt ControlledDelete(TAny* aFactory); williamr@2: IMPORT_C void InitL(RLibrary& aLib, CObjectCon& aCon); williamr@2: williamr@2: protected: williamr@2: IMPORT_C ~CNifFactory(); williamr@2: virtual void InstallL()=0; williamr@2: RLibrary iLib; williamr@2: CAsyncCallBack* iAsyncDtor; williamr@2: }; williamr@2: williamr@2: williamr@2: /** williamr@2: Client side classes williamr@2: async message for progress notifier williamr@2: williamr@2: @publishedAll williamr@2: @deprecated 7.0s - replaced with RConnection API williamr@2: */ williamr@2: const TInt KDefaultNifSlots = 1; williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @capability NetworkControl These control options affect configuration at the designated level. williamr@2: @ref RConnection::Control williamr@2: */ williamr@2: const TUint KCOLInterface = 100; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @capability NetworkControl These control options affect configuration at the designated level. williamr@2: @ref RConnection::Control williamr@2: */ williamr@2: const TUint KCOLAgent = 200; williamr@2: williamr@2: williamr@2: // RConnection::Ioctl() level for NIFMAN williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Ioctl williamr@2: */ williamr@2: const TUint KCOLConfiguration = 300; williamr@2: williamr@2: // RConnection::Control() options williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @capability NetworkControl Restrict ability to switch on/off idle timers williamr@2: @ref RConnection::Control williamr@2: */ williamr@2: const TUint KConnDisableTimers = KConnReadUserDataBit | 1; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Control williamr@2: */ williamr@2: const TUint KConnGetInterfaceName = KConnReadUserDataBit | KConnWriteUserDataBit | 2; williamr@2: williamr@2: williamr@2: // RConnection::Ioctl() options williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Ioctl williamr@2: */ williamr@2: const TUint KConnGetCurrentAddr = KConnWriteUserDataBit | 3; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Ioctl williamr@2: */ williamr@2: const TUint KConnGetServerAddr = KConnWriteUserDataBit | 4; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Ioctl williamr@2: */ williamr@2: const TUint KConnGetAddrLeaseTimeRemain = KConnWriteUserDataBit | 5; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @capability NetworkControl Restrict ability to release a configured address williamr@2: @ref RConnection::Ioctl williamr@2: */ williamr@2: const TUint KConnAddrRelease = 6; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @capability NetworkControl Restrict ability to renew a configured address williamr@2: @ref RConnection::Ioctl williamr@2: williamr@2: This option is used for user initiated RENEW request where an attempt williamr@2: is made to renew the lease obtained from the orginal DHCP server. williamr@2: If the server response is not received before the default timeout(RebindTimeT2 - RenewalTimeT1) williamr@2: the dhcp client will then initiate a REBIND.An user defined timeout can also be williamr@2: supplied when using this option which will override the default timeout value. williamr@2: williamr@2: @code williamr@2: RConnection conn; williamr@2: TRequestStatus stat; williamr@2: //Start a connection williamr@2: ..... williamr@2: ..... williamr@2: //Option1: Initiate a Renew request. williamr@2: conn.Ioctl(KCOLConfiguration, KConnAddrRenew, stat); williamr@2: williamr@2: //Option2: Initiate a Renew request with a user defined timeout williamr@2: TInt secValue(2); //Eg timeout set to 2secs williamr@2: TPckg val(secValue); williamr@2: conn.Ioctl(KCOLConfiguration, KConnAddrRenew, stat,&val); williamr@2: @endcode williamr@2: */ williamr@2: const TUint KConnAddrRenew = 7; williamr@2: williamr@2: // DHCP specific RConnection::Ioctl options williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Ioctl williamr@2: */const TUint KConnGetDhcpRawOptionData = KConnWriteUserDataBit|KConnReadUserDataBit|100; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Ioctl williamr@2: */ williamr@2: const TUint KConnGetSipServerAddr = KConnWriteUserDataBit|KConnReadUserDataBit|101; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: @ref RConnection::Ioctl williamr@2: */ williamr@2: const TUint KConnGetSipServerDomain = KConnWriteUserDataBit|KConnReadUserDataBit|102; williamr@2: williamr@2: /** williamr@2: * This constant is used to retrieve the DHCP Header Sname which is the williamr@2: * host name of the next available server. This is sometimes overloaded williamr@2: * to carry option value 66 which is the TftpServerName. williamr@2: * @publishedPartner williamr@2: * @released williamr@2: * @see RConnection::Ioctl() williamr@2: */ williamr@2: const TUint KConnGetDhcpHdrSname = KConnWriteUserDataBit|KConnReadUserDataBit|104; williamr@2: williamr@2: /** williamr@2: * This constant is used to retrieve the DHCP Header Siaddr which is the williamr@2: * IPAddress of the next available server. williamr@2: * @publishedPartner williamr@2: * @released williamr@2: * @see RConnection::Ioctl() williamr@2: */ williamr@2: const TUint KConnGetDhcpHdrSiaddr = KConnWriteUserDataBit|KConnReadUserDataBit|105; williamr@2: williamr@2: /** williamr@2: * This constant is used to retrieve the DHCP Option 66, Tftp Server Name. williamr@2: * @publishedPartner williamr@2: * @released williamr@2: * @see RConnection::Ioctl() williamr@2: */ williamr@2: const TUint KConnGetTftpServerName = KConnWriteUserDataBit|KConnReadUserDataBit|106; williamr@2: williamr@2: /** williamr@2: * This constant is used to retrieve the DHCP Option 150, Tftp Server Address. williamr@2: * @publishedPartner williamr@2: * @released williamr@2: * @see RConnection::Ioctl() williamr@2: */ williamr@2: const TUint KConnGetTftpServerAddr = KConnWriteUserDataBit|KConnReadUserDataBit|107; williamr@2: williamr@2: williamr@2: /** williamr@2: * This constant is used to retrieve multiple opcode data in a raw format. williamr@2: * @publishedPartner williamr@2: * @released williamr@2: * @see RConnection::Ioctl() williamr@2: */ williamr@2: const TUint KConnDhcpGetMultipleParams = KConnWriteUserDataBit|KConnReadUserDataBit|108; williamr@2: williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: const TUint KConnMaxInterfaceName = 32; williamr@2: williamr@2: class TConnInterfaceName williamr@2: /** williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: TUint iIndex; williamr@2: TBuf iName; williamr@2: }; williamr@4: williamr@4: williamr@2: /** williamr@4: * This constant is used to provision hardware address in the DHCP server. This enables DHCP server to assign the only available IP address in williamr@4: * its pool to the authorised hardware address as configured by the application. williamr@4: * @publishedPartner williamr@4: * @released williamr@4: * @see RConnection::Ioctl() williamr@2: */ williamr@4: const TUint KConnDhcpSetHwAddressParams = KConnWriteUserDataBit|KConnReadUserDataBit|109; williamr@4: williamr@4: #ifdef SYMBIAN_TCPIPDHCP_UPDATE williamr@4: /** williamr@4: * This constant is used to retrieve list of domain names to be searched during name resolution. williamr@4: * Ref : RFC 3646 sec 4 williamr@4: * @publishedPartner williamr@4: * @released williamr@4: * @see RConnection::Ioctl williamr@4: */ williamr@4: const TUint KConnGetDomainSearchList = KConnWriteUserDataBit|KConnReadUserDataBit|110; williamr@4: williamr@4: /** williamr@4: * This constant is used to retrieve list of IPv6 addresses of DNS recursive name servers to which a client's DNS williamr@4: resolver will send DNS queries. williamr@4: * Ref: RFC 3646 sec 3 williamr@4: * @publishedPartner williamr@4: * @released williamr@4: * @see RConnection::Ioctl williamr@4: */ williamr@4: const TUint KConnGetDNSServerList = KConnWriteUserDataBit|KConnReadUserDataBit|111; williamr@4: #endif //SYMBIAN_TCPIPDHCP_UPDATE williamr@2: williamr@2: #endif // __NIFMAN_H__