Example #1
0
        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);
        }
Example #3
0
        public IScheduler Create(IReplayScenarioHandler scenarioHandler, int threadId)
        {
            IScheduler scheduler = new ReplayScheduler(_timer, scenarioHandler, _dataReader, _counter, _speedMultiplier, threadId);

            return(scheduler);
        }