summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-11 22:57:42 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-11 22:57:42 +0000
commitb6a20325ca0968e4e3e5eecda4d7dc41b8495a4b (patch)
treec6d6e58be5b370b09c26af5d5825b6574c44ec7a
parentc9f532796633aac3360680fe2461df51786801b8 (diff)
Document TimerManager class
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4899 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/timer.h21
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);
};