Environment.hpp

This File On Github
Ask A Question

API: latest
module: oatpp
#include "oatpp/core/base/Environment.hpp"

Logger

Interface for system-wide Logger.
All calls to OATPP_DISABLE_LOGV, OATPP_DISABLE_LOGD, OATPP_DISABLE_LOGI, OATPP_DISABLE_LOGW, OATPP_DISABLE_LOGE will come here.

namespace oatpp { namespace base { 
  class Logger {}
}}

Fields

Type Name Summary
v_int32 PRIORITY_V Log priority V-verbouse.
v_int32 PRIORITY_D Log priority D-debug.
v_int32 PRIORITY_I Log priority I-Info.
v_int32 PRIORITY_W Log priority W-Warning.
v_int32 PRIORITY_E Log priority E-error.

Methods

Return Type Name Summary
[none] ~Logger Virtual Destructor.
void log Log message with priority, tag, message.

Logger::PRIORITY_V

Log priority V-verbouse.

static constexpr v_int32 PRIORITY_V = 0

Logger::PRIORITY_D

Log priority D-debug.

static constexpr v_int32 PRIORITY_D = 1

Logger::PRIORITY_I

Log priority I-Info.

static constexpr v_int32 PRIORITY_I = 2

Logger::PRIORITY_W

Log priority W-Warning.

static constexpr v_int32 PRIORITY_W = 3

Logger::PRIORITY_E

Log priority E-error.

static constexpr v_int32 PRIORITY_E = 4

Logger::~Logger

Virtual Destructor.

virtual ~Logger() = default

Logger::log

Log message with priority, tag, message.

  • @param priority - priority channel of the message.
  • @param tag - tag of the log message.
  • @param message - message.

virtual void log(v_int32 priority, const std::string& tag, const std::string& message) = 0

DefaultLogger

Default Logger implementation.

namespace oatpp { namespace base { 
  class DefaultLogger : public Logger {}
}}

Methods

Return Type Name Summary
[none] DefaultLogger Constructor.
void log Log message with priority, tag, message.

DefaultLogger::DefaultLogger

Constructor.

  • @param config - Logger config.

DefaultLogger(const Config& config = Config("%Y-%m-%d %H:%M:%S", true))

DefaultLogger::log

Log message with priority, tag, message.

  • @param priority - log-priority channel of the message.
  • @param tag - tag of the log message.
  • @param message - message.

void log(v_int32 priority, const std::string& tag, const std::string& message) override

DefaultLogger::Config

Default Logger Config.

namespace oatpp { namespace base { 
  class DefaultLogger : public Logger {
    struct Config {}
  };
}}

Fields

Type Name Summary
const char* timeFormat Time format of the log message. If nullptr then do not print time.
bool printTicks Print micro-ticks in the log message.

Methods

Return Type Name Summary
[none] Config Constructor.

DefaultLogger::Config::timeFormat

Time format of the log message. If nullptr then do not print time.

const char* timeFormat

DefaultLogger::Config::printTicks

Print micro-ticks in the log message.

bool printTicks

DefaultLogger::Config::Config

Constructor.

  • @param tfmt - time format.
  • @param printMicroTicks - show ticks in microseconds.

Config(const char* tfmt, bool printMicroTicks)
  : timeFormat(tfmt)
  , printTicks(printMicroTicks)

Environment

Class to manage application environment.
Manage object counters, manage components, and do system health-checks.

namespace oatpp { namespace base { 
  class Environment {}
}}

Methods

Return Type Name Summary
void init Multiple implementations:
  1. Initialize environment and do basic health-checks.
  2. Initialize environment and do basic health-checks.
void destroy De-initialize environment and do basic health-checks.
void incObjects increment counter of objects.
void decObjects decrement counter of objects.
v_counter getObjectsCount Get count of objects currently allocated and stored in the memory.
v_counter getObjectsCreated Get count of objects created for a whole system lifetime.
v_counter getThreadLocalObjectsCount Same as getObjectsCount() but thread_local
v_counter getThreadLocalObjectsCreated Same as getObjectsCreated() but thread_local
void setLogger Set environment logger.
void printCompilationConfig Print debug information of compilation config.
void log Call Logger::log()
void logFormatted Format message and call Logger::log()
void* getComponent Multiple implementations:
  1. Get component object by typeName.
  2. Get component object by typeName and componentName.
v_int64 getMicroTickCount Get ticks count in microseconds.

Environment::init

  1. Initialize environment and do basic health-checks.
    static void init()
    
  2. Initialize environment and do basic health-checks.
    • @param logger - system-wide logger.
    static void init(const std::shared_ptr<Logger>& logger)
    

Environment::destroy

De-initialize environment and do basic health-checks. Check for memory leaks.

static void destroy()

Environment::incObjects

increment counter of objects.

static void incObjects()

Environment::decObjects

decrement counter of objects.

static void decObjects()

Environment::getObjectsCount

Get count of objects currently allocated and stored in the memory.

  • @return

static v_counter getObjectsCount()

Environment::getObjectsCreated

Get count of objects created for a whole system lifetime.

  • @return - count of objects.

static v_counter getObjectsCreated()

Environment::getThreadLocalObjectsCount

Same as getObjectsCount() but thread_local

  • @return - count of objects.
    0 - if built with -DOATPP_COMPAT_BUILD_NO_THREAD_LOCAL flag

static v_counter getThreadLocalObjectsCount()

Environment::getThreadLocalObjectsCreated

Same as getObjectsCreated() but thread_local

  • @return - count of objects.
    0 - if built with -DOATPP_COMPAT_BUILD_NO_THREAD_LOCAL flag

static v_counter getThreadLocalObjectsCreated()

Environment::setLogger

Set environment logger.

  • @param logger - system-wide logger.

static void setLogger(const std::shared_ptr<Logger>& logger)

Environment::printCompilationConfig

Print debug information of compilation config.
Print values for:
- OATPP_DISABLE_ENV_OBJECT_COUNTERS
- OATPP_DISABLE_POOL_ALLOCATIONS
- OATPP_THREAD_HARDWARE_CONCURRENCY
- OATPP_THREAD_DISTRIBUTED_MEM_POOL_SHARDS_COUNT

static void printCompilationConfig()

Environment::log

Call Logger::log()

  • @param priority - log-priority channel of the message.
  • @param tag - tag of the log message.
  • @param message - message.

static void log(v_int32 priority, const std::string& tag, const std::string& message)

Environment::logFormatted

Format message and call Logger::log()
Message is formatted using vsnprintf method.

  • @param priority - log-priority channel of the message.
  • @param tag - tag of the log message.
  • @param message - message.
  • @param ... - format arguments.

static void logFormatted(v_int32 priority, const std::string& tag, const char* message, ...)

Environment::getComponent

  1. Get component object by typeName.
    • @param typeName - type name of the component.
    • @return - pointer to a component object.
    static void* getComponent(const std::string& typeName)
    
  2. Get component object by typeName and componentName.
    • @param typeName - type name of the component.
    • @param componentName - component qualifier name.
    • @return - pointer to a component object.
    static void* getComponent(const std::string& typeName, const std::string& componentName)
    

Environment::getMicroTickCount

Get ticks count in microseconds.

  • @return - ticks count in microseconds.

static v_int64 getMicroTickCount()

Environment::Component

Class representing system component.

  • @tparam T - component type.

namespace oatpp { namespace base { 
  class Environment {
    template <typename T>
    class Component {}
  };
}}

Methods

Return Type Name Summary
[none] Component Multiple implementations:
  1. Constructor.
  2. Constructor.
[none] ~Component Non-virtual Destructor.
T getObject Get object stored in the component.

Environment::Component::Component

  1. Constructor.
    • @param name - component name.
    • @param object - component object.
    Component(const std::string& name, const T& object)
      : m_type(typeid(T).name())
      , m_name(name)
      , m_object(object)
    
  2. Constructor.
    • @param object - component object.
    Component(const T& object)
      : Component("NoName", object)
    

Environment::Component::~Component

Non-virtual Destructor.

~Component()

Environment::Component::getObject

Get object stored in the component.

  • @return - object.

T getObject()

OATPP_ASSERT

Default oatpp assert method.

  • @param EXP - expression that must be true.

#define OATPP_ASSERT(EXP)

OATPP_LOGV

Log message with Logger::PRIORITY_V
To disable this log compile oatpp with #define OATPP_DISABLE_LOGV

  • @param TAG - message tag.
  • @param ...(1) - message.
  • @param ... - optional format parameter.

#define OATPP_LOGV(TAG, ...)

OATPP_LOGD

Log message with Logger::PRIORITY_D
To disable this log compile oatpp with #define OATPP_DISABLE_LOGD

  • @param TAG - message tag.
  • @param ...(1) - message.
  • @param ... - optional format parameter.

#define OATPP_LOGD(TAG, ...)

OATPP_LOGI

Log message with Logger::PRIORITY_I
To disable this log compile oatpp with #define OATPP_DISABLE_LOGI

  • @param TAG - message tag.
  • @param ...(1) - message.
  • @param ... - optional format parameter.

#define OATPP_LOGI(TAG, ...)

OATPP_LOGW

Log message with Logger::PRIORITY_W
To disable this log compile oatpp with #define OATPP_DISABLE_LOGW

  • @param TAG - message tag.
  • @param ...(1) - message.
  • @param ... - optional format parameter.

#define OATPP_LOGW(TAG, ...)

OATPP_LOGE

Log message with Logger::PRIORITY_E
To disable this log compile oatpp with #define OATPP_DISABLE_LOGE

  • @param TAG - message tag.
  • @param ...(1) - message.
  • @param ... - optional format parameter.

#define OATPP_LOGE(TAG, ...)