Copied remotely
[mono.git] / mcs / class / System.Configuration.Install / System.Diagnostics / PerformanceCounterInstaller.cs
1 // System.Diagnostics.PerformanceCounterInstaller.cs
2 //
3 // Author:
4 //      Gert Driesen (drieseng@users.sourceforge.net)
5 //
6 // (C) Novell
7 //
8
9 //
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
17 // 
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
20 // 
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 //
29
30 using System.Collections;
31 using System.ComponentModel;
32 using System.Configuration.Install;
33
34 namespace System.Diagnostics
35 {
36         public class PerformanceCounterInstaller : ComponentInstaller
37         {
38                 public PerformanceCounterInstaller ()
39                 {
40                 }
41
42                 [MonoTODO]
43                 public override void CopyFromComponent (IComponent component)
44                 {
45                         throw new NotImplementedException ();
46                 }
47
48                 [MonoTODO]
49                 public override void Install (IDictionary stateSaver)
50                 {
51                         throw new NotImplementedException ();
52                 }
53
54                 [MonoTODO]
55                 public override void Rollback (IDictionary savedState)
56                 {
57                         throw new NotImplementedException ();
58                 }
59
60                 [MonoTODO]
61                 public override void Uninstall (IDictionary savedState)
62                 {
63                         throw new NotImplementedException ();
64                 }
65
66                 [DefaultValue ("")]
67                 [MonitoringDescription ("PCI_CategoryHelp")]
68                 public string CategoryHelp {
69                         get {
70                                 return _categoryHelp;
71                         }
72                         set {
73                                 if (value == null)
74                                         throw new ArgumentNullException ("value");
75
76                                 _categoryHelp = value;
77                         }
78                 }
79
80                 [DefaultValue ("")]
81                 [TypeConverter ("System.Diagnostics.Design.StringValueConverter, " + Consts.AssemblySystem_Design)]
82                 public string CategoryName {
83                         get {
84                                 return _categoryName;
85                         }
86                         set {
87                                 if (value == null)
88                                         throw new ArgumentNullException ("value");
89
90                                 _categoryName = value;
91                         }
92                 }
93
94                 [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
95                 [MonitoringDescription("PCI_Counters")]
96                 public CounterCreationDataCollection Counters {
97                         get {
98                                 return _counters;
99                         }
100                 }
101
102                 [DefaultValue (UninstallAction.Remove)]
103                 [MonitoringDescription ("PCI_UninstallAction")]
104                 public UninstallAction UninstallAction {
105                         get {
106                                 return _uninstallAction;
107                         }
108                         set {
109                                 if (!Enum.IsDefined(typeof(UninstallAction), value))
110                                         // LAMESPEC, the docs do not mention this, but 
111                                         // this exception is indeed thrown for invalid
112                                         // values
113                                         throw new InvalidEnumArgumentException("value", 
114                                                 (int) value, typeof(UninstallAction));
115
116                                 _uninstallAction = value;
117                         }
118                 }
119
120                 private string _categoryHelp = string.Empty;
121                 private string _categoryName = string.Empty;
122                 private CounterCreationDataCollection _counters = new CounterCreationDataCollection ();
123                 private UninstallAction _uninstallAction = UninstallAction.Remove;
124         }
125 }