Example #1
0
        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();
            }
        }
Example #2
0
        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());
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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.");
        }