New test.
[mono.git] / mcs / class / System.ServiceProcess / System.ServiceProcess / ServiceControllerImpl.cs
1 //
2 // System.ServiceProcess.ServiceControllerImpl
3 //
4 // Author:
5 //      Gert Driesen (drieseng@users.sourceforge.net)
6 //
7 // Copyright (C) 2006 Novell, Inc (http://www.novell.com)
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 namespace System.ServiceProcess
31 {
32         internal abstract class ServiceControllerImpl
33         {
34                 protected ServiceControllerImpl (ServiceController serviceController)
35                 {
36                         _serviceController = serviceController;
37                 }
38
39                 protected ServiceController ServiceController {
40                         get {
41                                 return _serviceController;
42                         }
43                 }
44
45                 public abstract bool CanPauseAndContinue {
46                         get;
47                 }
48
49                 public abstract bool CanShutdown {
50                         get;
51                 }
52
53                 public abstract bool CanStop {
54                         get;
55                 }
56
57                 public abstract ServiceController [] DependentServices {
58                         get;
59                 }
60
61                 public abstract string DisplayName {
62                         get;
63                 }
64
65                 public abstract string ServiceName {
66                         get;
67                 }
68
69                 public abstract ServiceController [] ServicesDependedOn {
70                         get;
71                 }
72
73                 public abstract ServiceType ServiceType {
74                         get;
75                 }
76
77                 public abstract ServiceControllerStatus Status
78                 {
79                         get;
80                 }
81
82                 public abstract void Close ();
83
84                 public abstract void Continue ();
85
86                 public abstract void Dispose (bool disposing);
87
88                 public abstract void ExecuteCommand (int command);
89
90                 public abstract ServiceController [] GetDevices ();
91
92                 public abstract ServiceController [] GetServices ();
93
94                 public abstract void Pause ();
95
96                 public abstract void Refresh ();
97
98                 public abstract void Start (string [] args);
99
100                 public abstract void Stop ();
101
102                 private readonly ServiceController _serviceController;
103         }
104 }