/// <summary> /// Builds a pipelines that is a consistent amount of pipelines throughout execution /// </summary> /// <returns>prepared pipelines</returns> private static PipelineExecutor[] BuildLinearPipeline() { int inputAmount = inputs[0].plugin.InputDataQuantity(NodeValueOrInput(inputs[0].nodeId)); Console.WriteLine(inputAmount + " valid files found!"); //Ensure consistent input amount for (int i = 1; i < inputs.Length; i++) { if (inputAmount != inputs[i].plugin.InputDataQuantity(NodeValueOrInput(inputs[i].nodeId))) { throw new InputPluginQuantityMismatchException(); } } //create a pipeline for each input data PipelineExecutor[] pipes = new PipelineExecutor[inputAmount]; for (int i = 0; i < inputAmount; i++) { pipes[i] = new PipelineExecutor(dependencyGraph, staticData, i, specialNodes, InputDirectory, OutputDirectory); } foreach (SyncNode sync in specialNodes.SyncInformation.SyncNodes) { sync.StateInfo(pipes.Length, pipes); } PrepareInputData(inputs, pipes); return(pipes); }
public TaskRunner(IPlugin plugin, DependentNode node, DataStore resultData, DataStore staticData, PipelineExecutor pipe, int run) { this.plugin = plugin; this.node = node; this.resultData = resultData; this.staticData = staticData; executor = pipe; this.run = run; }