Elements
5.8
A C++ base framework for the Euclid Software.
ElementsKernel
ElementsKernel
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 <string>
// for string
31
#include <utility>
// for pair
32
#include <map>
// for map
33
#include <memory>
// for unique_ptr
34
35
#include <boost/program_options.hpp>
36
37
#include "
ElementsKernel/Export.h
"
// ELEMENTS_API
38
#include "
ElementsKernel/Exit.h
"
// for ExitCode
39
40
namespace
Elements
{
41
50
class
ELEMENTS_API
Program
{
51
52
public
:
53
57
Program
() =
default
;
58
62
virtual
~
Program
();
63
73
virtual
boost::program_options::options_description defineSpecificProgramOptions();
74
84
virtual
std::pair
<boost::program_options::options_description,
85
boost::program_options::positional_options_description> defineProgramArguments();
86
100
virtual
ExitCode
mainMethod(
std::map<std::string, boost::program_options::variable_value>
& args) = 0;
101
102
};
103
109
}
// namespace Elements
110
111
#endif // ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_H_
112
Export.h
defines the macros to be used for explicit export of the symbols
std::pair
Elements::ExitCode
ExitCode
Strongly typed exit numbers.
Definition:
Exit.h:97
Exit.h
define a list of standard exit codes for executables
ELEMENTS_API
#define ELEMENTS_API
Dummy definitions for the backward compatibility mode.
Definition:
Export.h:74
std::map
STL class.
Elements::Program
Abstract class for all Elements programs.
Definition:
Program.h:50
Elements
Definition:
Auxiliary.h:43
Generated by
1.8.17