示例#1
0
 protected void LinkElement(IPipelineElement <T> source, IPipelineElement <T> destination)
 {
     if (source != null && destination != null)
     {
         source.Emit += destination.Consume;
     }
 }
示例#2
0
 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
 public void Connect(IPipelineElement next)
 {
     throw new NotImplementedException();
 }
示例#6
0
文件: Odds.cs 项目: jiowchern/Regulus
 void IPipelineElement.Connect(IPipelineElement next)
 {
     throw new NotImplementedException();
 }
示例#7
0
 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);
 }
 public abstract void Connect(IPipelineElement next);
 public override void Connect(IPipelineElement next)
 {
     next.SetInput(Contexto);
 }
示例#13
0
 public void ConnectElement(IPipelineElement <T> element)
 {
     _steps.Add(element);
 }
 public void RemoveElement(IPipelineElement element)
 => _pipelineElements.Remove(element);
示例#15
0
 public PipelineBuilder(IPipelineElement <TOutput> sourceElement)
 {
     _lastElement = sourceElement;
     _elements    = new Stack <IPipelineElement>();
     _elements.Push(_lastElement);
 }
 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);
 }