summaryrefslogtreecommitdiffabout
path: root/include/sitecing/configuration.h
Side-by-side diff
Diffstat (limited to 'include/sitecing/configuration.h') (more/less context) (show whitespace changes)
-rw-r--r--include/sitecing/configuration.h23
1 files changed, 20 insertions, 3 deletions
diff --git a/include/sitecing/configuration.h b/include/sitecing/configuration.h
index 330a5a6..a2bf612 100644
--- a/include/sitecing/configuration.h
+++ b/include/sitecing/configuration.h
@@ -135,26 +135,35 @@ namespace sitecing {
* Precompiled regex.
*/
pcrepp::Pcre regex;
/**
* The action handler component.
*/
string action;
/**
* Arguments for the action hander coponent.
*/
list<string> args;
+ /**
+ * @param s regex pattern
+ * @param a action handler
+ */
action_handler_t(const string& s,const string& a)
: s_regex(s), regex(s), action(a) { }
+ /**
+ * Copy constructor
+ *
+ * @param s source object
+ */
action_handler_t(const action_handler_t& s)
: s_regex(s.s_regex), regex(s.regex), action (s.action), args(s.args) { }
};
/**
* Type for the list of action handlers.
*/
typedef list<action_handler_t> action_handlers_t;
/**
* The list of action handlers.
*/
action_handlers_t action_handlers;
/**
@@ -209,25 +218,25 @@ namespace sitecing {
*/
struct stat st;
/**
* See if the data is still valid.
* @return true if yes.
*/
bool is_valid();
/**
* Load the configuration file.
* @param config the main configuration container.
- * @param the configuration file.
+ * @param cfile the configuration file.
*/
void parse(configuration *config,const string& cfile);
};
/**
* The main configuration container.
*/
class configuration {
public:
/**
* @todo TODO:: document me.
*/
@@ -289,25 +298,25 @@ namespace sitecing {
flag_requests_per_child = 0x00000200,
/**
* Was the multiprocess node (or it's absences) specified?
* @see multi_process
*/
flag_multi_process = 0x00000400,
/**
* Was the user specified?
* @see user
*/
flag_user = 0x00000800,
/**
- * @Was the group specified?
+ * Was the group specified?
* @see group
*/
flag_group = 0x00001000,
/**
* Was the root to change to specified?
* @see chroot
*/
flag_chroot = 0x00002000,
/**
* Was the file for storing PID specified?
* @see pidfile
*/
@@ -381,40 +390,48 @@ namespace sitecing {
* Directory to change root to.
*/
string chroot;
/**
* The file to store PID into.
*/
string pid_file;
/**
* Whether we should fork into background.
*/
bool daemonize;
+ /**
+ * Type for the config options map
+ * @see specs
+ */
typedef map<string,config_options> specs_t;
/**
* The local config options map.
*/
specs_t specs;
+ /**
+ * Type for the loaded per-dir config map
+ * @see loaded_specs
+ */
typedef map<string,loaded_options> loaded_specs_t;
/**
* The local config options as specified in per-dir config files
* map.
*/
loaded_specs_t loaded_specs;
configuration();
/**
* @param cfile the configuration file.
- * @param ab @todo TODO:: document me
+ * @param ab document me @todo TODO:: document me
*/
configuration(const string& cfile,bool ab=false);
/**
* Parse the configuration file.
* @param cfile the configuration file.
*/
void parse(const string& cfile);
/**
* Fetch the reference to options for the very root.
*/