Antares Xpansion
Investment simulations for Antares studies
Loading...
Searching...
No Matches
OptionsParser.h
1#ifndef ANTARES_XPANSION_SRC_CPP_HELPERS_OPTIONSPARSER_H
2#define ANTARES_XPANSION_SRC_CPP_HELPERS_OPTIONSPARSER_H
3
4#include <boost/program_options.hpp>
5#include <stdexcept>
6#include <string>
7
8#include "antares-xpansion/xpansion_interfaces/LogUtils.h"
9
11 private:
12 boost::program_options::options_description desc_ =
13 boost::program_options::options_description("Allowed options");
14 std::string exe_name_ = "";
15
16 protected:
17 explicit OptionsParser(const std::string& exe_name) : exe_name_(exe_name){};
18
19 public:
20 OptionsParser() = default;
21 virtual ~OptionsParser() = default;
22
23 boost::program_options::options_description_easy_init AddOptions() {
24 return desc_.add_options();
25 }
26 virtual void Parse(unsigned int argc, const char* const* argv);
28 : public LogUtils::XpansionError<std::runtime_error> {
29 public:
30 explicit NullArgumentsValues(const std::string& exe_name,
31 const std::string& log_location)
32 : LogUtils::XpansionError<std::runtime_error>(
33 "Error while parsing " + exe_name +
34 " options: null Arguments values!",
35 log_location){};
36 };
38 : public LogUtils::XpansionError<std::runtime_error> {
39 public:
41 int argc, const std::string& exe_name, const std::string& log_location)
42 : LogUtils::XpansionError<std::runtime_error>(
43 "Error while parsing " + exe_name +
44 ": invalid number arguments: " + std::to_string(argc),
45 log_location){};
46 };
47};
48#endif // ANTARES_XPANSION_SRC_CPP_HELPERS_OPTIONSPARSER_H
Definition OptionsParser.h:28
Definition OptionsParser.h:10