public SimulationEnvironment(string[] inputlines, DCEPSettings settings) { this.nodedict = new Dictionary <NodeName, DCEPNode>(); this.proxydict = new Dictionary <NodeName, IAmbrosiaNodeProxy>(); ExecutionPlan executionPlan = new ExecutionPlan(inputlines); Console.WriteLine(executionPlan.generateHumanReadableString()); foreach (var item in executionPlan.networkPlan) { DCEPNode node = new DCEPNode(item.Key, inputlines, settings); nodedict.Add(item.Key, node); proxydict.Add(item.Key, new SimulatedAmbrosiaSelfProxy(node)); } foreach (var item in nodedict) { item.Value.onFirstStart((INodeProxyProvider)this); new Thread(item.Value.threadStartMethod).Start(); } if (settings.duration == 0) { Console.WriteLine("[SimulationEnvironment] Running indefinitly. Press enter to terminate all nodes immediately."); Console.ReadLine(); (nodedict[settings.directorNodeName] as DCEPNode).terminateImmediately(); } }
public void test_DCEPNodeInstantiation_SampleA() { ExecutionPlan executionPlan = new ExecutionPlan(new InputSamples().sampleA); foreach (var item in executionPlan.networkPlan) { var node = new DCEPNode(item.Key, new InputSamples().sampleA, new DCEPSettings()); } }
protected override async Task <bool> OnFirstStart() { Console.WriteLine(TAG + " [AmbrosiaNode] OnFirstStart called -> creating DCEPNode and starting DCEPNode thread."); this.node = new DCEPNode(new NodeName(name), inputlines, settings); node.onFirstStart((INodeProxyProvider)this); new Thread(node.threadStartMethod).Start(); return(true); }
public TestEnvorioment(string[] inputlines, DCEPSettings settings) { this.nodedict = new Dictionary <NodeName, DCEPNode>(); this.proxydict = new Dictionary <NodeName, IAmbrosiaNodeProxy>(); ExecutionPlan executionPlan = new ExecutionPlan(inputlines); Console.WriteLine(executionPlan.generateHumanReadableString()); foreach (var item in executionPlan.networkPlan) { DCEPNode node = new DCEPNode(item.Key, inputlines, settings); nodedict.Add(item.Key, node); proxydict.Add(item.Key, new SimulatedAmbrosiaSelfProxy(node)); } foreach (var item in nodedict) { item.Value.onFirstStart((INodeProxyProvider)this); new Thread(item.Value.threadStartMethod).Start(); } Console.WriteLine("[TestEnvironment] Running."); }