コード例 #1
0
        public MachineStatusRepositoryWithCache(InfluxClient client, string databaseName, TimeSpan cacheWriteInterval, ILogger logger = null) : base(logger)
        {
            repository = new MachineStatusRepository(client, databaseName);

            cacheWriteTimer          = new NonReentrantTimer(cacheWriteInterval.TotalMilliseconds);
            cacheWriteTimer.Elapsed += CacheWriteTimer_Elapsed;
            cacheWriteTimer.Start();
        }
コード例 #2
0
        public RepositoryWithCacheBase(R repository, TimeSpan cacheWriteInterval, ILogger logger = null) : base(logger)
        {
            _repository = repository;

            cacheWriteTimer          = new NonReentrantTimer(cacheWriteInterval.TotalMilliseconds);
            cacheWriteTimer.Elapsed += CacheWriteTimer_Elapsed;
            cacheWriteTimer.Start();
        }
コード例 #3
0
        //init
        public ConditionWaiter(Func <bool> conditionCheck)
        {
            _conditionCheck = conditionCheck;

            TimeSpan defaultInterval = TimeSpan.FromMilliseconds(100);

            _timer           = new NonReentrantTimer(TimerCallback, defaultInterval, false);
            _stopEventHandle = new ManualResetEventSlim(false);
        }
コード例 #4
0
        //init
        public Sender(SenderState <TKey> hubState, IEventQueue <TKey> eventQueue,
                      IDispatchQueue <TKey> dispatchQueue, IEnumerable <IRegularJob> regularJobs,
                      IEnumerable <ISignalProviderControl> signalEndpoints)
        {
            _hubState        = hubState;
            _regularJobs     = regularJobs.ToList();
            _eventQueue      = eventQueue;
            _dispatchQueue   = dispatchQueue;
            _signalEndpoints = signalEndpoints.ToList();

            _regularJobTimers = _regularJobs.Select(x => new NonReentrantTimer(x.Tick
                                                                               , NotificationsConstants.REGULAR_JOB_TICK_INTERVAL, intervalFromCallbackStarted: false))
                                .ToList();
            _stopMonitorTimer = new NonReentrantTimer(StopTimers
                                                      , NotificationsConstants.REGULAR_JOB_TICK_INTERVAL, intervalFromCallbackStarted: false);
            _stopEventHandle = new ManualResetEventSlim(false);
        }
コード例 #5
0
        public StatusFetcher(IMachineRepository repository, TimeSpan pollTimeInterval, List <MachineKey> machineKeys)
        {
            _repository        = repository;
            SubscribedMachines = new SourceList <MachineKey>();
            SubscribedMachines.AddRange(machineKeys);

            MachineStatuses = new SourceList <MachineStatus>();
            machineKeys.ForEach(x =>
            {
                MachineStatuses.Add(new MachineStatus()
                {
                    Line = x.Line, Name = x.Name, Status = Status.Unknown
                });
            });

            _timer          = new NonReentrantTimer(pollTimeInterval.TotalMilliseconds);
            _timer.Elapsed += Timer_Elapsed;
        }