]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/inspircd.h
Add a setting to <connect> allowing the threshold for activation of the penalty syste...
[user/henk/code/inspircd.git] / include / inspircd.h
index b7827f315e3b6a7c2ac7deefbf04c62711b6508c..9f7d07f5d1bec200d3b0c9410291d90960302371 100644 (file)
 /** A list of failed port bindings, used for informational purposes on startup */
 typedef std::vector<std::pair<std::string, std::string> > FailedPortList;
 
-/** A cached text file stored with its contents as lines
- */
-typedef std::deque< std::string > file_cache;
-
-/** A configuration key and value pair
- */
-typedef std::pair< std::string, std::string > KeyVal;
-
-/** A list of related configuration keys and values
- */
-typedef std::vector< KeyVal > KeyValList;
-
-/** An entire config file, built up of KeyValLists
- */
-typedef std::multimap< std::string, KeyValList > ConfigDataHash;
-
 class InspIRCd;
-extern InspIRCd* ServerInstance;
+CoreExport extern InspIRCd* ServerInstance;
 
 #include "inspircd_config.h"
 #include "inspircd_version.h"
+#include "caller.h"
+#include "cull_list.h"
 #include "extensible.h"
 #include "numerics.h"
 #include "uid.h"
@@ -94,7 +80,6 @@ extern InspIRCd* ServerInstance;
 #include "mode.h"
 #include "socketengine.h"
 #include "snomasks.h"
-#include "cull_list.h"
 #include "filelogger.h"
 #include "caller.h"
 #include "modules.h"
@@ -223,7 +208,7 @@ template<typename T, typename V, typename R> inline char* itoa(const T &in, V *r
  * It is used by the InspIRCd class, which internally
  * has an instance of it.
  */
-class serverstats : public classbase
+class serverstats
 {
   public:
        /** Number of accepted connections
@@ -313,14 +298,12 @@ class CoreExport ConfigReaderThread : public Thread
 };
 
 /** 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,
- * classbase. Amongst other things, it contains a ModeParser,
- * a DNS object, a CommandParser object, and a list of active
- * Module objects, and facilities for Module objects to
- * interact with the core system it implements.
+ * This class contains instances of all the other classes in this software.
+ * Amongst other things, it contains a ModeParser, a DNS object, a CommandParser
+ * object, and a list of active Module objects, and facilities for Module
+ * objects to interact with the core system it implements.
  */
-class CoreExport InspIRCd : public classbase
+class CoreExport InspIRCd
 {
  private:
        /** Holds the current UID. Used to generate the next one.
@@ -381,6 +364,8 @@ class CoreExport InspIRCd : public classbase
        /** Global cull list, will be processed on next iteration
         */
        CullList GlobalCulls;
+       /** Actions that must happen outside of the current call stack */
+       ActionList AtomicActions;
 
        /**** Functors ****/
 
@@ -429,6 +414,8 @@ class CoreExport InspIRCd : public classbase
         */
        std::string ConfigFileName;
 
+       ExtensionManager Extensions;
+
        /** Mode handler, handles mode setting and removal
         */
        ModeParser* Modes;
@@ -508,6 +495,14 @@ class CoreExport InspIRCd : public classbase
         */
        ProtocolInterface* PI;
 
+       /** Holds extensible for user nickforced
+        */
+       LocalIntExt NICKForced;
+
+       /** Holds extensible for user operquit
+        */
+       LocalStringExt OperQuit;
+
        /** Get the current time
         * Because this only calls time() once every time around the mainloop,
         * it is much faster than calling time() directly.
@@ -719,12 +714,6 @@ class CoreExport InspIRCd : public classbase
         */
        void RehashServer();
 
-       /** Return the channel whos index number matches that provided
-        * @param The index number of the channel to fetch
-        * @return A channel record, or NUll if index < 0 or index >= InspIRCd::ChannelCount()
-        */
-       Channel* GetChannelIndex(long index);
-
        /** Dump text to a user target, splitting it appropriately to fit
         * @param User the user to dump the text to
         * @param LinePrefix text to prefix each complete line with