示例#1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="DataPointProcessorsService"/> class.
 /// </summary>
 /// <param name="dataPointProcessors">Actual <see cref="IDataPointProcessors"/>.</param>
 /// <param name="logger"><see cref="ILogger"/> for logging.</param>
 public DataPointProcessorsService(
     IDataPointProcessors dataPointProcessors,
     ILogger logger)
 {
     _dataPointProcessors = dataPointProcessors;
     _logger = logger;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DataPointsStatePullers"/> class.
 /// </summary>
 /// <param name="configuration">The <see cref="DataPointsStatePullersConfiguration"/>.</param>
 /// <param name="processors"><see cref="IDataPointProcessors"/> for processing.</param>
 /// <param name="timers"><see cref="ITimers"/> for scheduling.</param>
 /// <param name="logger"><see cref="ILogger"/> for logging.</param>
 public DataPointsStatePullers(
     DataPointsStatePullersConfiguration configuration,
     IDataPointProcessors processors,
     ITimers timers,
     ILogger logger)
 {
     _timers        = timers;
     _configuration = configuration;
     _processors    = processors;
     _logger        = logger;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="DataPointsStatePuller"/> class.
        /// </summary>
        /// <param name="endPoint"><see cref="DataPointsStateEndPoint"/> to pull from.</param>
        /// <param name="processors"><see cref="IDataPointProcessors"/> to involve when <see cref="DataPoint">data points</see> are pulled.</param>
        /// <param name="timers"><see cref="ITimers"/> for scheduling.</param>
        /// <param name="logger"><see cref="ILogger"/> for logging.</param>
        public DataPointsStatePuller(
            DataPointsStateEndPoint endPoint,
            IDataPointProcessors processors,
            ITimers timers,
            ILogger logger)
        {
            var channel = new Channel(endPoint.Target, ChannelCredentials.Insecure);

            _client = new DataPointsStateClient(channel);

            timers.Every(endPoint.Interval, async() => await Pull().ConfigureAwait(false));
            _processors = processors;
            _logger     = logger;
            _endPoint   = endPoint;
        }