public ProjectionCoreService(
     IPublisher inputQueue, IPublisher publisher, ReaderSubscriptionDispatcher subscriptionDispatcher,
     ITimeProvider timeProvider, IODispatcher ioDispatcher,
     SpooledStreamReadingDispatcher spoolProcessingResponseDispatcher)
 {
     _inputQueue   = inputQueue;
     _publisher    = publisher;
     _ioDispatcher = ioDispatcher;
     _spoolProcessingResponseDispatcher = spoolProcessingResponseDispatcher;
     _subscriptionDispatcher            = subscriptionDispatcher;
     _timeProvider = timeProvider;
     _processingStrategySelector = new ProcessingStrategySelector(
         _subscriptionDispatcher, _spoolProcessingResponseDispatcher);
 }
 public ProjectionCoreService(
     Guid workerId,
     IPublisher inputQueue,
     IPublisher publisher,
     ReaderSubscriptionDispatcher subscriptionDispatcher,
     ITimeProvider timeProvider,
     IODispatcher ioDispatcher,
     ISingletonTimeoutScheduler timeoutScheduler)
 {
     _workerId                   = workerId;
     _inputQueue                 = inputQueue;
     _publisher                  = publisher;
     _ioDispatcher               = ioDispatcher;
     _timeoutScheduler           = timeoutScheduler;
     _subscriptionDispatcher     = subscriptionDispatcher;
     _timeProvider               = timeProvider;
     _processingStrategySelector = new ProcessingStrategySelector(_subscriptionDispatcher);
 }
 public ProjectionCoreService(
     Guid workerId,
     IPublisher inputQueue,
     IPublisher publisher,
     ReaderSubscriptionDispatcher subscriptionDispatcher,
     ITimeProvider timeProvider,
     IODispatcher ioDispatcher,
     ISingletonTimeoutScheduler timeoutScheduler, ProjectionsStandardComponents configuration)
 {
     _workerId                   = workerId;
     _inputQueue                 = inputQueue;
     _publisher                  = publisher;
     _ioDispatcher               = ioDispatcher;
     _timeoutScheduler           = timeoutScheduler;
     _subscriptionDispatcher     = subscriptionDispatcher;
     _timeProvider               = timeProvider;
     _processingStrategySelector = new ProcessingStrategySelector(_subscriptionDispatcher);
     _factory = new ProjectionStateHandlerFactory(TimeSpan.FromMilliseconds(configuration.ProjectionCompilationTimeout),
                                                  TimeSpan.FromMilliseconds(configuration.ProjectionExecutionTimeout), configuration.ProjectionRuntime);
 }