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