26#ifndef ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAMMANAGER_H_
27#define ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAMMANAGER_H_
33#include <log4cpp/Priority.hh>
71 const log4cpp::Priority::Value& elements_loglevel = log4cpp::Priority::DEBUG,
72 bool no_config_file =
false);
88 ExitCode run(
int argc,
char* argv[]);
101 static void onTerminate()
noexcept;
110 const Path::Item& getProgramPath()
const;
118 const Path::Item& getProgramName()
const;
128 static const Path::Item getDefaultConfigFile(
const Path::Item& program_name,
const std::string& module_name =
"");
138 static const Path::Item setProgramName(
char* arg0);
148 static const Path::Item setProgramPath(
char* arg0);
155 void setup(
int argc,
char* argv[]);
182 void logAllOptions()
const;
187 void logTheEnvironment()
const;
194 void bootstrapEnvironment(
char* arg0);
202 template <
class charT>
288#define ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_MANAGER_IMPL_
290#undef ELEMENTSKERNEL_ELEMENTSKERNEL_PROGRAM_MANAGER_IMPL_
Defines a class to handle the Environment.
defines the macros to be used for explicit export of the symbols
provide functions to retrieve resources pointed by environment variables
implementation of the templates declared in ElementsKernel/Auxiliary.h
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
void checkCommandLineOptions(const boost::program_options::basic_parsed_options< charT > &cmd_line_options)
check the explicit command line arguments. For the moment, it only checks if the configuration file b...
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.