コード例 #1
0
 protected void LinkElement(IPipelineElement <T> source, IPipelineElement <T> destination)
 {
     if (source != null && destination != null)
     {
         source.Emit += destination.Consume;
     }
 }
コード例 #2
0
ファイル: Pipeline.cs プロジェクト: YG-brish/New-Assagment
 public void Add(IPipelineElement anElement)
 {
     pipeline.Add(anElement);
     if (pipeline.Count > 1)
     {
         pipeline[pipeline.Count - 2].Connect(pipeline[pipeline.Count - 1]);
     }
 }
コード例 #3
0
 protected void UnlinkElements(IEnumerable <IPipelineElement <T> > elements)
 {
     if (elements != null && elements.Any())
     {
         IPipelineElement <T> prevElement = null;
         foreach (var element in elements)
         {
             UnlinkElement(prevElement, element);
             prevElement = element;
         }
     }
 }
コード例 #4
0
        protected void Link <T2>(IPipelineElement <T> source, T2 destination)
        {
            if (source != null && destination != null)
            {
                switch (destination)
                {
                case IPipelineElement <T> nextElement:
                    source.Emit += nextElement.Consume;
                    break;

                case IEnumerable <IPipelineElement <T> > nextGroup:
                    source.Emit += nextGroup.First().Consume;
                    break;

                case Action <T> nextAction:
                    source.Emit += nextAction;
                    break;
                }
            }
        }
コード例 #5
0
ファイル: FileReader.cs プロジェクト: san-had/codewars
 public void Connect(IPipelineElement next)
 {
     throw new NotImplementedException();
 }
コード例 #6
0
ファイル: Odds.cs プロジェクト: jiowchern/Regulus
 void IPipelineElement.Connect(IPipelineElement next)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
ファイル: FileReader.cs プロジェクト: YG-brish/New-Assagment
 public void Connect(IPipelineElement next)
 {
     next.SetInput(outputStream);
 }
コード例 #8
0
 public void Connect(IPipelineElement next)
 {
     throw new InvalidOperationException("No output from this element");
 }
コード例 #9
0
 public IPipelineBuilder <TSource, TOut> AddElement <TOut>(IPipelineElement <TOutput, TOut> element)
 {
     _lastElement.Emit = element.SubscribeToData;
     return(new PipelineBuilder <TSource, TOut>(element, _elements));
 }
コード例 #10
0
 private PipelineBuilder(IPipelineElement <TOutput> element, IEnumerable <IPipelineElement> elements)
 {
     _lastElement = element;
     _elements    = new Stack <IPipelineElement>(elements);
     _elements.Push(element);
 }
コード例 #11
0
 public abstract void Connect(IPipelineElement next);
コード例 #12
0
 public override void Connect(IPipelineElement next)
 {
     next.SetInput(Contexto);
 }
コード例 #13
0
ファイル: Pipeline.cs プロジェクト: vikinka1233/endless-ql
 public void ConnectElement(IPipelineElement <T> element)
 {
     _steps.Add(element);
 }
コード例 #14
0
 public void RemoveElement(IPipelineElement element)
 => _pipelineElements.Remove(element);
コード例 #15
0
 public PipelineBuilder(IPipelineElement <TOutput> sourceElement)
 {
     _lastElement = sourceElement;
     _elements    = new Stack <IPipelineElement>();
     _elements.Push(_lastElement);
 }
コード例 #16
0
 public void AddElement(IPipelineElement element)
 => _pipelineElements.Add(element);
コード例 #17
0
 /// <summary>
 /// To Register filter in the pipeline
 /// </summary>
 /// <param name="filter">A filter object implementing IFilter interface</param>
 /// <returns></returns>
 public Pipeline <T> Register(IPipelineElement <T> filter)
 {
     pipeItems.Add(filter);
     return(this);
 }