public ReplayScheduler(ITimer timer, IReplayScenarioHandler scenarioHandler, IReplayDataReader dataReader, IThreadPoolCounter counter, double speedMultiplier, int threadId) { if (timer == null) { throw new ArgumentNullException(nameof(timer)); } if (scenarioHandler == null) { throw new ArgumentNullException(nameof(scenarioHandler)); } if (dataReader == null) { throw new ArgumentNullException(nameof(dataReader)); } if (counter == null) { throw new ArgumentNullException(nameof(counter)); } if (speedMultiplier <= 0) { throw new ArgumentException("speedMultiplier must be above 0", nameof(speedMultiplier)); } _timer = timer; _scenarioHandler = scenarioHandler; _dataReader = dataReader; _counter = counter; _speedMultiplier = speedMultiplier; _threadId = threadId; _waiter = new SemiWait(timer); }
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 IScheduler Create(IReplayScenarioHandler scenarioHandler, int threadId) { IScheduler scheduler = new ReplayScheduler(_timer, scenarioHandler, _dataReader, _counter, _speedMultiplier, threadId); return(scheduler); }