Merge pull request #3142 from henricm/fix-for-win-mono_string_to_utf8
[mono.git] / mcs / class / referencesource / System / net / System / Net / NetworkInformation / SystemMulticastIPAddressInformation.cs
1
2     /// <summary><para>
3     ///    Provides support for ip configuation information and statistics.
4     ///</para></summary>
5     ///
6 namespace System.Net.NetworkInformation {
7
8     using System.Net;
9     
10     /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation"]/*' />
11     /// <summary>Specifies the Multicast addresses for an interface.</summary>
12     /// </platnote>
13     internal class SystemMulticastIPAddressInformation:MulticastIPAddressInformation {
14
15         private SystemIPAddressInformation innerInfo;
16
17         private SystemMulticastIPAddressInformation() {
18         }
19
20         public SystemMulticastIPAddressInformation(SystemIPAddressInformation addressInfo) {
21             innerInfo = addressInfo;
22         }
23
24        /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPAddressInformation.Address"]/*' />
25         public override IPAddress Address{get {return innerInfo.Address;}}
26
27         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPAddressInformation.Transient"]/*' />
28         /// <summary>The address is a cluster address and shouldn't be used by most applications.</summary>
29         public override bool IsTransient{
30             get {
31                 return (innerInfo.IsTransient);
32             }
33         }
34
35         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPAddressInformation.DnsEligible"]/*' />
36         /// <summary>This address can be used for DNS.</summary>
37         public override bool IsDnsEligible{
38             get {
39                 return (innerInfo.IsDnsEligible);
40             }
41         }
42
43
44         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation.PrefixOrigin"]/*' />
45         public override PrefixOrigin PrefixOrigin{
46             get {
47                 return PrefixOrigin.Other;
48             }
49         }
50
51         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation.SuffixOrigin"]/*' />
52         public override SuffixOrigin SuffixOrigin{
53             get {
54                 return SuffixOrigin.Other;
55             }
56         }
57         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation.DuplicateAddressDetectionState"]/*' />
58         /// <summary>IPv6 only.  Specifies the duplicate address detection state. Only supported
59         /// for IPv6. If called on an IPv4 address, will throw a "not supported" exception.</summary>
60         public override DuplicateAddressDetectionState DuplicateAddressDetectionState{
61             get {
62                 return DuplicateAddressDetectionState.Invalid;
63             }
64         }
65
66
67         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation.ValidLifetime"]/*' />
68         /// <summary>Specifies the valid lifetime of the address in seconds.</summary>
69         public override long AddressValidLifetime{
70             get {
71                 return 0;
72                 }
73             }
74         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation.PreferredLifetime"]/*' />
75         /// <summary>Specifies the prefered lifetime of the address in seconds.</summary>
76
77         public override long AddressPreferredLifetime{
78             get {
79                 return 0;
80                 }
81             }
82         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation.PreferredLifetime"]/*' />
83
84         /// <include file='doc\NetworkInterface.uex' path='docs/doc[@for="IPMulticastAddressInformation.DhcpLeaseLifetime"]/*' />
85         /// <summary>Specifies the prefered lifetime of the address in seconds.</summary>
86         public override long DhcpLeaseLifetime{
87             get {
88                 return 0;
89                 }
90             }
91
92
93         internal static MulticastIPAddressInformationCollection ToMulticastIpAddressInformationCollection(IPAddressInformationCollection addresses) {
94             MulticastIPAddressInformationCollection multicastList = new MulticastIPAddressInformationCollection();
95             foreach (IPAddressInformation addressInfo in addresses) {
96                 multicastList.InternalAdd(new SystemMulticastIPAddressInformation((SystemIPAddressInformation)addressInfo));
97             }
98             return multicastList;
99         }
100     }
101 }
102