Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • bias/configurators/cl-configurator
1 result
Show changes
Commits on Source (3)
Subproject commit 8a0ea2d0e699863df5fe1c91caf2d7b0855957be
Subproject commit a00f9a27afbf5f75dab7db2368b9b9b6fcb395e1
......@@ -4,21 +4,36 @@
namespace inaf::oasbo::Configurators {
/**
* @brief The CLConfigurator class is a concrete implementation of the BaseConfigurator class.
* It provides functionality to read and push configurations from/to a source using command line arguments (--param1 --param2 and so on).
* Check the Base_Configurator.h file for more information.
*/
class CLConfigurator: public BaseConfigurator {
protected:
int argc;
char** argv;
int argc; /**< The number of command line arguments. */
char **argv; /**< The array of command line arguments. */
public:
CLConfigurator(int argc, char** argv);
/**
* @brief Constructs a CLConfigurator object with the specified command line arguments.
* @param argc The number of command line arguments.
* @param argv The array of command line arguments.
*/
CLConfigurator(int argc, char **argv);
int readConfigFromSource() override;
int readConfigFromSource(std::string target) override;
int pushConfigToSource() override;
int pushConfigToSource(std::string target) override;
int insert(std::map<std::string, std::string>, std::string target) override;
~CLConfigurator() { }
~CLConfigurator() {
}
};
}
......@@ -17,27 +17,28 @@ int CLConfigurator::pushConfigToSource() {
}
int CLConfigurator::readConfigFromSource(std::string target) {
for (int i = 1; i < argc-1; ++i) {
for (int i = 1; i < argc - 1; ++i) {
std::string arg = argv[i];
boost::to_lower(arg);
size_t posTarget = arg.find("--"+target);
size_t posTarget = arg.find("--" + target);
size_t posSeparator = arg.find('_');
if (posTarget == 0 && posSeparator == std::string("--"+target).size()) {
if (posTarget == 0
&& posSeparator == std::string("--" + target).size()) {
std::string key = arg.substr(2);
this->config[key] = argv[i+1];
this->config[key] = argv[i + 1];
}
}
return 1;
}
int CLConfigurator::readConfigFromSource() {
for (int i = 1; i < argc-1; ++i) {
for (int i = 1; i < argc - 1; ++i) {
std::string arg = argv[i];
size_t posDash = arg.find("--");
size_t posSeparator = arg.find('_');
if (posDash == 0 && posSeparator != std::string::npos) {
std::string key = arg.substr(2);
this->config[key] = argv[i+1];
this->config[key] = argv[i + 1];
}
}
return 1;
......