X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Ftimer.h;h=1f6da45213dd4dba852f5c95f0ae7217d3eb5c64;hb=383caa90d568d8d997a9624a9e6174ddc1a9a3da;hp=4d1eee470f5fc944a5932d50668b008eff583768;hpb=ad3c37e38c6c170c1f7cc3232db748ebdc62aa94;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/timer.h b/include/timer.h index 4d1eee470..1f6da4521 100644 --- a/include/timer.h +++ b/include/timer.h @@ -54,20 +54,43 @@ 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); + /** Delete and InspTImer + * @param T an InspTimer derived class to delete + */ + void DelTimer(InspTimer* T); + /** Tick any timers that have been missed due to lag + * @param TIME the current system time + */ void TickMissedTimers(time_t TIME); };