X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=include%2Finspircd.h;h=84995710dcfdeb4995c98800ed22f97a4fb26aff;hb=fe7aa4267324f23d3fbd6c7adb642927896b3305;hp=5fd641c6b3b36d17ee70669c0b88cafee12279a1;hpb=bfaf7e3b27981a5144faba6d17c6e29fac735dbb;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/inspircd.h b/include/inspircd.h index 5fd641c6b..84995710d 100644 --- a/include/inspircd.h +++ b/include/inspircd.h @@ -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 @@ -656,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(), @@ -674,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