Example #1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FeedRecoveryManager"/> class
        /// </summary>
        /// <param name="producerRecoveryManagerFactory">A <see cref="IProducerRecoveryManagerFactory"/> used to create new <see cref="IProducerRecoveryManager"/></param>
        /// <param name="config">A <see cref="IOddsFeedConfigurationInternal"/> used on feed</param>
        /// <param name="timer">A <see cref="ITimer"/> used for invocation of period tasks</param>
        /// <param name="producerManager">The <see cref="IProducerManager"/> with all available <see cref="IProducer"/></param>
        /// <param name="systemSession">The <see cref="IFeedSystemSession"/> for processing alive messages</param>
        public FeedRecoveryManager(IProducerRecoveryManagerFactory producerRecoveryManagerFactory,
                                   IOddsFeedConfiguration config,
                                   ITimer timer,
                                   IProducerManager producerManager,
                                   IFeedSystemSession systemSession)
        {
            Guard.Argument(producerRecoveryManagerFactory, nameof(producerRecoveryManagerFactory)).NotNull();
            Guard.Argument(config, nameof(config)).NotNull();
            Guard.Argument(timer, nameof(timer)).NotNull();
            Guard.Argument(producerManager, nameof(producerManager)).NotNull();
            Guard.Argument(systemSession, nameof(systemSession)).NotNull();

            _producerRecoveryManagerFactory = producerRecoveryManagerFactory;
            _inactivityTimer = timer;
            _producerManager = producerManager;
            _systemSession   = systemSession;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="FeedRecoveryManager"/> class
        /// </summary>
        /// <param name="producerRecoveryManagerFactory">A <see cref="IProducerRecoveryManagerFactory"/> used to create new <see cref="IProducerRecoveryManager"/></param>
        /// <param name="config">A <see cref="IOddsFeedConfigurationInternal"/> used on feed</param>
        /// <param name="timer">A <see cref="ITimer"/> used for invocation of period tasks</param>
        /// <param name="producerManager">The <see cref="IProducerManager"/> with all available <see cref="IProducer"/></param>
        /// <param name="systemSession">The <see cref="IFeedSystemSession"/> for processing alive messages</param>
        public FeedRecoveryManager(IProducerRecoveryManagerFactory producerRecoveryManagerFactory,
                                   IOddsFeedConfiguration config,
                                   ITimer timer,
                                   IProducerManager producerManager,
                                   IFeedSystemSession systemSession)
        {
            Contract.Requires(producerRecoveryManagerFactory != null);
            Contract.Requires(config != null);
            Contract.Requires(timer != null);
            Contract.Requires(producerManager != null);
            Contract.Requires(systemSession != null);

            _producerRecoveryManagerFactory = producerRecoveryManagerFactory;
            _inactivityTimer = timer;
            _producerManager = producerManager;
            _systemSession   = systemSession;
        }