Commit 6542e0c7 authored by Martin Marinov's avatar Martin Marinov

Merge remote-tracking branch 'Base/master' into merge-from-ReForm

parents 11d5b5f8 c133e45f
// (C) Copyright 2019 by Autodesk, Inc. // (C) Copyright 2020 by Autodesk, Inc.
#ifndef BASE_DEBCONFIG_HH_INCLUDED #ifndef BASE_DEBCONFIG_HH_INCLUDED
#define BASE_DEBCONFIG_HH_INCLUDED #define BASE_DEBCONFIG_HH_INCLUDED
...@@ -7,11 +7,12 @@ ...@@ -7,11 +7,12 @@
#include <Base/Config/BaseDefines.hh> #include <Base/Config/BaseDefines.hh>
#include <string> #include <string>
namespace Debug { namespace Debug
{
void print_char_to_cerr(const char _c); //!< print a char to cerr void print_char_to_cerr(const char _c); //!< print a char to cerr
/*! /*!
Access the global, per-process, configuration options of the Debug system. Access the global, per-process, configuration options of the Debug system.
\todo Make this a per-thread configuration. \todo Make this a per-thread configuration.
*/ */
...@@ -26,31 +27,37 @@ public: ...@@ -26,31 +27,37 @@ public:
static Config& modify(); static Config& modify();
//! Query the current configuration. //! Query the current configuration.
static const Config& query(); static const Config& query();
//! Query the default configuration. //! Query the default configuration.
static const Config& defaults(); static const Config& defaults();
public: public:
//! The output level for all code in the absence of a config file. //! The output level for all code in the absence of a config file.
int output_level = 5; int output_level = 5;
//! The deb out log filename, nullptr disables the debug output log file. //! The deb out log filename, nullptr disables the debug output log file.
const char* log_filename = nullptr; const char* log_filename = nullptr;
//! Get if the log file output is enabled
bool logfile() const { return log_filename != nullptr; }
//! Function to deb out on the console, nullptr if output disabled. //! Function to deb out on the console, nullptr if output disabled.
print_function console_print = print_char_to_cerr; print_function console_print = print_char_to_cerr;
//! Get if the console
bool console() const { return console_print != nullptr; }
public: public:
//! The output level for the given filename and function. //! The output level for the given filename and function.
int custom_level(const char* const _flnm, const char* const _fnct) const; int custom_level(const char* const _flnm, const char* const _fnct) const;
/*! /*!
Load the configuration file specified either by the environment variable Load the configuration file specified either by the environment variable
or the filename if the the environment variable is not set. or the filename if the the environment variable is not set.
\todo Document the config format. \todo Document the config format.
\return true if the configuration file was loaded properly, false otherwise. \return true if the configuration file was loaded properly, false otherwise.
*/ */
bool load(const char* const _cnfg_envr, const char* const _cnfg_flnm); bool load(const char* const _cnfg_envr, const char* const _cnfg_flnm);
private: private:
...@@ -71,9 +78,9 @@ private: ...@@ -71,9 +78,9 @@ private:
//! Disable assignment //! Disable assignment
Config& operator=(const Config&); Config& operator=(const Config&);
}; };
};//namespace Debug }; // namespace Debug
#endif//DEB_ON #endif // DEB_ON
#endif//BASE_DEBCONFIG_HH_INCLUDED #endif // BASE_DEBCONFIG_HH_INCLUDED
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment