예제 #1
0
    public void iFailed(ICommand command)
    {
        if (m_Running == false)
        {
            return;
        }

        if (command != m_Current.Value)
        {
            return;
        }

        var failedCommand = m_Current.Value;

        switch (m_ReceiverMode)
        {
        case ReceiverMode.Container:
        {                       // stop if container
            (m_Current.Value as ICommandProcess)?.iStop();
            m_Current = null;
            m_Running = false;
        }       break;

        case ReceiverMode.Process:
        {                       // move next if process
            implNextCommand();
        }       break;
        }

        m_CommandListener.iFailed(failedCommand);
    }
예제 #2
0
 public void iFailed(ICommand command) => m_RedirectionTarget.iFailed(command);
예제 #3
0
 public void iFailed(ICommand command)
 {
     m_State = State.Failed;
     m_CommandNotifier.iFailed(m_CurrentCommand.Value);
     m_CommandValidator?.iFailed(command);
 }