Elements
5.10
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
51
class
ELEMENTS_API
Program
{
52
53
public
:
54
58
Program
() =
default
;
59
63
virtual
~Program
();
64
74
virtual
boost::program_options::options_description defineSpecificProgramOptions();
75
85
virtual
std::pair
<boost::program_options::options_description,
86
boost::program_options::positional_options_description> defineProgramArguments();
87
101
virtual
ExitCode
mainMethod
(
std::map<std::string, boost::program_options::variable_value>
& args) = 0;
102
103
};
104
110
}
// namespace Elements
111
112
#endif // ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_H_
113
Export.h
defines the macros to be used for explicit export of the symbols
std::pair
Exit.h
define a list of standard exit codes for executables
Elements::ExitCode
ExitCode
Strongly typed exit numbers.
Definition:
Exit.h:98
Elements::Program::Program
Program()=default
Constructor.
Elements::Program::~Program
virtual ~Program()
Destructor.
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:51
Elements::Program::mainMethod
virtual ExitCode mainMethod(std::map< std::string, boost::program_options::variable_value > &args)=0
This is the "main" method of all Elements programs.
Elements
Definition:
ClassExample.h:38
Generated by
1.8.18