diff --git a/src/processor_logging.h b/src/processor_logging.h new file mode 100644 index 0000000000000000000000000000000000000000..167beb892bb2dfe777426d14d535daf7e28cd1ac --- /dev/null +++ b/src/processor_logging.h @@ -0,0 +1,31 @@ +/** + * \file processor_logging.h + * + * Created on: Oct 5, 2017 + * \author: Jeremie Deray + */ + +#ifndef _WOLF_PROCESSOR_LOGGING_H_ +#define _WOLF_PROCESSOR_LOGGING_H_ + +/// @brief un-comment for IDE highlights. +//#include "logging.h" + +#define __INTERNAL_WOLF_ASSERT_PROCESSOR \ + static_assert(std::is_base_of<ProcessorBase, \ + typename std::remove_pointer<decltype(this)>::type>::value, \ + "This macro can be used only within the body of a " \ + "non-static " \ + "ProcessorBase (and derived) function !"); + +#define WOLF_PROCESSOR_INFO(...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_INFO_NAMED(getType(), __VA_ARGS__); +#define WOLF_PROCESSOR_WARN(...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_WARN_NAMED(getType(), __VA_ARGS__); +#define WOLF_PROCESSOR_ERROR(...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_ERROR_NAMED(getType(), __VA_ARGS__); +#define WOLF_PROCESSOR_DEBUG(...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_DEBUG_NAMED(getType(), __VA_ARGS__); + +#define WOLF_PROCESSOR_INFO_COND(cond, ...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_INFO_NAMED_COND(getType(), cond, __VA_ARGS__); +#define WOLF_PROCESSOR_WARN_COND(cond, ...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_WARN_NAMED_COND(getType(), cond, __VA_ARGS__); +#define WOLF_PROCESSOR_ERROR_COND(cond, ...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_ERROR_NAMED_COND(getType(), cond, __VA_ARGS__); +#define WOLF_PROCESSOR_DEBUG_COND(cond, ...) __INTERNAL_WOLF_ASSERT_PROCESSOR WOLF_DEBUG_NAMED_COND(getType(), cond, __VA_ARGS__); + +#endif /* _WOLF_PROCESSOR_LOGGING_H_ */