예제 #1
0
        //step back
        protected override void NotifyBack(IColorable from, SerialSignal signal)
        {
            if (!(from is OutPoint) && from != this)
            {
                //
                return;
            }
            lock (this)
            {
                if (Output.IsFiltered(from))
                {
                    return;
                }
            }
            //Signal == true;
            signal.StopSending();

            Output.Filter(from);
            //if signal==true - we have to signal, otherwise we just need to find other output;
            if (from == CurrentPath)
            {
                FlowResult();
            }
            if (!SignalIfCan())
            {
                return;
            }
            Signal = signal;
            Output.Filter(from);

            base.NotifyBack(this, signal);
            InvokeOnNotifyBack();
            Input.NotifyBack(this, signal);
        }