summaryrefslogtreecommitdiff
path: root/include/configreader.h
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-05 11:47:43 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-05 11:47:43 +0000
commit9c96921f009bafcfb8ca5492fa2e6467c0063547 (patch)
treef349e7643f896609fdcf89981e3fddb5d3474d81 /include/configreader.h
parent17ba341f7160c78e82ca6d71639d27ab0fa58b85 (diff)
Move opertypes/operclasses maps into ServerConfig, for some reason these were global to users.cpp and not accessible to any other file.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5419 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/configreader.h')
-rw-r--r--include/configreader.h59
1 files changed, 54 insertions, 5 deletions
diff --git a/include/configreader.h b/include/configreader.h
index 44551b132..be952f051 100644
--- a/include/configreader.h
+++ b/include/configreader.h
@@ -31,10 +31,18 @@
class ServerConfig;
class InspIRCd;
+/** A callback for validating a single value
+ */
typedef bool (*Validator)(ServerConfig* conf, const char*, const char*, void*);
+/** A callback for validating multiple value entries
+ */
typedef bool (*MultiValidator)(ServerConfig* conf, const char*, char**, void**, int*);
+/** A callback indicating the end of a group of entries
+ */
typedef bool (*MultiNotify)(ServerConfig* conf, const char*);
+/** Types of data in the core config
+ */
enum ConfigDataType { DT_NOTHING, DT_INTEGER, DT_CHARPTR, DT_BOOLEAN };
/** Holds a core configuration item and its callbacks
@@ -61,6 +69,15 @@ struct MultiConfig
MultiNotify finish_function;
};
+/** A set of oper types
+ */
+typedef std::map<irc::string,char*> opertype_t;
+
+/** A Set of oper classes
+ */
+typedef opertype_t operclass_t;
+
+
/** This class holds the bulk of the runtime configuration for the ircd.
* It allows for reading new config values, accessing configuration files,
* and storage of the configuration data needed to run the ircd, such as
@@ -69,6 +86,8 @@ struct MultiConfig
class ServerConfig : public Extensible
{
private:
+ /** Creator/owner
+ */
InspIRCd* ServerInstance;
/** This variable holds the names of all
@@ -84,6 +103,8 @@ class ServerConfig : public Extensible
*/
bool ParseLine(ConfigDataHash &target, std::string &line, long linenumber, std::ostringstream &errorstream);
+ /** Process an include directive
+ */
bool DoInclude(ConfigDataHash &target, const std::string &file, std::ostringstream &errorstream);
/** Check that there is only one of each configuration item
@@ -371,6 +392,16 @@ class ServerConfig : public Extensible
*/
bool CycleHosts;
+ /* All oper type definitions from the config file
+ */
+ opertype_t opertypes;
+
+ /** All oper class definitions from the config file
+ */
+ operclass_t operclass;
+
+ /** Construct a new ServerConfig
+ */
ServerConfig(InspIRCd* Instance);
/** Clears the include stack in preperation for a Read() call.
@@ -391,28 +422,46 @@ class ServerConfig : public Extensible
* tag/key/value at load-time rather than at read-value time.
*/
bool LoadConf(ConfigDataHash &target, const char* filename, std::ostringstream &errorstream);
+ /** 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.
+ */
bool LoadConf(ConfigDataHash &target, const std::string &filename, std::ostringstream &errorstream);
/* Both these return true if the value existed or false otherwise */
- /* Writes 'length' chars into 'result' as a string */
+ /** Writes 'length' chars into 'result' as a string
+ */
bool ConfValue(ConfigDataHash &target, const char* tag, const char* var, int index, char* result, int length);
+ /** Writes 'length' chars into 'result' as a string
+ */
bool ConfValue(ConfigDataHash &target, const std::string &tag, const std::string &var, int index, std::string &result);
- /* Tries to convert the value to an integer and write it to 'result' */
+ /** Tries to convert the value to an integer and write it to 'result'
+ */
bool ConfValueInteger(ConfigDataHash &target, const char* tag, const char* var, int index, int &result);
+ /** Tries to convert the value to an integer and write it to 'result'
+ */
bool ConfValueInteger(ConfigDataHash &target, const std::string &tag, const std::string &var, int index, int &result);
- /* Returns true if the value exists and has a true value, false otherwise */
+ /** Returns true if the value exists and has a true value, false otherwise
+ */
bool ConfValueBool(ConfigDataHash &target, const char* tag, const char* var, int index);
+ /** Returns true if the value exists and has a true value, false otherwise
+ */
bool ConfValueBool(ConfigDataHash &target, const std::string &tag, const std::string &var, int index);
- /* Returns the number of occurences of tag in the config file */
+ /** Returns the number of occurences of tag in the config file
+ */
int ConfValueEnum(ConfigDataHash &target, const char* tag);
+ /** Returns the number of occurences of tag in the config file
+ */
int ConfValueEnum(ConfigDataHash &target, const std::string &tag);
- /* Returns the numbers of vars inside the index'th 'tag in the config file */
+ /** Returns the numbers of vars inside the index'th 'tag in the config file
+ */
int ConfVarEnum(ConfigDataHash &target, const char* tag, int index);
+ /** Returns the numbers of vars inside the index'th 'tag in the config file
+ */
int ConfVarEnum(ConfigDataHash &target, const std::string &tag, int index);
Module* GetIOHook(int port);