123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- #region --------------- Copyright Dresser Wayne Pignone -------------
- #endregion
- #region Old file header
- #endregion
- using System;
- namespace Wayne.Lib.StateEngine
- {
-
-
-
-
- internal delegate void TimerElapsedDelegate(Timer elapsedTimer);
-
-
-
- public class Timer : IDisposable
- {
- #region Fields
- private bool isPeriodic;
- private bool clearAtStateExit = true;
- private object eventType;
- private State ownerState;
- private int interval;
- private object userToken;
- private bool enabled;
- private int idx = nextIdx++;
-
-
-
-
-
- #endregion
- #region Static Fiedls
- static int nextIdx;
- #endregion
- #region Events
- internal event EventHandler OnEnable;
- internal event EventHandler OnDisable;
- #endregion
- #region Construction
-
-
-
-
-
-
-
- public Timer(State ownerState, object eventType, int interval, object userToken)
- {
- this.ownerState = ownerState;
- this.eventType = eventType;
- this.interval = interval;
- this.userToken = userToken;
- }
-
-
-
- ~Timer()
- {
- Dispose(false);
- }
- #endregion
- #region Properties
-
-
-
- public bool IsPeriodic
- {
- get { return isPeriodic; }
- set { isPeriodic = value; }
- }
-
-
-
- public bool ClearAtStateExit
- {
- get { return clearAtStateExit; }
- set { clearAtStateExit = value; }
- }
-
-
-
- public State OwnerState
- {
- get { return ownerState; }
- set { ownerState = value; }
- }
-
-
-
- public object EventType
- {
- get { return eventType; }
- set { eventType = value; }
- }
-
-
-
- public bool Enabled
- {
- get { return enabled; }
- }
-
-
-
- public object UserToken
- {
- get { return userToken; }
- }
-
-
-
- public int Interval
- {
- get { return interval; }
- set { interval = value; }
- }
- #endregion
- #region Public Methods
-
-
-
- public void Enable()
- {
- enabled = true;
- if (OnEnable != null)
- OnEnable(this, EventArgs.Empty);
- }
-
-
-
- public void Disable()
- {
- enabled = false;
- if (OnDisable != null)
- OnDisable(this, EventArgs.Empty);
- }
- #endregion
- #region IDisposable Members
-
-
-
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
- private void Dispose(bool disposing)
- {
- if (enabled)
- Disable();
- if (disposing)
- {
-
- }
- }
- #endregion
- #region ToString
-
-
-
-
- public override string ToString()
- {
- return string.Format(System.Globalization.CultureInfo.InvariantCulture, "Timer State={0}, Idx={1}, Interval={2}, IsPeriodic={3}", ownerState.LogName, idx, interval, IsPeriodic);
- }
- #endregion
- }
- }
|