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 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 }; }
public static IterationResult Validate <TData>(this IReplayScenario <TData> scenario, DataItem data, int threadId = 0, int threadIterationId = 0, int globalIterationId = 0) { ExecutionTimer timer = new ExecutionTimer(); ThreadSafeCounter errorsCounter = new ThreadSafeCounter(); GlobalCounters globalCounters = new GlobalCounters(errorsCounter, new MockedIdGenerator(globalIterationId)); IIterationControl context = new IterationContext(threadId, timer); ReplayScenarioHandler <TData> handler = new ReplayScenarioHandler <TData>(globalCounters, new MockedIdGenerator(threadIterationId), scenario, context); timer.Start(); handler.Init(); handler.PrepareNext(); handler.SetData(data.Value, data.TimeStamp); handler.Execute(); IterationResult result = new IterationResult(context, new WorkerThreadStats()); handler.Cleanup(); timer.Stop(); return(result); }
public static IterationResult Validate <TData>(this IReplayScenario <TData> scenario, TData data, int threadId = 0, int threadIterationId = 0, int globalIterationId = 0) { DataItem dataItem = new DataItem(TimeSpan.Zero, data); return(scenario.Validate(dataItem, threadId, threadIterationId, globalIterationId)); }