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; }
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); } }
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)); } } }
protected PrimitiveEventSourceService(INodeProxyProvider proxyProvider, NodeName nodeName) { this.proxyProvider = proxyProvider; _nodeName = nodeName; }