Beispiel #1
0
 private void ValidateIsNotNull(IGuardCondition guardCondition)
 {
     if (guardCondition == null)
     {
         throw new ArgumentNullException(nameof(guardCondition));
     }
 }
Beispiel #2
0
        public void AddGuardConditionTo(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
        {
            ValidateContainsTransition(transition);
            ValidateIsNotIn(InternalState.EvaluatingTransitions);

            _transitionValidator.AddGuardConditionTo(transition, guardCondition);
        }
Beispiel #3
0
        public void AddGuardConditionTo(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
        {
            ValidateIsNotNull(guardCondition);
            ValidateContainsTransition(transition);

            _transitionValidator.AddGuardConditionTo(transition, guardCondition);
        }
Beispiel #4
0
        public void AddGuardConditionTo(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
        {
            if (_guardConditions.ContainsKey(transition) == false)
            {
                _guardConditions.Add(transition, new List <IGuardCondition>());
            }

            _guardConditions[transition].Add(guardCondition);
        }
Beispiel #5
0
        public void AddGuardConditionTo(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
        {
            ValidateHasTransition(transition);
            ValidateGuardConditionIsNotNull(guardCondition);
            ValidateIsNotIn(PlainStateMachineInternalState.EvaluatingTransitions);

            if (_guardConditions.ContainsKey(transition) == false)
            {
                _guardConditions.Add(transition, new List <IGuardCondition>());
            }

            _guardConditions[transition].Add(guardCondition);
        }
Beispiel #6
0
        public void SetUp()
        {
            _stateMachine = NewStateMachine();

            _stateId1 = NewStateId();
            _stateId2 = NewStateId();
            _stateId3 = NewStateId();
            _stateId4 = NewStateId();
            _stateId5 = NewStateId();

            _trigger1 = NewTrigger();
            _trigger2 = NewTrigger();
            _trigger3 = NewTrigger();
            _trigger4 = NewTrigger();
            _trigger5 = NewTrigger();

            _stateObject1 = Substitute.For <IState>();
            _stateObject2 = Substitute.For <IState>();
            _stateObject3 = Substitute.For <IState>();
            _stateObject4 = Substitute.For <IState>();
            _stateObject5 = Substitute.For <IState>();

            _guardCondition1 = Substitute.For <IGuardCondition>();
            _guardCondition2 = Substitute.For <IGuardCondition>();
            _guardCondition3 = Substitute.For <IGuardCondition>();
            _guardCondition4 = Substitute.For <IGuardCondition>();
            _guardCondition5 = Substitute.For <IGuardCondition>();

            _stateEventHandler1 = Substitute.For <IStateEventHandler>();
            _stateEventHandler2 = Substitute.For <IStateEventHandler>();
            _stateEventHandler3 = Substitute.For <IStateEventHandler>();
            _stateEventHandler4 = Substitute.For <IStateEventHandler>();
            _stateEventHandler5 = Substitute.For <IStateEventHandler>();

            _event1 = Substitute.For <IEvent>();

            _onBeforeStateChangesSubscriptor1 = Substitute.For <StateChanged <TState, TTrigger> >();
            _onBeforeStateChangesSubscriptor2 = Substitute.For <StateChanged <TState, TTrigger> >();
            _onBeforeStateChangesSubscriptor3 = Substitute.For <StateChanged <TState, TTrigger> >();

            _onStateChangedSubscriptor1 = Substitute.For <StateChanged <TState, TTrigger> >();
            _onStateChangedSubscriptor2 = Substitute.For <StateChanged <TState, TTrigger> >();
            _onStateChangedSubscriptor3 = Substitute.For <StateChanged <TState, TTrigger> >();

            _startCallback     = Substitute.For <Action>();
            _stopCallback      = Substitute.For <Action>();
            _updateCallback    = Substitute.For <Action>();
            _triggerCallback   = Substitute.For <Action <bool> >();
            _sendEventCallback = Substitute.For <Action <bool> >();
        }
        /**
         * Condition specific callback from GuardConditions to WaitSet.
         */
        internal ReturnCode wlReq_DetachGuardCondition(IGuardCondition guardCond)
        {
            ReturnCode result;

            Debug.Assert(guardList.Contains(guardCond));
            result = SacsSuperClass.uResultToReturnCode(
                DDS.OpenSplice.User.WaitSet.Notify(rlReq_UserPeer, IntPtr.Zero));
            if (result == DDS.ReturnCode.Ok)
            {
                guardList.Remove(guardCond);
            }
            else
            {
                ReportStack.Report(result, "Could not detach GuardCondition from WaitSet.");
            }
            return(result);
        }
Beispiel #8
0
        public bool ContainsGuardConditionOn(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
        {
            if (_guardConditions.ContainsKey(transition))
            {
                return(_guardConditions[transition].Contains(guardCondition));
            }

            return(false);
        }
Beispiel #9
0
        public bool RemoveGuardConditionFrom(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
        {
            ValidateHasTransition(transition);
            ValidateGuardConditionIsNotNull(guardCondition);

            if (ContainsGuardConditionOn(transition, guardCondition))
            {
                ValidateIsNotIn(PlainStateMachineInternalState.EvaluatingTransitions);

                _guardConditions[transition].Remove(guardCondition);

                if (_guardConditions[transition].Count == 0)
                {
                    _guardConditions.Remove(transition);
                }

                return(true);
            }

            return(false);
        }
Beispiel #10
0
 public bool ContainsGuardConditionOn(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
 {
     return(_transitionValidator.ContainsGuardConditionOn(transition, guardCondition));
 }
Beispiel #11
0
 public bool RemoveGuardConditionFrom(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
 {
     return(_transitionValidator.RemoveGuardConditionFrom(transition, guardCondition));
 }
Beispiel #12
0
 private void ValidateCanRemoveGuardCondition(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
 {
     if (_guardConditions.ContainsKey(transition) &&
         _guardConditions[transition].Contains(guardCondition) &&
         _isRemoveLocked)
     {
         throw new UnableToRemoveStateMachineElementException(_stateMachine, guardCondition);
     }
 }
Beispiel #13
0
        public bool RemoveGuardConditionFrom(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
        {
            ValidateCanRemoveGuardCondition(transition, guardCondition);

            if (_guardConditions.ContainsKey(transition))
            {
                bool removed = _guardConditions[transition].Remove(guardCondition);

                if (_guardConditions[transition].Count == 0)
                {
                    _guardConditions.Remove(transition);
                }

                return(removed);
            }

            return(false);
        }
Beispiel #14
0
 private void ValidateCanAddGuardCondition(Transition <TState, TTrigger> transition, IGuardCondition guardCondition)
 {
     if (_guardConditions.ContainsKey(transition) && _isAddLocked)
     {
         throw new UnableToAddStateMachineElementException(_stateMachine, guardCondition);
     }
 }