コード例 #1
0
ファイル: FlowPathStrategy.cs プロジェクト: superbe/Pipeline
 /// <summary>
 /// Обработка прямого прохода.
 /// </summary>
 /// <param name="args">Аргумент прохода по трубопроводу.</param>
 /// <returns>Аргумент прохода по трубопроводу.</returns>
 public BypassedArgument DirectBypass(BypassedArgument args)
 {
     Thread.Sleep(100);
     args.Add(_component.Name, _component.Level);
     args = _component.Parent.DirectBypass(args);
     return args;
 }
コード例 #2
0
 /// <summary>
 /// Обработка обратного прохода с поднятием данных для прямого прохода.
 /// </summary>
 /// <remarks>Метод необходим для обработки дочерних узлов в прямом проходе,
 /// для соблюдения порядка вложенности.</remarks>
 /// <param name="args">Аргумент прохода по трубопроводу.</param>
 /// <returns>Аргумент прохода по трубопроводу.</returns>
 public BypassedArgument RiseDirectBypass(BypassedArgument args)
 {
     if (_component.Children == null || _component.Children.Count == 0)
         throw new Exception("Нет входного узла");
     foreach (Component child in _component.Children)
         args = child.RiseDirectBypass(args);
     args.Add(_component.Name, _component.Level);
     return args;
 }
コード例 #3
0
 /// <summary>
 /// Обработка прямого прохода.
 /// </summary>
 /// <param name="args">Аргумент прохода по трубопроводу.</param>
 /// <returns>Аргумент прохода по трубопроводу.</returns>
 public BypassedArgument DirectBypass(BypassedArgument args)
 {
     string lastName = args.TransportTrace.Last().Key;
     foreach (Component child in _component.Children)
         if (child.Name != lastName)
             args = child.RiseDirectBypass(args);
     args.Add(_component.Name, _component.Level);
     return _component.Parent.DirectBypass(args);
 }
コード例 #4
0
ファイル: FlowPathStrategy.cs プロジェクト: superbe/Pipeline
 /// <summary>
 /// Обработка обратного прохода.
 /// </summary>
 /// <param name="args">Аргумент прохода по трубопроводу.</param>
 /// <returns>Аргумент прохода по трубопроводу.</returns>
 public BypassedArgument ReverseBypass(BypassedArgument args)
 {
     args.Add(_component.Name, _component.Level);
     Thread.Sleep(100);
     if (_component.Children == null || _component.Children.Count == 0)
         throw new Exception("Нет входного узла");
     foreach (Component child in _component.Children)
         args = child.ReverseBypass(args);
     return args;
 }