26#ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAMMANAGER_H_
27#define ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAMMANAGER_H_
34#include <boost/program_options/parsers.hpp>
35#include <log4cpp/Priority.hh>
66 const log4cpp::Priority::Value& elements_loglevel = log4cpp::Priority::DEBUG);
82 ExitCode run(
int argc,
char* argv[]);
95 static void onTerminate()
noexcept;
104 const Path::Item& getProgramPath()
const;
112 const Path::Item& getProgramName()
const;
122 static const Path::Item getDefaultConfigFile(
const Path::Item& program_name,
const std::string& module_name =
"");
132 static const Path::Item setProgramName(
char* arg0);
142 static const Path::Item setProgramPath(
char* arg0);
149 void setup(
int argc,
char* argv[]);
176 void logAllOptions()
const;
181 void logTheEnvironment()
const;
188 void bootstrapEnvironment(
char* arg0);
196 template <
class charT>
197 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
Python dictionary-like Environment interface.
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.