Elements  5.8
A C++ base framework for the Euclid Software.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 
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 
101 
102 };
103 
109 } // namespace Elements
110 
111 #endif // ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_H_
112 
Abstract class for all Elements programs.
Definition: Program.h:50
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
ExitCode
Strongly typed exit numbers.
Definition: Exit.h:97
define a list of standard exit codes for executables