/// std #include #include /// boost #include "boost/program_options.hpp" /// FairRoot/FairMQ #include "FairMQLogger.h" #include "FairMQParser.h" #include "FairMQProgOptions.h" ////////////////////////////////////////////////////////////// /// main ////////////////////////////////////////////////////////////// int main(int argc, char** argv) { try { FairMQProgOptions config; po::options_description format_desc("XML input"); format_desc.add_options() ("xml.config.node.root", po::value()->default_value("fairMQOptions"), "xml root node ") ; po::options_description io_file_opt_desc("I/O file Options"); io_file_opt_desc.add_options() ("input.file.name", po::value(), "input file name") ("input.file.tree", po::value(), "input tree name") ("input.file.branch", po::value(), "input branch name") ("output.file.name", po::value(), "output file name") ("output.file.tree", po::value(), "output tree name") ("output.file.branch", po::value(), "output branch name") ; config.AddToCmdLineOptions(format_desc,true); config.AddToCmdLineOptions(io_file_opt_desc,true); config.EnableCfgFile();// UseConfigFile (by default config file is not defined) config.AddToCfgFileOptions(format_desc,false);//false because already added to visible config.AddToCfgFileOptions(io_file_opt_desc,false); // Parse command line and config file if(config.ParseAll(argc,argv)) return 0; // Set severity level (Default is 0=DEBUG) int severity = config.GetValue("severity"); FairMQLogger::Level lvl = static_cast(severity); SET_LOGGER_LEVEL(lvl); // parse XML file std::string filename; std::string XMLrootNode; filename=config.GetValue("config-xml-file"); XMLrootNode=config.GetValue("xml.config.node.root"); std::string id=config.GetValue("id"); config.UserParser(filename,id,XMLrootNode); } catch (std::exception& e) { LOG(error) << e.what(); return 1; } return 0; }