internal EventStreamSubscriber(EventStreamSubscriberSettings settings)
 {
     _connection = settings.Connection;
     _eventHandlerResolver = settings.EventHandlerResolver;
     _streamPositionRepository = settings.StreamPositionRepository;
     _subscriptionTimerManager = settings.SubscriptionTimerManager;
     _eventTypeResolver = settings.EventTypeResolver;
     _defaultPollingInterval = settings.DefaultPollingInterval;
     _sliceSize = settings.SliceSize;
     _longPollingTimeout = settings.LongPollingTimeout;
     _performanceMonitors = settings.PerformanceMonitors;
     _log = settings.Log;
     
     StreamSubscriberMonitor = settings.SubscriberIntervalMonitor;
     AllEventsStats = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
     ProcessedEventsStats = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
 }
        internal EventStreamSubscriber(EventStreamSubscriberSettings settings)
        {
            _connection               = settings.Connection;
            _eventHandlerResolver     = settings.EventHandlerResolver;
            _streamPositionRepository = settings.StreamPositionRepository;
            _subscriptionTimerManager = settings.SubscriptionTimerManager;
            _eventTypeResolver        = settings.EventTypeResolver;
            _defaultPollingInterval   = settings.DefaultPollingInterval;
            _sliceSize           = settings.SliceSize;
            _longPollingTimeout  = settings.LongPollingTimeout;
            _performanceMonitors = settings.PerformanceMonitors;
            _log = settings.Log;

            _eventNotFoundRetryCount = settings.EventNotFoundRetryCount;
            _eventNotFoundRetryDelay = settings.EventNotFoundRetryDelay;

            StreamSubscriberMonitor = settings.SubscriberIntervalMonitor;
            AllEventsStats          = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
            ProcessedEventsStats    = new PerformanceStats(settings.MessageProcessingStatsWindowPeriod, settings.MessageProcessingStatsWindowCount);
        }
 /// <summary>
 /// Creates a new <see cref="IEventStreamSubscriber"/> to single node using default <see cref="ConnectionSettings"/>
 /// </summary>
 /// <param name="settings">The <see cref="ConnectionSettings"/> to apply to the new connection</param>
 /// <returns>a new <see cref="IEventStreamSubscriber"/></returns>
 public static IEventStreamSubscriber Create(EventStreamSubscriberSettings settings)
 {
     return new EventStreamSubscriber(settings);
 }
 /// <summary>
 /// Creates a new <see cref="IEventStreamSubscriber"/> to single node using default <see cref="ConnectionSettings"/>
 /// </summary>
 /// <returns>a new <see cref="IEventStreamSubscriber"/></returns>
 public static IEventStreamSubscriber Create(IEventStoreHttpConnection connection, IEventHandlerResolver eventHandlerResolver, IStreamPositionRepository streamPositionRepository)
 {
     return(new EventStreamSubscriber(EventStreamSubscriberSettings.Default(connection, eventHandlerResolver, streamPositionRepository)));
 }
 /// <summary>
 /// Creates a new <see cref="IEventStreamSubscriber"/> to single node using default <see cref="ConnectionSettings"/>
 /// </summary>
 /// <param name="settings">The <see cref="ConnectionSettings"/> to apply to the new connection</param>
 /// <returns>a new <see cref="IEventStreamSubscriber"/></returns>
 public static IEventStreamSubscriber Create(EventStreamSubscriberSettings settings)
 {
     return(new EventStreamSubscriber(settings));
 }
 internal EventStreamSubscriber(EventStreamSubscriberSettings settings, Action <Client.EventInfo> rawEventhandler) :
     this(settings)
 {
     _rawHandler = rawEventhandler;
 }