1 // 2 // System.ServiceProcess.ServiceInstaller.cs 3 // 4 // Authors: 5 // Geoff Norton (gnorton@customerdna.com) 6 // 7 // (C) 2005, Geoff Norton 8 // 9 10 // 11 // Permission is hereby granted, free of charge, to any person obtaining 12 // a copy of this software and associated documentation files (the 13 // "Software"), to deal in the Software without restriction, including 14 // without limitation the rights to use, copy, modify, merge, publish, 15 // distribute, sublicense, and/or sell copies of the Software, and to 16 // permit persons to whom the Software is furnished to do so, subject to 17 // the following conditions: 18 // 19 // The above copyright notice and this permission notice shall be 20 // included in all copies or substantial portions of the Software. 21 // 22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 29 // 30 31 using System; 32 using System.Collections; 33 using System.ComponentModel; 34 using System.Configuration.Install; 35 using System.Runtime.InteropServices; 36 37 namespace System.ServiceProcess 38 { 39 [MonoTODO] 40 public class ServiceInstaller : ComponentInstaller 41 { ServiceInstaller()42 public ServiceInstaller () 43 { 44 } 45 46 private string display_name; 47 private string service_name; 48 private string[] services_depended_on; 49 private ServiceStartMode start_type; 50 private string description; 51 private bool delayedAutoStart; 52 53 [DefaultValue(false)] 54 [ServiceProcessDescription("Indicates that the service's start should be delayed after other automatically started services have started.")] 55 public bool DelayedAutoStart { 56 get { 57 return delayedAutoStart; 58 } 59 set { 60 delayedAutoStart = value; 61 } 62 } 63 64 [ComVisible (false)] 65 [DefaultValue ("")] 66 [ServiceProcessDescription ("Indicates the service's description (a brief comment that explains the purpose of the service). ")] 67 public string Description { 68 get { 69 return description; 70 } 71 set { 72 description = value; 73 } 74 } 75 76 [DefaultValue("")] 77 [ServiceProcessDescription ("Indicates the friendly name that identifies the service to the user.")] 78 public string DisplayName { 79 get { 80 return display_name; 81 } 82 set { 83 display_name = value; 84 } 85 } 86 87 [DefaultValue("")] 88 [ServiceProcessDescription ("Indicates the name used by the system to identify this service.")] 89 [TypeConverter("System.Diagnostics.Design.StringValueConverter, " + Consts.AssemblySystem_Design)] 90 public string ServiceName { 91 get { 92 return service_name; 93 } 94 set { 95 if (value == null || value.Length == 0 || value.Length > 256) 96 throw new ArgumentException (); 97 service_name = value; 98 } 99 } 100 101 [ServiceProcessDescription ("Indicates the services that must be running in order for this service to run.")] 102 public string[] ServicesDependedOn { 103 get { 104 return services_depended_on; 105 } 106 set { 107 services_depended_on = value; 108 } 109 } 110 111 [DefaultValue (ServiceStartMode.Manual)] 112 [ServiceProcessDescription ("Indicates how and when this service is started.")] 113 public ServiceStartMode StartType { 114 get { 115 return start_type; 116 } 117 set { 118 start_type = value; 119 } 120 } 121 CopyFromComponent(IComponent component)122 public override void CopyFromComponent (IComponent component) 123 { 124 if (!component.GetType ().IsSubclassOf (typeof (ServiceBase))) 125 throw new ArgumentException (); 126 } 127 Install(IDictionary stateSaver)128 public override void Install (IDictionary stateSaver) 129 { 130 throw new NotImplementedException (); 131 } 132 IsEquivalentInstaller(ComponentInstaller otherInstaller)133 public override bool IsEquivalentInstaller (ComponentInstaller otherInstaller) 134 { 135 throw new NotImplementedException (); 136 } 137 Rollback(IDictionary savedState)138 public override void Rollback (IDictionary savedState) 139 { 140 throw new NotImplementedException (); 141 } 142 Uninstall(IDictionary savedState)143 public override void Uninstall (IDictionary savedState) 144 { 145 throw new NotImplementedException (); 146 } 147 } 148 } 149