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 <stdexcept>
5
#include <string>
6
7
#include <boost/program_options.hpp>
8
9
#include "antares-xpansion/xpansion_interfaces/LogUtils.h"
10
11
class
OptionsParser
12
{
13
private
:
14
boost::program_options::options_description desc_ = boost::program_options::options_description(
15
"Allowed options"
);
16
std::string exe_name_ =
""
;
17
18
protected
:
19
explicit
OptionsParser
(
const
std::string& exe_name):
20
exe_name_(exe_name){};
21
22
public
:
23
OptionsParser
() =
default
;
24
virtual
~OptionsParser
() =
default
;
25
26
boost::program_options::options_description_easy_init AddOptions()
27
{
28
return
desc_.add_options();
29
}
30
31
virtual
void
Parse(
unsigned
int
argc,
const
char
*
const
* argv);
32
33
class
NullArgumentsValues
:
public
LogUtils::XpansionError<std::runtime_error>
34
{
35
public
:
36
explicit
NullArgumentsValues
(
const
std::string& exe_name,
const
std::string& log_location):
37
LogUtils::XpansionError<std::runtime_error>(
"Error while parsing "
+ exe_name
38
+
" options: null Arguments values!"
,
39
log_location){};
40
};
41
42
class
InvalidNumberOfArgumentsPassedToParser
:
public
LogUtils::XpansionError<std::runtime_error>
43
{
44
public
:
45
explicit
InvalidNumberOfArgumentsPassedToParser
(
int
argc,
46
const
std::string& exe_name,
47
const
std::string& log_location):
48
LogUtils::XpansionError<std::runtime_error>(
"Error while parsing "
+ exe_name
49
+
": invalid number arguments: "
50
+ std::to_string(argc),
51
log_location){};
52
};
53
};
54
#endif
// ANTARES_XPANSION_SRC_CPP_HELPERS_OPTIONSPARSER_H
OptionsParser::InvalidNumberOfArgumentsPassedToParser
Definition
OptionsParser.h:43
OptionsParser::NullArgumentsValues
Definition
OptionsParser.h:34
OptionsParser
Definition
OptionsParser.h:12
src
cpp
helpers
include
antares-xpansion
helpers
OptionsParser.h
Generated by
1.12.0