Elements  5.10
A C++ base framework for the Euclid Software.
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 
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 
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