/// <summary>
 /// Initializes a new instance of the <see cref="RedisQueueMonitor" /> class.
 /// </summary>
 /// <param name="clearMessagesFactory">The clear messages factory.</param>
 /// <param name="heartBeatFactory">The heart beat factory.</param>
 /// <param name="delayedProcessing">The delayed processing.</param>
 public RedisQueueMonitor(IClearExpiredMessagesMonitor clearMessagesFactory,
                          IHeartBeatMonitor heartBeatFactory,
                          IDelayedProcessingMonitor delayedProcessing)
 {
     Guard.NotNull(() => clearMessagesFactory, clearMessagesFactory);
     Guard.NotNull(() => heartBeatFactory, heartBeatFactory);
     _heartBeatFactory     = heartBeatFactory;
     _clearMessagesFactory = clearMessagesFactory;
     _delayedProcessing    = delayedProcessing;
     _monitors             = new List <IMonitor>(3);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="RedisQueueMonitor" /> class.
 /// </summary>
 /// <param name="clearMessagesFactory">The clear messages factory.</param>
 /// <param name="heartBeatFactory">The heart beat factory.</param>
 /// <param name="delayedProcessing">The delayed processing.</param>
 public RedisQueueMonitor(IClearExpiredMessagesMonitor clearMessagesFactory,
     IHeartBeatMonitor heartBeatFactory,
     IDelayedProcessingMonitor delayedProcessing)
 {
     Guard.NotNull(() => clearMessagesFactory, clearMessagesFactory);
     Guard.NotNull(() => heartBeatFactory, heartBeatFactory);
     _heartBeatFactory = heartBeatFactory;
     _clearMessagesFactory = clearMessagesFactory;
     _delayedProcessing = delayedProcessing;
     _monitors = new List<IMonitor>(3);
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueMonitor" /> class.
        /// </summary>
        /// <param name="clearMessagesFactory">The clear messages factory.</param>
        /// <param name="heartBeatFactory">The heart beat factory.</param>
        /// <param name="heartBeatConfiguration">The heart beat configuration.</param>
        /// <param name="expirationConfiguration">The expiration configuration.</param>
        public QueueMonitor(IClearExpiredMessagesMonitor clearMessagesFactory,
            IHeartBeatMonitor heartBeatFactory,
            IHeartBeatConfiguration heartBeatConfiguration,
            IMessageExpirationConfiguration expirationConfiguration)
        {
            Guard.NotNull(() => clearMessagesFactory, clearMessagesFactory);
            Guard.NotNull(() => heartBeatFactory, heartBeatFactory);
            Guard.NotNull(() => heartBeatConfiguration, heartBeatConfiguration);
            Guard.NotNull(() => expirationConfiguration, expirationConfiguration);

            _heartBeatConfiguration = heartBeatConfiguration;
            _heartBeatFactory = heartBeatFactory;
            _clearMessagesFactory = clearMessagesFactory;
            _expirationConfiguration = expirationConfiguration;
            _monitors = new List<IMonitor>(2);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueMonitor" /> class.
        /// </summary>
        /// <param name="clearMessagesFactory">The clear messages factory.</param>
        /// <param name="heartBeatFactory">The heart beat factory.</param>
        /// <param name="heartBeatConfiguration">The heart beat configuration.</param>
        /// <param name="expirationConfiguration">The expiration configuration.</param>
        public QueueMonitor(IClearExpiredMessagesMonitor clearMessagesFactory,
                            IHeartBeatMonitor heartBeatFactory,
                            IHeartBeatConfiguration heartBeatConfiguration,
                            IMessageExpirationConfiguration expirationConfiguration)
        {
            Guard.NotNull(() => clearMessagesFactory, clearMessagesFactory);
            Guard.NotNull(() => heartBeatFactory, heartBeatFactory);
            Guard.NotNull(() => heartBeatConfiguration, heartBeatConfiguration);
            Guard.NotNull(() => expirationConfiguration, expirationConfiguration);

            _heartBeatConfiguration  = heartBeatConfiguration;
            _heartBeatFactory        = heartBeatFactory;
            _clearMessagesFactory    = clearMessagesFactory;
            _expirationConfiguration = expirationConfiguration;
            _monitors = new List <IMonitor>(2);
        }