X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fsettings.hh;h=f2a7aedc4151ee9ee60336cdc9b0d23fae7eef22;hp=5cb09722bd43530aa48668eaa2f091b58fc35804;hb=838bc00015eb7f583c7cf4b3b1007697bf047da1;hpb=79b5f738f2e38acb60cda7e09f54802933a17105 diff --git a/src/settings.hh b/src/settings.hh index 5cb0972..f2a7aed 100644 --- a/src/settings.hh +++ b/src/settings.hh @@ -51,10 +51,15 @@ public: settings(int argc, char* argv[]); void parseArgs(int argc, char* argv[]); - void loadFromFile(std::string filePath); + + void loadFromFile(const std::string& filePath, bool precedence = false); + void loadFromFiles(const std::vector& filePaths, + bool precedence = false); template bool get(const std::string& key, T& value); + template + bool getNumber(const std::string& key, T& value); private: std::map map; @@ -77,8 +82,25 @@ bool settings::get(const std::string& key, T& value) } } +template +bool settings::getNumber(const std::string& key, T& value) +{ + std::map::const_iterator i = map.find(key); + + if (i != map.end()) + { + serializable_ptr obj = (*i).second; + return obj->getNumber(value); + } + else + { + return false; + } +} } // namepsace dc #endif // _SETTINGS_HH_ +/** vim: set ts=4 sw=4 tw=80: *************************************************/ +