X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fconfig.cpp;h=99e5981503eb35ab9780711a092cea30a3701776;hb=74266a6e650f019063cdcd1c9a7bd26d8f99041b;hp=61f7322e742ead72279f2d89a33f1012a4c8f497;hpb=1a46151c99a406123c4ddfc797a7841baf3e4cc2;p=builder.git diff --git a/source/config.cpp b/source/config.cpp index 61f7322..99e5981 100644 --- a/source/config.cpp +++ b/source/config.cpp @@ -7,11 +7,22 @@ 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); @@ -21,11 +32,23 @@ const Config::Option &Config::get_option(const string &name) const 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; @@ -46,6 +69,9 @@ bool Config::process(const RawOptionMap &opts) return changed; } +/** +Loads configuration from a file, if it exists. +*/ void Config::load(const Path::Path &fn) { ifstream in(fn.str().c_str());