BindingFlags.Public needed here as Exception.HResult is now public in .NET 4.5. This...
[mono.git] / mcs / class / System / System.Net.Configuration / ServicePointManagerElement.cs
1 //
2 // System.Net.Configuration.ServicePointManagerElement.cs
3 //
4 // Authors:
5 //      Tim Coleman (tim@timcoleman.com)
6 //      Chris Toshok (toshok@ximian.com)
7 //
8 // Copyright (C) Tim Coleman, 2004
9 // (c) 2004,2005 Novell, Inc. (http://www.novell.com)
10 //
11
12 //
13 // Permission is hereby granted, free of charge, to any person obtaining
14 // a copy of this software and associated documentation files (the
15 // "Software"), to deal in the Software without restriction, including
16 // without limitation the rights to use, copy, modify, merge, publish,
17 // distribute, sublicense, and/or sell copies of the Software, and to
18 // permit persons to whom the Software is furnished to do so, subject to
19 // the following conditions:
20 // 
21 // The above copyright notice and this permission notice shall be
22 // included in all copies or substantial portions of the Software.
23 // 
24 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
25 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
26 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
27 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
29 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
30 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 //
32
33 #if NET_2_0 && CONFIGURATION_DEP
34
35 using System;
36 using System.Configuration;
37
38 namespace System.Net.Configuration 
39 {
40         public sealed class ServicePointManagerElement : ConfigurationElement
41         {
42                 #region Fields
43
44                 static ConfigurationPropertyCollection properties;
45                 static ConfigurationProperty checkCertificateNameProp;
46                 static ConfigurationProperty checkCertificateRevocationListProp;
47                 static ConfigurationProperty dnsRefreshTimeoutProp;
48                 static ConfigurationProperty enableDnsRoundRobinProp;
49                 static ConfigurationProperty expect100ContinueProp;
50                 static ConfigurationProperty useNagleAlgorithmProp;
51
52                 #endregion // Fields
53
54                 #region Constructors
55
56                 static ServicePointManagerElement ()
57                 {
58                         checkCertificateNameProp = new ConfigurationProperty ("checkCertificateName", typeof (bool), true);
59                         checkCertificateRevocationListProp = new ConfigurationProperty ("checkCertificateRevocationList", typeof (bool), false);
60                         dnsRefreshTimeoutProp = new ConfigurationProperty ("dnsRefreshTimeout", typeof (int), 120000);
61                         enableDnsRoundRobinProp = new ConfigurationProperty ("enableDnsRoundRobin", typeof (bool), false);
62                         expect100ContinueProp = new ConfigurationProperty ("expect100Continue", typeof (bool), true);
63                         useNagleAlgorithmProp = new ConfigurationProperty ("useNagleAlgorithm", typeof (bool), true);
64                         properties = new ConfigurationPropertyCollection ();
65
66                         properties.Add (checkCertificateNameProp);
67                         properties.Add (checkCertificateRevocationListProp);
68                         properties.Add (dnsRefreshTimeoutProp);
69                         properties.Add (enableDnsRoundRobinProp);
70                         properties.Add (expect100ContinueProp);
71                         properties.Add (useNagleAlgorithmProp);
72                 }
73
74                 public ServicePointManagerElement ()
75                 {
76                 }
77
78                 #endregion // Constructors
79
80                 #region Properties
81
82                 [ConfigurationProperty ("checkCertificateName", DefaultValue = "True")]
83                 public bool CheckCertificateName {
84                         get { return (bool) base [checkCertificateNameProp]; }
85                         set { base [checkCertificateNameProp] = value; }
86                 }
87
88                 [ConfigurationProperty ("checkCertificateRevocationList", DefaultValue = "False")]
89                 public bool CheckCertificateRevocationList {
90                         get { return (bool) base [checkCertificateRevocationListProp]; }
91                         set { base [checkCertificateRevocationListProp] = value; }
92                 }
93
94                 [ConfigurationProperty ("dnsRefreshTimeout", DefaultValue = "120000")]
95                 public int DnsRefreshTimeout {
96                         get { return (int) base [dnsRefreshTimeoutProp]; }
97                         set { base [dnsRefreshTimeoutProp] = value; }
98                 }
99
100                 [ConfigurationProperty ("enableDnsRoundRobin", DefaultValue = "False")]
101                 public bool EnableDnsRoundRobin {
102                         get { return (bool) base [enableDnsRoundRobinProp]; }
103                         set { base [enableDnsRoundRobinProp] = value; }
104                 }
105
106                 [ConfigurationProperty ("expect100Continue", DefaultValue = "True")]
107                 public bool Expect100Continue {
108                         get { return (bool) base [expect100ContinueProp]; }
109                         set { base [expect100ContinueProp] = value; }
110                 }
111
112                 [ConfigurationProperty ("useNagleAlgorithm", DefaultValue = "True")]
113                 public bool UseNagleAlgorithm {
114                         get { return (bool) base [useNagleAlgorithmProp]; }
115                         set { base [useNagleAlgorithmProp] = value; }
116                 }
117
118                 protected override ConfigurationPropertyCollection Properties {
119                         get { return properties; }
120                 }
121
122                 #endregion // Properties
123
124                 #region Methods
125
126                 [MonoTODO]
127                 protected override void PostDeserialize ()
128                 {
129                 }
130
131                 #endregion // Methods
132
133         }
134 }
135
136 #endif