private static IList<IPipelineUnit> GetNewLinearPipeline(IPipelineUnit soruceUnit, IEnumerable<IPipelineIntermediate> intermediatesUnit, IPipelineUnit sinkUnit) { var result = new List<IPipelineUnit> { soruceUnit }; result.AddRange(intermediatesUnit); result.Add(sinkUnit); return result; }
public void Link(IPipelineUnit source, IPipelineUnit target) { var connectableFrom = source as IPipelineConnectableFrom<IPipelineOutputConnector>; var connectableTo = source as IPipelineConnectableTo<IPipelineInputConnector>; if (connectableFrom == null) { throw new InvalidPipelineConnectableElementTypeException(source); } if (connectableTo == null) { throw new InvalidPipelineConnectableElementTypeException(target); } Link(connectableFrom, connectableTo); }
public InvalidPipelineConnectableElementTypeException(IPipelineUnit connectableElement) { elementTypeName = connectableElement.GetType().FullName; }