Merge pull request #3142 from henricm/fix-for-win-mono_string_to_utf8
[mono.git] / mcs / class / referencesource / System / net / System / Net / NetworkInformation / NetworkInterface.cs
1
2 using System;
3
4 namespace System.Net.NetworkInformation
5 {
6     
7     public abstract class NetworkInterface
8     {
9         /// Returns objects that describe the network interfaces on the local computer.
10         public static NetworkInterface[] GetAllNetworkInterfaces(){
11 #if !DISABLE_CAS_USE
12             (new NetworkInformationPermission(NetworkInformationAccess.Read)).Demand();
13 #endif
14             return SystemNetworkInterface.GetNetworkInterfaces();
15         }
16
17         public static bool GetIsNetworkAvailable(){
18             return SystemNetworkInterface.InternalGetIsNetworkAvailable();
19         }
20
21         public static int LoopbackInterfaceIndex{
22             get{
23                 return SystemNetworkInterface.InternalLoopbackInterfaceIndex;
24             }
25         }
26
27         public static int IPv6LoopbackInterfaceIndex {
28             get {
29                 return SystemNetworkInterface.InternalIPv6LoopbackInterfaceIndex;
30             }
31         }
32
33         public virtual string Id { get { throw new NotImplementedException(); } }
34         
35         /// Gets the name of the network interface.
36         public virtual string Name { get { throw new NotImplementedException(); } }
37
38         /// Gets the description of the network interface
39         public virtual string Description { get { throw new NotImplementedException(); } }
40
41         /// Gets the IP properties for this network interface.
42         public virtual IPInterfaceProperties GetIPProperties() {
43             throw new NotImplementedException(); 
44         }
45
46         /// Provides Internet Protocol (IP) statistical data for thisnetwork interface.
47         /// Despite the naming, the results are not IPv4 specific.
48         /// Do not use this method, use GetIPStatistics instead.
49         public virtual IPv4InterfaceStatistics GetIPv4Statistics() {
50             throw new NotImplementedException();
51         }
52
53         /// Provides Internet Protocol (IP) statistical data for this network interface.
54         public virtual IPInterfaceStatistics GetIPStatistics() {
55             throw new NotImplementedException();
56         }
57
58         /// Gets the current operational state of the network connection.
59         public virtual OperationalStatus OperationalStatus { get { throw new NotImplementedException(); } }
60                            
61         /// Gets the speed of the interface in bits per second as reported by the interface.
62         public virtual long Speed { get { throw new NotImplementedException(); } }
63
64         /// Gets a bool value that indicates whether the network interface is set to only receive data packets.
65         public virtual bool IsReceiveOnly { get { throw new NotImplementedException(); } }
66
67         /// Gets a bool value that indicates whether this network interface is enabled to receive multicast packets.
68         public virtual bool SupportsMulticast { get { throw new NotImplementedException(); } }
69         
70         /// Gets the physical address of this network interface
71         /// <b>deonb. This is okay if you don't support this in Whidbey. This actually belongs in the NetworkAdapter derived class</b>
72         public virtual PhysicalAddress GetPhysicalAddress() {
73             throw new NotImplementedException();
74         }
75
76         /// Gets the interface type.
77         public virtual NetworkInterfaceType NetworkInterfaceType { get { throw new NotImplementedException(); } }
78
79         public virtual bool Supports(NetworkInterfaceComponent networkInterfaceComponent) {
80             throw new NotImplementedException();
81         }
82     }
83 }
84