|
|
- /**
- * @file Log.h
- * @brief Log interfaces.
- * @copyright VisionLabs LLC
- * @date 20.02.2018
- * */
-
- #pragma once
- #include <fsdk/Def.h>
-
- namespace fsdk{
- namespace log {
-
- /**
- * @brief Custom print function type.
- * */
- using PrintFunction = void (*)(int severity, const char* message);
-
- /**
- * @brief Log message severity enumeration.
- * */
- enum Severity
- {
- SV_ERROR=1, //!< Critical error.
- SV_WARN, //!< Recoverable error / non-critical issue.
- SV_INFO, //!< Generic information.
- SV_DEBUG, //!< Extended (debugging) information (verbose).
-
- #ifndef NDEBUG
- SV_DEFAULT = SV_DEBUG //!< Default severity.
- #else
- SV_DEFAULT = SV_INFO //!< Default severity.
- #endif
- };
-
- /**
- * @brief Set print function pointer. Default function is made thread-safe with function-local mutex.
- * It means that if you provide your custom print function it's your duty to make it thread safe or not thread safe.
- * @param [in] function new function pointer. @see PrintFunction.
- * Any exception thrown out of param function is catched, but not throwing is
- * better idea still.
- * */
- FSDK_API void setPrintFunction(PrintFunction function) noexcept;
-
- /**
- * @brief Get print function pointer.
- * @returns print function pointer. @see PrintFunction.
- * */
- FSDK_API PrintFunction getPrintFunction() noexcept;
-
- /**
- * @brief Get default print function pointer. Is thread-safe.
- * @returns print function pointer. @see PrintFunction.
- * */
- FSDK_API PrintFunction getDefaultPrintFunction() noexcept;
-
- /**
- * @brief Helper function to restore default print function.
- * @detais This is equivalent to:
- * @code
- * setPrintFunction(getDefaultPrintFunction());
- * @endcode
- * */
- FSDK_API void restorePrintFunction() noexcept;
-
- /**
- * @brief Sets severity logging filter
- * @param [in] severity desired severity filter. @see Severity.
- * */
- FSDK_API void setSeverityFilter(int severity) noexcept;
-
- /** @brief Get log severity filter.
- * @returns severity level. @see Severity.
- */
- FSDK_API int getSeverityFilter() noexcept;
- }
- }
|