From 94f46568d5e436dbab158def1a7ace6ca22a0fb8 Mon Sep 17 00:00:00 2001 From: gereon Date: Sun, 16 Dec 2012 20:14:52 +0100 Subject: [PATCH 1/3] adding default value for trigger options trigger options get the value of the trigger that was registered first as default value. --- src/utility/settings.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/utility/settings.cpp b/src/utility/settings.cpp index e22e72eaa..1414d8ece 100644 --- a/src/utility/settings.cpp +++ b/src/utility/settings.cpp @@ -67,7 +67,7 @@ Settings::Settings(const int argc, const char* argv[], const char* filename) str << "select " << it.first << " module (" << boost::algorithm::join(it.second, ", ") << ")"; Settings::desc->add_options() - (it.first.c_str(), bpo::value(), str.str().c_str()) + (it.first.c_str(), bpo::value()->default_value(it.second.front()), str.str().c_str()) ; } @@ -143,7 +143,6 @@ void Settings::initDescriptions() ("test-prctl", bpo::value(), "name of prctl file") ("trafile", bpo::value()->required(), "name of the .tra file") ("labfile", bpo::value()->required(), "name of the .lab file") - ("matrixlib", bpo::value()->default_value("gmm++"), "name of the matrix library") ; } From 6a720709a51e49b089e9ab6f28611c2e1c4c7274 Mon Sep 17 00:00:00 2001 From: gereon Date: Sun, 16 Dec 2012 20:43:18 +0100 Subject: [PATCH 2/3] refactored opening braces in settings classes --- src/utility/settings.cpp | 66 ++++++++++++++-------------------------- src/utility/settings.h | 11 +++---- 2 files changed, 26 insertions(+), 51 deletions(-) diff --git a/src/utility/settings.cpp b/src/utility/settings.cpp index 1414d8ece..bd3044e7e 100644 --- a/src/utility/settings.cpp +++ b/src/utility/settings.cpp @@ -42,11 +42,9 @@ std::map< std::pair, std::shared_ptrinitDescriptions(); @@ -57,12 +55,10 @@ Settings::Settings(const int argc, const char* argv[], const char* filename) // Check module triggers, add corresponding options std::map< std::string, std::list< std::string > > options; - for (auto it : Settings::modules) - { + for (auto it : Settings::modules) { options[it.first.first].push_back(it.first.second); } - for (auto it : options) - { + for (auto it : options) { std::stringstream str; str << "select " << it.first << " module (" << boost::algorithm::join(it.second, ", ") << ")"; @@ -77,13 +73,10 @@ Settings::Settings(const int argc, const char* argv[], const char* filename) // Buffer for items to be deleted std::list< std::pair< std::string, std::string > > deleteQueue; // Check module triggers - for (auto it : Settings::modules) - { + for (auto it : Settings::modules) { std::pair< std::string, std::string > trigger = it.first; - if (this->vm.count(trigger.first)) - { - if (this->vm[trigger.first].as().compare(trigger.second) == 0) - { + if (this->vm.count(trigger.first)) { + if (this->vm[trigger.first].as().compare(trigger.second) == 0) { Settings::desc->add(*it.second); deleteQueue.push_back(trigger); } @@ -93,8 +86,7 @@ Settings::Settings(const int argc, const char* argv[], const char* filename) // Stop if help is set - if (this->vm.count("help") > 0) - { + if (this->vm.count("help") > 0) { return; } @@ -105,25 +97,20 @@ Settings::Settings(const int argc, const char* argv[], const char* filename) bpo::notify(this->vm); LOG4CPLUS_DEBUG(logger, "Finished loading config."); } - catch (bpo::reading_file e) - { + catch (bpo::reading_file e) { std::cerr << "Could not read config file " << filename << std::endl; LOG4CPLUS_ERROR(logger, "Could not read config file"); } - catch (bpo::required_option e) - { + catch (bpo::required_option e) { throw mrmc::exceptions::InvalidSettings() << "Required option missing"; } - catch (bpo::validation_error e) - { + catch (bpo::validation_error e) { throw mrmc::exceptions::InvalidSettings() << "Validation failed: " << e.what(); } - catch (bpo::invalid_command_line_syntax e) - { + catch (bpo::invalid_command_line_syntax e) { throw mrmc::exceptions::InvalidSettings() << e.what(); } - catch (bpo::error e) - { + catch (bpo::error e) { throw mrmc::exceptions::InvalidSettings() << e.what(); } } @@ -132,8 +119,7 @@ Settings::Settings(const int argc, const char* argv[], const char* filename) * Initially fill options_description objects. * First puts some generic options, then calls all register Callbacks. */ -void Settings::initDescriptions() -{ +void Settings::initDescriptions() { LOG4CPLUS_DEBUG(logger, "Initializing descriptions."); Settings::desc = std::unique_ptr(new bpo::options_description("Generic Options")); Settings::desc->add_options() @@ -151,8 +137,7 @@ void Settings::initDescriptions() * given), but allow for unregistered options, do not check requirements * from options_description objects, do not check positional arguments. */ -void Settings::firstRun(const int argc, const char* argv[], const char* filename) -{ +void Settings::firstRun(const int argc, const char* argv[], const char* filename) { LOG4CPLUS_DEBUG(logger, "Performing first run."); // parse command line bpo::store(bpo::command_line_parser(argc, argv).options(*(Settings::desc)).allow_unregistered().run(), this->vm); @@ -160,12 +145,10 @@ void Settings::firstRun(const int argc, const char* argv[], const char* filename /* * load config file if specified */ - if (this->vm.count("configfile")) - { + if (this->vm.count("configfile")) { bpo::store(bpo::parse_config_file(this->vm["configfile"].as().c_str(), *(Settings::desc)), this->vm, true); } - else if (filename != NULL) - { + else if (filename != NULL) { bpo::store(bpo::parse_config_file(filename, *(Settings::desc)), this->vm, true); } } @@ -175,20 +158,17 @@ void Settings::firstRun(const int argc, const char* argv[], const char* filename * given) and check for unregistered options, requirements from * options_description objects and positional arguments. */ -void Settings::secondRun(const int argc, const char* argv[], const char* filename) -{ +void Settings::secondRun(const int argc, const char* argv[], const char* filename) { LOG4CPLUS_DEBUG(logger, "Performing second run."); // Parse command line bpo::store(bpo::command_line_parser(argc, argv).options(*(Settings::desc)).positional(this->positional).run(), this->vm); /* * load config file if specified */ - if (this->vm.count("configfile")) - { + if (this->vm.count("configfile")) { bpo::store(bpo::parse_config_file(this->vm["configfile"].as().c_str(), *(Settings::desc)), this->vm, true); } - else if (filename != NULL) - { + else if (filename != NULL) { bpo::store(bpo::parse_config_file(filename, *(Settings::desc)), this->vm, true); } } @@ -201,12 +181,10 @@ void Settings::secondRun(const int argc, const char* argv[], const char* filenam * Use it like this: * @code std::cout << mrmc::settings::help; @endcode */ -std::ostream& help(std::ostream& os) -{ +std::ostream& help(std::ostream& os) { os << "Usage: " << mrmc::settings::Settings::binaryName << " [options]