public ScenarioHandler(IGlobalCountersControl globalCounters, IUniqueIdGenerator <int> threadIterationIdGenerator, IScenario scenario, IIterationControl context) { _scenario = scenario ?? throw new ArgumentNullException(nameof(scenario)); _context = context ?? throw new ArgumentNullException(nameof(context)); _globalCounters = globalCounters ?? throw new ArgumentNullException(nameof(globalCounters)); _threadIterationIdGenerator = threadIterationIdGenerator ?? throw new ArgumentNullException(nameof(threadIterationIdGenerator)); }
public IReplayScenarioHandler Create(IIterationControl iterationContext) { IReplayScenario <TData> scenarioInstance = _scenarioFactory.Create(iterationContext.ThreadId); IReplayScenarioHandler scenarioHandler = new ReplayScenarioHandler <TData>(_globalCounters, new NotThreadSafeIdGenerator(), scenarioInstance, iterationContext); return(scenarioHandler); }
public IScenarioHandler Create(IIterationControl iterationContext) { IScenario scenarioInstance = _factory.Create(iterationContext.ThreadId); IScenarioHandler scenarioHandler = new ScenarioHandler(_globalCounters, new NotThreadSafeIdGenerator(), scenarioInstance, iterationContext); return(scenarioHandler); }
public IThread Create() { IIterationControl iterationContext = _iterationContextFactory.Create(); IReplayScenarioHandler handler = _scenarioHandlerFactory.Create(iterationContext); IScheduler scheduler = _schedulerFactory.Create(handler, iterationContext.ThreadId); IDataCollector collector = _dataCollectorFactory.Create(iterationContext); IThread thread = _threadFactory.Create(scheduler, handler, collector); return(thread); }
public IThread Create() { IIterationControl iterationContext = _iterationContextFactory.Create(); // IScenario handler IScenarioHandler scenarioHandler = _scenarioHandlerFactory.Create(iterationContext); // Scheduler which will Sleep() thread if it needs to wait due to speed limiting strategy. IScheduler scheduler = _schedulerFactory.Create(iterationContext); // Data collector for results aggregation IDataCollector collector = _dataCollectorFactory.Create(iterationContext); IThread thread = _threadFactory.Create(scheduler, scenarioHandler, collector); return(thread); }
public ReplayScenarioHandler(IGlobalCountersControl globalCounters, IUniqueIdGenerator <int> threadIterationIdGenerator, IReplayScenario <TData> scenario, IIterationControl context) : base(globalCounters, threadIterationIdGenerator, scenario, context) { _scenario = scenario; _dataContext = new DataContext <TData> { Timer = context.Timer, Execute = true, Context = context }; }