From 55a9d69908f90ccf7eb3ab5db81b3cdafc1c6858 Mon Sep 17 00:00:00 2001 From: Matthias Richter Date: Thu, 30 Mar 2017 17:00:04 +0200 Subject: [PATCH] Adding option '--channel-config' to MQProgOptions --- fairmq/options/FairMQProgOptions.cxx | 51 +++++++++++----------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/fairmq/options/FairMQProgOptions.cxx b/fairmq/options/FairMQProgOptions.cxx index 5e7805e9..75985f40 100644 --- a/fairmq/options/FairMQProgOptions.cxx +++ b/fairmq/options/FairMQProgOptions.cxx @@ -15,6 +15,7 @@ #include "FairMQProgOptions.h" #include #include "FairMQParser.h" +#include "FairMQSuboptParser.h" #include "FairMQLogger.h" using namespace std; @@ -120,22 +121,23 @@ void FairMQProgOptions::ParseAll(const int argc, char** argv, bool allowUnregist } else { + string id; + + if (fVarMap.count("config-key")) + { + id = fVarMap["config-key"].as(); + } + else + { + id = fVarMap["id"].as(); + } + // if cmdline mq-config called then use the default xml/json parser if (fVarMap.count("mq-config")) { LOG(DEBUG) << "mq-config: Using default XML/JSON parser"; string file = fVarMap["mq-config"].as(); - string id; - - if (fVarMap.count("config-key")) - { - id = fVarMap["config-key"].as(); - } - else - { - id = fVarMap["id"].as(); - } string fileExtension = boost::filesystem::extension(file); @@ -164,17 +166,6 @@ void FairMQProgOptions::ParseAll(const int argc, char** argv, bool allowUnregist { LOG(DEBUG) << "config-json-string: Parsing JSON string"; - string id; - - if (fVarMap.count("config-key")) - { - id = fVarMap["config-key"].as(); - } - else - { - id = fVarMap["id"].as(); - } - string value = FairMQ::ConvertVariableValue().Run(fVarMap.at("config-json-string")); stringstream ss; ss << value; @@ -184,22 +175,17 @@ void FairMQProgOptions::ParseAll(const int argc, char** argv, bool allowUnregist { LOG(DEBUG) << "config-json-string: Parsing XML string"; - string id; - - if (fVarMap.count("config-key")) - { - id = fVarMap["config-key"].as(); - } - else - { - id = fVarMap["id"].as(); - } - string value = FairMQ::ConvertVariableValue().Run(fVarMap.at("config-xml-string")); stringstream ss; ss << value; UserParser(ss, id); } + else if (fVarMap.count(FairMQParser::SUBOPT::OptionKeyChannelConfig)) + { + LOG(DEBUG) << "channel-config: Parsing channel configuration"; + UserParser(fVarMap, id); + } + } FairProgOptions::PrintOptions(); @@ -364,6 +350,7 @@ void FairMQProgOptions::InitOptionDescription() ("config-json-string", po::value>()->multitoken(), "JSON input as command line string.") // ("config-json-file", po::value(), "JSON input as file.") ("mq-config", po::value(), "JSON/XML input as file. The configuration object will check xml or json file extention and will call the json or xml parser accordingly") + (FairMQParser::SUBOPT::OptionKeyChannelConfig, po::value >()->multitoken()->composing(), "Configuration of single or multiple channel(s) by comma separated key=value list") ; AddToCmdLineOptions(fGenericDesc);