From b6a20325ca0968e4e3e5eecda4d7dc41b8495a4b Mon Sep 17 00:00:00 2001 From: brain Date: Fri, 11 Aug 2006 22:57:42 +0000 Subject: [PATCH] Document TimerManager class git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4899 e03df62e-2008-0410-955e-edbf42e46eb7 --- include/timer.h | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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 timergroup; + /** A map of timergroups, each group has a specific trigger time + */ typedef std::map 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); }; -- 2.39.5