]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/inspircd.h
Add stuff so that modules can hook users by altering a pointer in the User class...
[user/henk/code/inspircd.git] / include / inspircd.h
index ec7fbd63a44c81e9e08d157f2809b41db3ac29bc..84995710dcfdeb4995c98800ed22f97a4fb26aff 100644 (file)
@@ -232,6 +232,23 @@ DEFINE_HANDLER1(FloodQuitUserHandler, void, User*);
 class XLineManager;
 class BanCacheManager;
 
+class CoreExport ConfigReaderThread : public Thread
+{
+       InspIRCd* ServerInstance;
+       bool do_bail;
+       User* TheUser;
+ public:
+       ConfigReaderThread(InspIRCd* Instance, bool bail, User* user) : Thread(), ServerInstance(Instance), do_bail(bail), TheUser(user)
+       {
+       }
+
+       virtual ~ConfigReaderThread()
+       {
+       }
+
+       void Run();
+};
+
 /** The main class of the irc server.
  * This class contains instances of all the other classes
  * in this software, with the exception of the base class,
@@ -250,7 +267,7 @@ class CoreExport InspIRCd : public classbase
  private:
        /** Holds the current UID. Used to generate the next one.
         */
-       char current_uid[UUID_LENGTH];
+       char current_uid[UUID_LENGTH + 1];
 
        /** Set up the signal handlers
         */
@@ -304,11 +321,6 @@ class CoreExport InspIRCd : public classbase
         */
        socklen_t length;
 
-       /** Time offset in seconds
-        * This offset is added to all calls to Time(). Use SetTimeDelta() to update
-        */
-       int time_delta;
-
 #ifdef WIN32
        IPC* WindowsIPC;
 #endif
@@ -386,6 +398,14 @@ class CoreExport InspIRCd : public classbase
         */
        SocketEngine* SE;
 
+       /** Thread engine, Handles threading where required
+        */
+       ThreadEngine* Threads;
+
+       /** The thread/class used to read config files in REHASH and on startup
+        */
+       ConfigReaderThread* ConfigThread;
+
        /** LogManager handles logging.
         */
        LogManager *Logs;
@@ -440,23 +460,9 @@ class CoreExport InspIRCd : public classbase
        /** Get the current time
         * Because this only calls time() once every time around the mainloop,
         * it is much faster than calling time() directly.
-        * @param delta True to use the delta as an offset, false otherwise
         * @return The current time as an epoch value (time_t)
         */
-       time_t Time(bool delta = false);
-
-       /** Set the time offset in seconds
-        * This offset is added to Time() to offset the system time by the specified
-        * number of seconds.
-        * @param delta The number of seconds to offset
-        * @return The old time delta
-        */
-       int SetTimeDelta(int delta);
-
-       /** Get the time offset in seconds
-        * @return The current time delta (in seconds)
-        */
-       int GetTimeDelta();
+       time_t Time();
 
        /** Process a user whos socket has been flagged as active
         * @param cu The user to process