public void Init() { var assembly = BuildAssembly(); var mat = assembly.Materialize(Attributes.None, assembly.Stages.Select(s => s.Module).ToArray(), new Dictionary <IModule, object>(), s => { }); var inHandlers = mat.Item1; var outHandlers = mat.Item2; var logics = mat.Item3; var interpreter = new GraphInterpreter(assembly, NoMaterializer.Instance, _logger, inHandlers, outHandlers, logics, (l, o, a) => {}, false); var i = 0; foreach (var upstream in _upstreams) { interpreter.AttachUpstreamBoundary(i++, upstream.Item1); } i = 0; foreach (var downstream in _downstreams) { interpreter.AttachDownstreamBoundary((i++) + _upstreams.Count + _connections.Count, downstream.Item2); } interpreter.Init(null); _interpreterSetter(interpreter); }
private static Graph PrepareGraphWithColoringParameters(string path, out int[] startValues) { GraphInterpreter graphInterpreter = new GraphInterpreter(path); Graph graph = graphInterpreter.GetGraph; startValues = graph.Vertexes.ToArray(); return(graph); }
public void ManualInit(GraphAssembly assembly) { var mat = assembly.Materialize(Attributes.None, assembly.Stages.Select(s => s.Module).ToArray(), new Dictionary <IModule, object>(), s => { }); var inHandlers = mat.Item1; var outHandlers = mat.Item2; var logics = mat.Item3; _interpreter = new GraphInterpreter(assembly, NoMaterializer.Instance, _logger, inHandlers, outHandlers, logics, (l, o, a) => {}, false); }
public AssemblyBuilder Builder(params IGraphStageWithMaterializedValue <Shape, object>[] stages) { return(new AssemblyBuilder(_logger, interpreter => _interpreter = interpreter, stages)); }