Example #1
0
        public virtual IEnumerator <ITask> TickHandler(Tick tick)
        {
            if (_state.Timeout > 0 &&
                _state.Expires <= DateTime.Now.AddMilliseconds(_tickInterval / 2.0))
            {
                LogVerbose("Firing Timer due at " + _state.Expires);

                FireTimerRequest request = new FireTimerRequest();
                request.Interval = _state.Timeout;
                request.Fired    = DateTime.Now;

                _mainPort.Post(new FireTimer(request));

                _state.Expires = DateTime.MaxValue;
                _state.Timeout = 0;
            }
            _state.Ticks = (_state.Ticks + 1) % _tickFilter;
            if (_state.Ticks == 0)
            {
                SendNotification(_subMgr, tick);
            }
            yield break;
        }
Example #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="body"></param>
 public FireTimer(FireTimerRequest body)
     : base(body)
 {
 }