Merge remote-tracking branch 'mfoliveira/ppc64el-v2'
[mono.git] / mcs / class / System.ServiceProcess / System.ServiceProcess / ServiceInstaller.cs
index 6d90b7e39caa1f2cb6bc922e3864f9eeae8a0557..06b1070671f51aa80f88fd5fbec0bc84870f6ebb 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-
 using System;
 using System.Collections;
 using System.ComponentModel;
 using System.Configuration.Install;
+#if NET_2_0
+using System.Runtime.InteropServices;
+#endif
 
 namespace System.ServiceProcess
 {
-       public class ServiceInstaller : System.Configuration.Install.ComponentInstaller
+       [MonoTODO]
+       public class ServiceInstaller : ComponentInstaller
        {
-               public ServiceInstaller () {}
-
+               public ServiceInstaller ()
+               {
+               }
+               
                private string display_name;
                private string service_name;
                private string[] services_depended_on;
                private ServiceStartMode start_type;
+#if NET_2_0
+               private string description;
+#endif
+#if NET_4_0
+               private bool delayedAutoStart;
+#endif
+
+#if NET_4_0
+               [DefaultValue(false)]
+               [ServiceProcessDescription("Indicates that the service's start should be delayed after other automatically started services have started.")]
+               public bool DelayedAutoStart {
+                       get {
+                               return delayedAutoStart;
+                       }
+                       set {
+                               delayedAutoStart = value;
+                       }
+               }
+#endif
+
+#if NET_2_0
+               [ComVisible (false)]
+               [DefaultValue ("")]
+               [ServiceProcessDescription ("Indicates the service's description (a brief comment that explains the purpose of the service). ")]
+               public string Description {
+                       get {
+                               return description;
+                       }
+                       set {
+                               description = value;
+                       }
+               }
+#endif
 
+               [DefaultValue("")]
+#if NET_2_0
+               [ServiceProcessDescription ("Indicates the friendly name that identifies the service to the user.")]
+#endif
                public string DisplayName {
                        get {
                                return display_name;
@@ -54,6 +96,11 @@ namespace System.ServiceProcess
                        }
                }
 
+               [DefaultValue("")]
+#if NET_2_0
+               [ServiceProcessDescription ("Indicates the name used by the system to identify this service.")]
+#endif
+               [TypeConverter("System.Diagnostics.Design.StringValueConverter, " + Consts.AssemblySystem_Design)]
                public string ServiceName {
                        get {
                                return service_name;
@@ -65,6 +112,9 @@ namespace System.ServiceProcess
                        }
                }
 
+#if NET_2_0
+               [ServiceProcessDescription ("Indicates the services that must be running in order for this service to run.")]
+#endif
                public string[] ServicesDependedOn {
                        get {
                                return services_depended_on;
@@ -74,6 +124,10 @@ namespace System.ServiceProcess
                        }
                }
 
+               [DefaultValue (ServiceStartMode.Manual)]
+#if NET_2_0
+               [ServiceProcessDescription ("Indicates how and when this service is started.")]
+#endif
                public ServiceStartMode StartType {
                        get {
                                return start_type;
@@ -83,24 +137,29 @@ namespace System.ServiceProcess
                        }
                }
 
-               public override void CopyFromComponent (IComponent component) {
+               public override void CopyFromComponent (IComponent component)
+               {
                        if (!component.GetType ().IsSubclassOf (typeof (ServiceBase)))
                                throw new ArgumentException ();
                }
 
-               public override void Install (IDictionary stateSaver) {
+               public override void Install (IDictionary stateSaver)
+               {
                        throw new NotImplementedException ();
                }
        
-               public override bool IsEquivalentInstaller (ComponentInstaller otherInstaller) {
+               public override bool IsEquivalentInstaller (ComponentInstaller otherInstaller)
+               {
                        throw new NotImplementedException ();
                }
 
-               public override void Rollback (IDictionary savedState) {
+               public override void Rollback (IDictionary savedState)
+               {
                        throw new NotImplementedException ();
                }
 
-               public override void Uninstall (IDictionary savedState) {
+               public override void Uninstall (IDictionary savedState)
+               {
                        throw new NotImplementedException ();
                }
        }