Esempio n. 1
0
        public DirectorNodeService(string TAG, IEnumerable <NodeName> allNodeNames, INodeProxyProvider proxyProvider, DCEPSettings settings)
        {
            this.TAG                   = TAG + "[DirectorNodeService] ";
            this.allNodeNames          = allNodeNames;
            this.settings              = settings;
            this.localNodeCanTerminate = false;
            if (settings.duration != 0)
            {
                this.durationMS = settings.timeUnit.GetTimeSpanFromDuration(settings.duration).TotalMilliseconds;
            }

            experimentRunMessageQueue = new SerializableQueue <ExperimentRunNodeDataMessage>();

            nodesToWaitWithStartingFor = new HashSet <NodeName>(allNodeNames);
            systemState = NodeExecutionState.WaitForStart;

            lastReadyToTerminateSignalTime = new Dictionary <NodeName, double>();
            experimentRunDataByNodeName    = new Dictionary <NodeName, ExperimentRunData>();

            foreach (var nodeName in allNodeNames)
            {
                lastReadyToTerminateSignalTime[nodeName] = -1;
                experimentRunDataByNodeName[nodeName]    = null;
            }

            this.proxyProvider = proxyProvider;

            Thread t = new Thread(new ThreadStart(threadStartMethod));

            t.Start();
        }
        public DatasetPrimitiveEventInputService(INodeProxyProvider proxyProvider, string tag, string filePath,
                                                 NodeName nodeName, DCEPSettings settings) : base(proxyProvider, nodeName)
        {
            TAG = tag + "[DatasetPrimitiveEventInputService] ";
            var inputfilepath = new FileInfo(settings.InputFilePath).Directory.FullName;

            filePath  = filePath.Replace("%NodeName%", nodeName.ToString());
            _filePath = Path.Combine(inputfilepath, Path.GetFileName(filePath));
            _settings = settings;
        }
Esempio n. 3
0
        public void onFirstStart(INodeProxyProvider proxyProvider)
        {
            this.proxyProvider = proxyProvider;

            /*proxyDict = new Dictionary<NodeName, IAmbrosiaNodeProxy>();
             *
             * foreach (var nName in executionPlan.networkPlan.Keys)
             * {
             *  proxyDict[nName] = proxyProvider.getProxy(nName);
             * }
             */
            if (settings.directorNodeName == null)
            {
                throw new ArgumentException(TAG + "DirectorNodeName must not be null.");
            }

            /*if (proxyDict.Keys.Contains(settings.directorNodeName)){
             *  throw new ArgumentException(TAG + "DirectorNodeName " + settings.directorNodeName.ToString() + " could not be found in proxydict.");
             * }*/

            //directorNodeProxy = proxyDict[settings.directorNodeName];
            //thisProxy = proxyDict[nodeName];

            var forwardRules = executionPlan.forwardRulesByNodeName[nodeName];

            this.forwardRuleProcessor = new ForwardRuleProcessor(TAG, forwardRules, proxyProvider);

            initPrimitiveEventSourceService();

            if (this.nodeName.Equals(settings.directorNodeName))
            {
                directorNodeService = new DirectorNodeService(TAG,
                                                              executionPlan.networkPlan.Keys.ToList(),
                                                              proxyProvider,
                                                              settings);
            }
        }
Esempio n. 4
0
 public ForwardRuleProcessor(string TAG, Dictionary <EventType, ForwardRule> forwardRules, INodeProxyProvider proxyProvider)
 {
     this.TAG           = TAG + "[ForwardRuleProcessor] ";
     this.forwardRules  = forwardRules;
     this.proxyProvider = proxyProvider;
 }
        public RandomPrimitiveEventGenerationService(NodeName nodeName, NodeParams nodeparams, INodeProxyProvider proxyProvider, DCEPSettings settings) : base(proxyProvider, nodeName)
        {
            this.nodeName   = nodeName;
            eventGenerators = new List <PrimitiveEventGenerator>();


            foreach (var e in nodeparams.primitiveEventNames.Zip(nodeparams.primitiveEventRates, (e, r) => new { Name = e, Rate = r }))
            {
                if (e.Rate > 0)
                {
                    eventGenerators.Add(new PrimitiveEventGenerator(e.Rate, settings.timeUnit, e.Name));
                }
            }
        }
Esempio n. 6
0
 protected PrimitiveEventSourceService(INodeProxyProvider proxyProvider, NodeName nodeName)
 {
     this.proxyProvider = proxyProvider;
     _nodeName          = nodeName;
 }