[System] Removal of the NET_2_0 in the source code
[mono.git] / mcs / class / System / System.Net.NetworkInformation / UdpStatistics.cs
index 22defefb585d0a3453141a3f48af4b03d9f38fd3..6126b93d79908833e023602d7b6de3cb0916f5a1 100644 (file)
@@ -26,7 +26,9 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-#if NET_2_0
+using System.Collections.Specialized;
+using System.Globalization;
+
 namespace System.Net.NetworkInformation {
        public abstract class UdpStatistics {
                protected UdpStatistics ()
@@ -40,6 +42,37 @@ namespace System.Net.NetworkInformation {
                public abstract int UdpListeners { get; }
        }
 
+       class MibUdpStatistics : UdpStatistics
+       {
+               StringDictionary dic;
+
+               public MibUdpStatistics (StringDictionary dic)
+               {
+                       this.dic = dic;
+               }
+
+               long Get (string name)
+               {
+                       return dic [name] != null ? long.Parse (dic [name], NumberFormatInfo.InvariantInfo) : 0;
+               }
+
+               public override long DatagramsReceived {
+                       get { return Get ("InDatagrams"); }
+               }
+               public override long DatagramsSent {
+                       get { return Get ("OutDatagrams"); }
+               }
+               public override long IncomingDatagramsDiscarded {
+                       get { return Get ("NoPorts"); }
+               }
+               public override long IncomingDatagramsWithErrors {
+                       get { return Get ("InErrors"); }
+               }
+               public override int UdpListeners {
+                       get { return (int) Get ("NumAddrs"); }
+               }
+       }
+
        class Win32UdpStatistics : UdpStatistics
        {
                Win32_MIB_UDPSTATS info;
@@ -79,5 +112,4 @@ namespace System.Net.NetworkInformation {
                public int NumAddrs;
        }
 }
-#endif