Browse Source

Support multiple optionally element depend to specify a service that must start before this service starts.

git-svn-id: https://svn.kenai.com/svn/winsw~subversion/trunk@12 c8b2a3fe-9b5b-6a51-a37e-dc31b0e308fa
jjasper4 17 years ago
parent
commit
127d6ca5a3
1 changed files with 20 additions and 1 deletions
  1. 20 1
      Main.cs

+ 20 - 1
Main.cs

@@ -146,6 +146,24 @@ namespace winsw
             }
         }
 
+        /// <summary>
+        /// Optionally specified depend services that must start before this service starts.
+        /// </summary>
+        public string[] ServiceDependencies
+        {
+            get
+            {
+                System.Collections.ArrayList serviceDependencies = new System.Collections.ArrayList();
+
+                foreach (XmlNode depend in dom.SelectNodes("//depend"))
+                {
+                    serviceDependencies.Add(depend.InnerText);
+                }
+
+                return (string[])serviceDependencies.ToArray(typeof(string));
+            }
+        }
+
         public string Id
         {
             get
@@ -422,7 +440,8 @@ namespace winsw
                         WMI.ServiceType.OwnProcess,
                         ErrorControl.UserNotified,
                         StartMode.Automatic,
-                        d.Interactive);
+                        d.Interactive,
+                        d.ServiceDependencies);
                     // update the description
                     /* Somehow this doesn't work, even though it doesn't report an error
                     Win32Service s = svc.Select(d.Id);