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 
ExitCode
Strongly typed exit numbers.
Definition: Exit.h:98
Abstract class for all Elements programs.
Definition: Program.h:51
STL class.
defines the macros to be used for explicit export of the symbols
#define ELEMENTS_API
Dummy definitions for the backward compatibility mode.
Definition: Export.h:74
define a list of standard exit codes for executables