]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/configreader.h
Tons more docs
[user/henk/code/inspircd.git] / include / configreader.h
index e2ff1c2c914bbc155ffcd65ebdc8546a2589c37d..a63e31d71eedb4b0d969a9b64c0ead2fd44b0c5d 100644 (file)
 #include "globals.h"
 #include "modules.h"
 
-typedef bool (*Validator)(const char*, const char*, void*);
-typedef bool (*MultiValidator)(const char*, char**, void**, int*);
-typedef bool (*MultiNotify)(const char*);
+class ServerConfig;
+class InspIRCd;
+
+typedef bool (*Validator)(ServerConfig* conf, const char*, const char*, void*);
+typedef bool (*MultiValidator)(ServerConfig* conf, const char*, char**, void**, int*);
+typedef bool (*MultiNotify)(ServerConfig* conf, const char*);
 
 enum ConfigDataType { DT_NOTHING, DT_INTEGER, DT_CHARPTR, DT_BOOLEAN };
 
@@ -59,6 +62,8 @@ struct MultiConfig
 class ServerConfig : public Extensible
 {
   private:
+       InspIRCd* ServerInstance;
+
        /** This variable holds the names of all
         * files included from the main one. This
         * is used to make sure that no files are
@@ -79,6 +84,8 @@ class ServerConfig : public Extensible
        bool CheckOnce(char* tag, bool bail, userrec* user);
   
   public:
+
+       InspIRCd* GetInstance();
          
        /** This holds all the information in the config file,
         * it's indexed by tag name to a vector of key/values.
@@ -352,7 +359,7 @@ class ServerConfig : public Extensible
         */
        bool SyntaxHints;
 
-       ServerConfig();
+       ServerConfig(InspIRCd* Instance);
 
        /** Clears the include stack in preperation for
         * a Read() call.
@@ -365,6 +372,10 @@ class ServerConfig : public Extensible
         */
        void Read(bool bail, userrec* user);
 
+       /** Read a file into a file_cache object
+        */
+       bool ReadFile(file_cache &F, const char* fname);
+
        /** Load 'filename' into 'target', with the new config parser everything is parsed into
         * tag/key/value at load-time rather than at read-value time.
         */
@@ -396,6 +407,12 @@ class ServerConfig : public Extensible
        Module* GetIOHook(int port);
        bool AddIOHook(int port, Module* iomod);
        bool DelIOHook(int port);
+
+       static std::string GetFullProgDir(char** argv, int argc);
+       static bool DirValid(const char* dirandfile);
+       static char* CleanFilename(char* name);
+       static bool FileExists(const char* file);
+       
 };
 
 bool InitializeDisabledCommands(const char* data, InspIRCd* ServerInstance);