예제 #1
0
        public Solvable GetSolvable(string name)
        {
            Solvable s = null;

            foreach (Solvable solvable in GetSolvableList())
            {
                if (solvable.Name.Equals(name))
                {
                    s = solvable;
                    break;
                }
            }
            return(s);
        }
예제 #2
0
        public override bool Equals(object obj)
        {
            Solvable sovable = obj as Solvable;

            if (sovable == null)
            {
                return(false);
            }

            bool isEqual = false;

            if (name.Equals(sovable.Name))
            {
                isEqual = true;
            }
            return(isEqual);
        }
예제 #3
0
        public int CompareTo(object other)
        {
            Solvable solvable = other as Solvable;

            //return name.CompareTo(solvable.name);
            char[] name1Chars = name.ToCharArray();
            char[] name2Chars = solvable.name.ToCharArray();
            int    name1      = 0;

            foreach (char c in name1Chars)
            {
                name1 += (int)c;
            }
            int name2 = 0;

            foreach (char c in name2Chars)
            {
                name2 += (int)c;
            }
            return(name1.CompareTo(name2));
        }
예제 #4
0
        private void QueueStreamsAndUnitOpsForErase(Solvable solvable)
        {
            ProcessStreamBase ps = solvable as ProcessStreamBase;

            if (ps != null)
            {
                if (!eraseSolvableQueue.Contains(ps))
                {
                    eraseSolvableQueue.Enqueue(ps);
                }
                QueueStreamsAndUnitOpsForErase(ps);
            }
            else
            {
                UnitOperation uo = solvable as UnitOperation;
                if (uo != null && !eraseSolvableQueue.Contains(uo))
                {
                    QueueStreamsAndUnitOpsForErase(uo);
                }
            }
        }
예제 #5
0
        private void QueueStreamsAndUnitOpsForCalculate(Solvable solvable, bool specify)
        {
            Trace.WriteLine("Queue solvable " + solvable.Name);

            if (solvable is ProcessStreamBase)
            {
                ProcessStreamBase ps = solvable as ProcessStreamBase;
                if (!ps.HasSolvedAlready)
                {
                    calculateStreamQueue.Enqueue(ps);
                }
                QueueStreamsAndUnitOpsforForCalculate(ps, specify);
            }
            else if (solvable is UnitOperation)
            {
                UnitOperation uo = solvable as UnitOperation;
                if (!calculateUnitOpQueue.Contains(uo))
                {
                    QueueStreamsAndUnitOpsForCalculate(uo, specify);
                }
            }
        }
예제 #6
0
        public int CompareTo(object other)
        {
            Solvable solvable = other as Solvable;

            return(name.CompareTo(solvable.name));
        }
예제 #7
0
 public void OnSolvableCalculated(Solvable solvable, bool specify)
 {
     QueueStreamsAndUnitOpsForCalculate(solvable, specify);
 }
예제 #8
0
 public void OnSolvableSpecified(Solvable solvable)
 {
     QueueStreamsAndUnitOpsForErase(solvable);
 }