26 #ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAMMANAGER_H_
27 #define ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAMMANAGER_H_
34 #include <boost/program_options/parsers.hpp>
35 #include <log4cpp/Priority.hh>
69 const log4cpp::Priority::Value& elements_loglevel = log4cpp::Priority::DEBUG);
85 ExitCode run(
int argc,
char* argv[]);
98 static void onTerminate() noexcept;
138 static const Path::Item setProgramName(
char* arg0);
148 static const Path::Item setProgramPath(
char* arg0);
155 void setup(
int argc,
char* argv[]);
184 void logAllOptions()
const;
189 void logTheEnvironment()
const;
196 void bootstrapEnvironment(
char* arg0);
204 template<
class charT>
205 void checkCommandLineOptions(
const boost::program_options::basic_parsed_options<charT>& cmd_line_options);
Defines a class to handle the Environment.
define a list of standard exit codes for executables
defines the macros to be used for explicit export of the symbols
provide functions to retrieve resources pointed by environment variables
define an abstract class for all Elements program
Class for managing all Elements programs.
Path::Item m_program_name
std::string m_parent_project_version
std::unique_ptr< Program > m_program_ptr
std::string m_parent_module_name
std::string m_parent_project_name
std::vector< std::string > m_search_dirs
std::string m_parent_module_version
Path::Item m_program_path
log4cpp::Priority::Value m_elements_loglevel
std::string m_parent_project_vcs_version
variables_map VariablesMap
ExitCode
Strongly typed exit numbers.
#define ELEMENTS_API
Dummy definitions for the backward compatibility mode.
boost::filesystem::path Item