using namespace std;
using namespace Msp;
+/**
+Adds a configuration option.
+
+@param n Option name
+@param v Default value
+@param d Description
+*/
void Config::add_option(const string &n, const string &v, const string &d)
{
options.insert(OptionMap::value_type(n, Option(n, v, d)));
}
+/**
+Gets the given option from the configuration. If the option doesn't exist,
+an Exception is thrown.
+*/
const Config::Option &Config::get_option(const string &name) const
{
OptionMap::const_iterator i=options.find(name);
return i->second;
}
+/**
+Checks whether an option with the given name exists.
+*/
bool Config::is_option(const string &name) const
{
return options.count(name);
}
+/**
+Processes options from the given raw option map. Nonexistent options are
+ignored. If any options were changed, the mtime of the configuration is updated
+to the current time.
+
+@param opts A map to process options from
+
+@return Whether any option values were changed
+*/
bool Config::process(const RawOptionMap &opts)
{
bool changed=false;
return changed;
}
+/**
+Loads configuration from a file, if it exists.
+*/
void Config::load(const Path::Path &fn)
{
ifstream in(fn.str().c_str());