]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/timer.h
Store id in TreeServer, use TreeServer::GetID() to get the id (NOTE: it is std::string)
[user/henk/code/inspircd.git] / include / timer.h
index 2d12d84e5239f92027fd324141b74dc1663e6058..ef8b82e31f64d728d662c35769af20842e162a9a 100644 (file)
@@ -14,6 +14,8 @@
 #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
@@ -24,7 +26,7 @@
  * 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
@@ -102,7 +104,7 @@ class InspTimer : public Extensible
  * 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
@@ -111,7 +113,12 @@ class TimerManager : public Extensible
        /** 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
@@ -119,6 +126,9 @@ class TimerManager : public Extensible
        timerlist Timers;
 
  public:
+       /** Constructor
+        */
+       TimerManager(InspIRCd* Instance);
        /** Tick all pending InspTimers
         * @param TIME the current system time
         */
@@ -143,3 +153,4 @@ class TimerManager : public Extensible
 };
 
 #endif
+