diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-11 22:57:42 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2006-08-11 22:57:42 +0000 |
commit | b6a20325ca0968e4e3e5eecda4d7dc41b8495a4b (patch) | |
tree | c6d6e58be5b370b09c26af5d5825b6574c44ec7a /include/timer.h | |
parent | c9f532796633aac3360680fe2461df51786801b8 (diff) |
Document TimerManager class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4899 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/timer.h')
-rw-r--r-- | include/timer.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/include/timer.h b/include/timer.h index 4d1eee470..ef9427abf 100644 --- a/include/timer.h +++ b/include/timer.h @@ -54,20 +54,39 @@ class InspTimer : public Extensible virtual void Tick(time_t TIME) = 0; }; + +/** This class manages sets of InspTimers, and triggers them at their defined times. + * This will ensure timers are not missed, as well as removing timers that have + * expired and allowing the addition of new ones. + */ class TimerManager : public Extensible { protected: - + /** A group of timers all set to trigger at the same time + */ typedef std::vector<InspTimer*> timergroup; + /** A map of timergroups, each group has a specific trigger time + */ typedef std::map<time_t, timergroup*> timerlist; private: + /** The current timer set, a map of timergroups + */ timerlist Timers; public: + /** Tick all pending InspTimers + * @param TIME the current system time + */ void TickTimers(time_t TIME); + /** Add an InspTimer + * @param T an InspTimer derived class to add + */ void AddTimer(InspTimer* T); + /** Tick any timers that have been missed due to lag + * @param TIME the current system time + */ void TickMissedTimers(time_t TIME); }; |