#ifndef INSPIRCD_TIMER_H
#define INSPIRCD_TIMER_H
+class InspIRCd;
+
/** Timer class for one-second resolution timers
* InspTimer provides a facility which allows module
* developers to create one-shot timers. The timer
* your object (which you should override) will be called
* at the given time.
*/
-class InspTimer : public Extensible
+class CoreExport InspTimer : public Extensible
{
private:
/** The triggering time
* 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
+class CoreExport TimerManager : public Extensible
{
protected:
/** A group of timers all set to trigger at the same time
/** A map of timergroups, each group has a specific trigger time
*/
typedef std::map<time_t, timergroup*> timerlist;
-
+ /** Set when ticking timers, to prevent deletion while iterating
+ */
+ bool CantDeleteHere;
+ /** Creating server instance
+ */
+ InspIRCd* ServerInstance;
private:
/** The current timer set, a map of timergroups
timerlist Timers;
public:
+ /** Constructor
+ */
+ TimerManager(InspIRCd* Instance);
/** Tick all pending InspTimers
* @param TIME the current system time
*/
};
#endif
+