X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Futil.hpp;h=e285c0f23d6848619c21a571dbd26a80d83f9675;hb=268111321e92c4366100924b2c0cd8a8c945885b;hp=0a3b8dedfa5b245177b4c4e5e71283e411f85690;hpb=fc5950be006125db759b253d0a141953a7908bd3;p=staging%2Fwindowmanager.git diff --git a/src/util.hpp b/src/util.hpp index 0a3b8de..e285c0f 100644 --- a/src/util.hpp +++ b/src/util.hpp @@ -3,8 +3,13 @@ #include #include + #include +extern "C" { +#include +}; + #ifdef __GNUC__ #define ATTR_FORMAT(stringindex, firsttocheck) \ __attribute__((format(printf, stringindex, firsttocheck))) @@ -14,17 +19,32 @@ #define ATTR_NORETURN #endif -void lognotice(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2); -void logerror(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2); -void fatal(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2) ATTR_NORETURN; +#define lognotice(...) AFB_NOTICE(__VA_ARGS__) +#define logerror(...) AFB_ERROR(__VA_ARGS__) +#define fatal(...) \ + do { \ + AFB_ERROR(__VA_ARGS__); \ + abort(); \ + } while (0) #ifdef DEBUG_OUTPUT -void logdebug(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2); +#define logdebug(...) AFB_DEBUG(__VA_ARGS__) #else -static inline void logdebug(char const *fmt, ...) noexcept ATTR_FORMAT(1, 2); -static inline void logdebug(char const *fmt, ...) noexcept {} +#define logdebug(...) #endif +#ifndef NDEBUG +#define DB(expr) \ + do { \ + std::ostringstream o; \ + o << __FILE__ << ":" << __LINE__ << ":" << __func__ << ": " << expr; \ + logdebug("%s", o.str().c_str()); \ + } while (0) +#else +#define DB(expr) +#endif + + // _ _ _ __ _ // ___| |_ _ __ _ _ ___| |_ _ _ _ __ (_) __ _ _ _ ___ / _| __| | // / __| __| '__| | | |/ __| __| | | | | '_ \| |/ _` | | | |/ _ \ | |_ / _` |