Split vulkan_base into smaller units
Closes #30. This is a basic refactoring of the graphics module, so everything won't be in single file.
This commit is contained in:
1 parent
649e7f76fe
commit
6a09350902
32 files changed
+2354
-2002
No files matched your search
@@ -0,0 +1,79 @@
|
||||
/**
|
||||
* @file log.hpp
|
||||
* @author Piotr Krygier (everyonencancode@gmail.com)
|
||||
* @brief Logging interfaces
|
||||
* @version 0.1
|
||||
* @date 2022-02-11
|
||||
*
|
||||
* @copyright Copyright (c) 2022
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef RSE_LOGGER_HPP
|
||||
#define RSE_LOGGER_HPP
|
||||
|
||||
#include <sstream>
|
||||
|
||||
#ifndef LOG_LEVEL
|
||||
#define LOG_LEVEL LOGLEVEL_DEBUG
|
||||
#endif
|
||||
|
||||
#define LOGT rse::utils::log::Logger(rse::utils::log::LOGLEVEL_TRACE)
|
||||
#define LOGD rse::utils::log::Logger(rse::utils::log::LOGLEVEL_DEBUG)
|
||||
#define LOGI rse::utils::log::Logger(rse::utils::log::LOGLEVEL_INFO)
|
||||
#define LOGW rse::utils::log::Logger(rse::utils::log::LOGLEVEL_WARNING)
|
||||
#define LOGE rse::utils::log::Logger(rse::utils::log::LOGLEVEL_ERROR)
|
||||
#define LOGF rse::utils::log::Logger(rse::utils::log::LOGLEVEL_FATAL)
|
||||
|
||||
|
||||
|
||||
namespace rse::utils::log
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief Log level. Is not an enum class, because level is being compared to enable prints
|
||||
*
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
LOGLEVEL_TRACE = 1,
|
||||
LOGLEVEL_DEBUG = 2,
|
||||
LOGLEVEL_INFO = 3,
|
||||
LOGLEVEL_WARNING = 4,
|
||||
LOGLEVEL_ERROR = 5,
|
||||
LOGLEVEL_FATAL = 6
|
||||
} LogLevel;
|
||||
|
||||
/**
|
||||
* @brief Class used indirectly as a logger.
|
||||
*
|
||||
*/
|
||||
class Logger {
|
||||
private:
|
||||
bool printMessage;
|
||||
std::stringstream mMessageBuffer;
|
||||
|
||||
public:
|
||||
/**
|
||||
* @brief Construct a new Logger object
|
||||
*
|
||||
*/
|
||||
Logger(LogLevel);
|
||||
~Logger();
|
||||
|
||||
/**
|
||||
* @brief For log printing. I want it to work like log << "Message " << args;
|
||||
*
|
||||
*/
|
||||
template <typename T>
|
||||
Logger& operator<<(T&& message)
|
||||
{
|
||||
if (printMessage)
|
||||
mMessageBuffer << message;
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
} // namespace rse::log
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user