]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/inspircd.h
This should fix it, thanks w00t
[user/henk/code/inspircd.git] / include / inspircd.h
index 71a809be9e12b9f5fc49f0ec4c2b13aa1fd0974e..1a2c78c7a10f227367a660a27083b4cc5ccbb724 100644 (file)
@@ -29,9 +29,6 @@
 #include <time.h>
 #include <stdarg.h>
 
-
-//#include <string>
-//#include <sstream>
 #include "inspircd_config.h"
 #include "uid.h"
 #include "users.h"
@@ -39,6 +36,7 @@
 #include "timer.h"
 #include "hashcomp.h"
 #include "typedefs.h"
+#include "logger.h"
 #include "usermanager.h"
 #include "socket.h"
 #include "ctables.h"
@@ -49,7 +47,6 @@
 #include "cull_list.h"
 #include "filelogger.h"
 #include "caller.h"
-//#include "inspsocket.h"
 #include "modules.h"
 #include "configreader.h"
 #include "inspstring.h"
@@ -235,6 +232,23 @@ DEFINE_HANDLER1(FloodQuitUserHandler, void, User*);
 class XLineManager;
 class BanCacheManager;
 
+class 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,
@@ -307,15 +321,6 @@ class CoreExport InspIRCd : public classbase
         */
        socklen_t length;
 
-       /** Nonblocking file writer
-        */
-       FileLogger* Logger;
-
-       /** 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
@@ -392,6 +397,18 @@ class CoreExport InspIRCd : public classbase
        /** Socket engine, handles socket activity events
         */
        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;
        
        /** ModuleManager contains everything related to loading/unloading
         * modules.
@@ -443,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
@@ -481,7 +484,7 @@ class CoreExport InspIRCd : public classbase
         * @param addr The address to bind to (IP only)
         * @return True if the port was bound successfully
         */
-       bool BindSocket(int sockfd, int port, char* addr, bool dolisten = true);
+       bool BindSocket(int sockfd, int port, const char* addr, bool dolisten = true);
 
        /** Adds a server name to the list of servers we've seen
         * @param The servername to add
@@ -561,10 +564,6 @@ class CoreExport InspIRCd : public classbase
         */
        bool OpenLog(char** argv, int argc);
 
-       /** Close the currently open log file
-        */
-       void CloseLog();
-
        /** Return true if a channel name is valid
         * @param chname A channel name to verify
         * @return True if the name is valid
@@ -663,7 +662,7 @@ class CoreExport InspIRCd : public classbase
         * @param pcnt The number of items you have given in the first parameter
         * @param user The user to send error messages to
         */
-       void SendMode(const char **parameters, int pcnt, User *user);
+       void SendMode(const char* const* parameters, int pcnt, User *user);
 
        /** Match two strings using pattern matching.
         * This operates identically to the global function match(),
@@ -681,7 +680,7 @@ class CoreExport InspIRCd : public classbase
         * @param user The user to execute the command as
         * @return True if the command handler was called successfully
         */
-       CmdResult CallCommandHandler(const std::string &commandname, const char** parameters, int pcnt, User* user);
+       CmdResult CallCommandHandler(const std::string &commandname, const char* const* parameters, int pcnt, User* user);
 
        /** Return true if the command is a module-implemented command and the given parameters are valid for it
         * @param parameters The mode parameters