Elements 6.3.1
A C++ base framework for the Euclid Software.
Loading...
Searching...
No Matches
Program.h
Go to the documentation of this file.
1
27#ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_H_
28#define ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_H_
29
30#include <map> // for map
31#include <string> // for string
32#include <utility> // for pair
33
34#include <boost/program_options.hpp> // for options_description, positional_options_description, variable_value, variables_map
35
36#include "ElementsKernel/Export.h" // for ELEMENTS_API
37#include "ElementsKernel/Logging.h" // for Logging
38
39namespace Elements {
40enum class ExitCode : int;
41}
42
43namespace Elements {
44
55
56public:
57 // backwards compatible type aliases
58 using options_description = boost::program_options::options_description;
59 using positional_options_description = boost::program_options::positional_options_description;
60 using variable_value = boost::program_options::variable_value;
61 using variables_map = boost::program_options::variables_map;
62
63 // camel case type aliases
68
71
75 Program() = default;
76
80 virtual ~Program();
81
91 virtual OptionsDescription defineSpecificProgramOptions();
92
103
118};
119
125} // namespace Elements
126
127#endif // ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_H_
128
defines the macros to be used for explicit export of the symbols
Logging facility.
Logging API of the Elements framework.
Definition Logging.h:93
Abstract class for all Elements programs.
Definition Program.h:54
options_description OptionsDescription
Definition Program.h:64
boost::program_options::options_description options_description
Definition Program.h:58
boost::program_options::positional_options_description positional_options_description
Definition Program.h:59
boost::program_options::variables_map variables_map
Definition Program.h:61
variable_value VariableValue
Definition Program.h:66
positional_options_description PositionalOptionsDescription
Definition Program.h:65
virtual ExitCode mainMethod(std::map< std::string, VariableValue > &args)=0
This is the "main" method of all Elements programs.
Program()=default
Constructor.
virtual ~Program()
Destructor.
variables_map VariablesMap
Definition Program.h:67
boost::program_options::variable_value variable_value
Definition Program.h:60
ExitCode
Strongly typed exit numbers.
Definition Exit.h:97
#define ELEMENTS_API
Dummy definitions for the backward compatibility mode.
Definition Export.h:74