예제 #1
0
        private string getStatusString(Status_t s)
        {
            byte index = (byte)s;

            if (index <= 2)
            {
                return(statusArr[index]);
            }
            else
            {
                return(statusArr[2]);
            }
        }
예제 #2
0
        /// <summary>
        /// Return true if the dependencies for this job have been satisfied.
        /// </summary>
        public bool DependenciesSatisfied()
        {
            foreach (DependsOn Dependency in DependsOn)
            {
                Target T = Project.FindTarget(Dependency.Name);
                if (T != null)
                {
                    if (T.Status == Status_t.Waiting)
                    {
                        return(false);
                    }
                    else if (T.Status == Status_t.Running)
                    {
                        return(false);
                    }
                    else if (T.Status == Status_t.Fail && !Dependency.IgnoreErrors)
                    {
                        Status = Status_t.Fail;
                        return(false);
                    }
                }
                else
                {
                    IJob J = Project.FindJob(Dependency.Name);
                    if (J == null)
                    {
                        throw new Exception("Job " + Name + " Cannot find dependency: " + Dependency.Name);
                    }

                    if (J.Status == Status_t.Waiting)
                    {
                        return(false);
                    }

                    else if (J.Status == Status_t.Fail && !Dependency.IgnoreErrors)
                    {
                        Status = Status_t.Fail;
                        return(false);
                    }
                    else if (J.Status == Status_t.Running)
                    {
                        return(false);
                    }
                }
            }
            // We are good to go.
            return(true);
        }