epoc32/include/in6_if.h
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
--- a/epoc32/include/in6_if.h	Wed Mar 31 12:27:01 2010 +0100
+++ b/epoc32/include/in6_if.h	Wed Mar 31 12:33:34 2010 +0100
@@ -1,9 +1,9 @@
 // Copyright (c) 2004-2009 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
+// under the terms of "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
@@ -28,7 +28,7 @@
 #define __IN6_IF_H__
 
 #include <e32std.h>
-#include "in_iface.h"	// TSoIfInfo
+#include <in_sock.h>
 
 //	CNifIfBase::Control(aLevel, aName, aOption, ..)
 //  aLevel is KSOLInterface defined in in_iface.h in standard EPOC
@@ -83,6 +83,38 @@
 */
 const TUint KIfNeedsND	= 0x00000100;
 
+const TUint KMaxInterfaceName=32;
+
+/** 
+ * Holds the name of a network interface. 
+ * 
+ * This is used in TSoIfInfo. 
+ * 
+ */
+typedef TBuf<KMaxInterfaceName> TInterfaceName;
+
+class TSoIfInfo
+// Socket option structure for KSoIfInfo
+/** 
+ * Current network interface operation parameters.
+ * 
+ * It is returned by RSocket::GetOpt(), when that function is called with anOptionLevel 
+ * set to KSOLInterface and anOptionName set to KSoIfInfo. 
+ *
+ */
+	{
+public:
+	/** Feature flags. Possible values are defined in in_iface.h. */
+	TUint iFeatures;		// Feature flags
+	/** Maximum transmission unit. */
+	TInt iMtu;				// Max frame size
+	/** An approximation of the interface speed in Kbps. */
+	TInt iSpeedMetric;		// Indication of performance, approx to Kbps
+	/** Interface protocol name, ipcp::\<port\>. */
+	TInterfaceName iName;
+	};
+
+
 class TSoIfInfo6 : public TSoIfInfo		// aOption when aName == KSoIfInfo
 	/**
 	* Extends the TSoIfInfo for the receive MTU.
@@ -112,6 +144,19 @@
 	TInt iRMtu;
 	};
 
+class TSoIfConfigBase
+/** 
+ * Base class for TSoInetIfConfig, which simply identifies the protocol family 
+ * using the interface. 
+ *
+ * @internalComponent
+ */
+	{
+public:
+	/** The protocol family, e.g. KAfInet. */
+	TUint iFamily;
+	};
+
 class TSoInet6IfConfig : public TSoIfConfigBase
 	/**
 	* IPv6 interface configuration.