예제 #1
0
        /// <summary>
        /// Создание новой операции.
        /// </summary>
        /// <param name="name">Имя операции.</param>
        /// <param name="getN">Функция получения номера операции.</param>
        /// <param name="newOwner">Владелец операции (Менеджер операций)
        /// </param>
        public Mode(string name, GetN getN, ModesManager newOwner)
        {
            this.name  = name;
            this.getN  = getN;
            this.owner = newOwner;

            restrictionMngr = new RestrictionManager();

            stepsMngr = new List <State>();

            var lastState   = State.StateType.STATES_CNT;
            var secondState = State.StateType.PAUSE;

            stepsMngr.Add(new State(State.StateType.RUN, this, true));
            for (var state = secondState; state < lastState; state++)
            {
                stepsMngr.Add(new State(state, this));
            }

            operPar = new OperationParams();

            // Экземпляр класса базовой операции
            baseOperation = new BaseOperation(this);

            SetItems();
        }
예제 #2
0
        public RestrictionManager Clone()
        {
            RestrictionManager clone = (RestrictionManager)MemberwiseClone();

            clone.restrictions = new List <Restriction>();
            foreach (Restriction rest in restrictions)
            {
                clone.restrictions.Add(rest.Clone());
            }

            return(clone);
        }
예제 #3
0
 public void ChangeCrossRestriction(RestrictionManager oldRestrictMngr = null)
 {
     for (int i = 0; i < restrictions.Count; i++)
     {
         if (oldRestrictMngr != null)
         {
             restrictions[i].ChangeCrossRestriction(oldRestrictMngr
                                                    .Restrictions[i].RestrictDictionary);
         }
         else
         {
             restrictions[i].ChangeCrossRestriction();
         }
     }
 }
예제 #4
0
        /// <summary>
        /// Создание новой операции.
        /// </summary>
        /// <param name="name">Имя операции.</param>
        /// <param name="getN">Функция получения номера операции.</param>
        /// <param name="newOwner">Владелец операции (Менеджер операций)
        /// </param>
        public Mode(string name, GetN getN, ModesManager newOwner)
        {
            this.name  = name;
            this.getN  = getN;
            this.owner = newOwner;

            restrictionMngr = new RestrictionManager();

            stepsMngr = new List <State>();

            stepsMngr.Add(new State(StateStr[(int)StateName.RUN], true, this,
                                    true));
            for (StateName i = StateName.PAUSE; i < StateName.STATES_CNT; i++)
            {
                stepsMngr.Add(new State(StateStr[(int)i], true, this));
            }

            operPar = new OperationParams();

            // Экземпляр класса базовой операции
            baseOperation = new BaseOperation(this);

            SetItems();
        }