/// <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(); }
public RestrictionManager Clone() { RestrictionManager clone = (RestrictionManager)MemberwiseClone(); clone.restrictions = new List <Restriction>(); foreach (Restriction rest in restrictions) { clone.restrictions.Add(rest.Clone()); } return(clone); }
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(); } } }
/// <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(); }