Mercurial > hg > orthanc-stone
view Applications/Wasm/StartupParametersBuilder.cpp @ 1295:2791e0566a0d rtviewer19branch
Close branch rtviewer19branch.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Fri, 21 Feb 2020 15:09:35 +0000 |
parents | 092db46c6291 |
children | 70992b38aa8a 9e3bb8b4f726 |
line wrap: on
line source
#include "StartupParametersBuilder.h" namespace OrthancStone { void StartupParametersBuilder::Clear() { startupParameters_.clear(); } void StartupParametersBuilder::SetStartupParameter(const char* name, const char* value) { startupParameters_.push_back(std::make_tuple(name, value)); } void StartupParametersBuilder::GetStartupParameters(boost::program_options::variables_map& parameters, const boost::program_options::options_description& options) { const char* argv[startupParameters_.size() + 1]; int argCounter = 0; argv[0] = "Toto.exe"; argCounter++; std::string cmdLine = ""; for (StartupParameters::const_iterator it = startupParameters_.begin(); it != startupParameters_.end(); it++) { char* arg = new char[128]; snprintf(arg, 128, "--%s=%s", std::get<0>(*it).c_str(), std::get<1>(*it).c_str()); argv[argCounter] = arg; cmdLine = cmdLine + " --" + std::get<0>(*it) + "=" + std::get<1>(*it); argCounter++; } printf("simulated cmdLine = %s\n", cmdLine.c_str()); try { boost::program_options::store(boost::program_options::command_line_parser(argCounter, argv). options(options).run(), parameters); boost::program_options::notify(parameters); } catch (boost::program_options::error& e) { printf("Error while parsing the command-line arguments: %s\n", e.what()); } } }