Ejemplo n.º 1
0
 /// <summary>
 /// Resets the state.
 /// </summary>
 public void Reset()
 {
     lock (SyncRoot)
     {
         _lastUpdate = null;
         _lastInfo = null;
     }
 }
Ejemplo n.º 2
0
        /// <inheriteddoc />
        protected override void OnGetInfo(CultureInfo lang,
                                          ref MonitorState state, StringBuilder summary, StringBuilder desc, ref object value, ref DateTimeOffset lastUpdate)
        {
            lock (SyncRoot)
            {
                var now = _TIME_PROVIDER(this);

                var lastMonitorUpdate = _lastUpdate;
                var doUpdate = true;
                if (lastMonitorUpdate.HasValue)
                {
                    doUpdate = false;

                    var interval = now - lastMonitorUpdate.Value;
                    if (interval >= _UPDATE_INTERVAL ||
                        _UPDATE_INTERVAL <= TimeSpan.Zero)
                    {
                        doUpdate = true;
                    }
                }

                IMonitorInfo info;
                if (doUpdate)
                {
                    _lastInfo = info = BaseMonitor.GetInfo(lang);
                    _lastUpdate = now;
                }
                else
                {
                    info = _lastInfo;
                }

                if (info == null)
                {
                    return;
                }

                state = info.State;
                summary.Append(info.Summary);
                desc.Append(info.Description);
                value = info.Value;
                lastUpdate = info.LastUpdate;
            }
        }