From 8bf2d17b61989d8fbe01cbd1228147ab52e19d23 Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Wed, 30 Apr 2014 22:18:00 +0200 Subject: [PATCH] [DEV] change log system --- agg/agg_color_rgba.h | 2 +- draw/Color.cpp | 2 +- draw/Color.h | 2 +- draw/debug.cpp | 6 +++++- draw/debug.h | 48 +++++++++++++++++++++++++++++++++----------- 5 files changed, 44 insertions(+), 16 deletions(-) diff --git a/agg/agg_color_rgba.h b/agg/agg_color_rgba.h index 9439ecc..f3aa769 100644 --- a/agg/agg_color_rgba.h +++ b/agg/agg_color_rgba.h @@ -486,7 +486,7 @@ namespace agg } return false; }; - friend etk::CCout& operator <<( etk::CCout &os,const self_type& obj); + friend std::ostream& operator <<( std::ostream &os,const self_type& obj); }; diff --git a/draw/Color.cpp b/draw/Color.cpp index 2c45397..d508851 100644 --- a/draw/Color.cpp +++ b/draw/Color.cpp @@ -469,7 +469,7 @@ void draw::parseColor(const char* _input, struct agg::rgba8& color) TK_VERBOSE("Parse color : \"" << inputData << "\" == > " << color); } -etk::CCout& agg::operator <<(etk::CCout &os, const struct agg::rgba8& obj) +std::ostream& agg::operator <<(std::ostream &os, const struct agg::rgba8& obj) { char tmpData[256]; snprintf(tmpData, 256, "#%02X%02X%02X%02X", obj.r, obj.g, obj.b, obj.a); diff --git a/draw/Color.h b/draw/Color.h index b93529d..8637346 100644 --- a/draw/Color.h +++ b/draw/Color.h @@ -28,7 +28,7 @@ #include #include namespace agg { - etk::CCout& operator <<(etk::CCout &os, const struct agg::rgba8& obj); + std::ostream& operator <<(std::ostream &os, const struct agg::rgba8& obj); }; namespace draw { diff --git a/draw/debug.cpp b/draw/debug.cpp index 14c0bd8..0fdd3cc 100644 --- a/draw/debug.cpp +++ b/draw/debug.cpp @@ -25,4 +25,8 @@ #include -const char * drawLibName = "draw "; +int32_t draw::getLogId(void) { + static int32_t g_val = etk::log::registerInstance("draw"); + return g_val; +} + diff --git a/draw/debug.h b/draw/debug.h index 165a0d6..a50d25b 100644 --- a/draw/debug.h +++ b/draw/debug.h @@ -25,20 +25,44 @@ #ifndef __DRAW_DEBUG_H__ #define __DRAW_DEBUG_H__ -#include -#include +#include -extern const char * drawLibName; +namespace draw { + int32_t getLogId(void); +}; +// TODO : Review this problem of multiple intanciation of "std::stringbuf sb" +#define DRAW_BASE(info,data) \ + do { \ + if (info <= etk::log::getLevel(draw::getLogId())) { \ + std::stringbuf sb; \ + std::ostream tmpStream(&sb); \ + tmpStream << data; \ + etk::log::logStream(draw::getLogId(), info, __LINE__, __class__, __func__, tmpStream); \ + } \ + } while(0) -#define DRAW_CRITICAL(data) ETK_CRITICAL(drawLibName, data) -#define DRAW_WARNING(data) ETK_WARNING(drawLibName, data) -#define DRAW_ERROR(data) ETK_ERROR(drawLibName, data) -#define DRAW_INFO(data) ETK_INFO(drawLibName, data) -#define DRAW_DEBUG(data) ETK_DEBUG(drawLibName, data) -#define DRAW_VERBOSE(data) ETK_VERBOSE(drawLibName, data) -#define DRAW_ASSERT(cond, data) ETK_ASSERT(drawLibName, cond, data) -#define DRAW_CHECK_INOUT(cond) ETK_CHECK_INOUT(drawLibName, cond) -#define DRAW_TODO(cond) ETK_TODO(drawLibName, cond) +#define DRAW_CRITICAL(data) DRAW_BASE(1, data) +#define DRAW_ERROR(data) DRAW_BASE(2, data) +#define DRAW_WARNING(data) DRAW_BASE(3, data) +#ifdef DEBUG + #define DRAW_INFO(data) DRAW_BASE(4, data) + #define DRAW_DEBUG(data) DRAW_BASE(5, data) + #define DRAW_VERBOSE(data) DRAW_BASE(6, data) + #define DRAW_TODO(data) DRAW_BASE(4, "TODO : " << data) +#else + #define DRAW_INFO(data) do { } while(false) + #define DRAW_DEBUG(data) do { } while(false) + #define DRAW_VERBOSE(data) do { } while(false) + #define DRAW_TODO(data) do { } while(false) +#endif + +#define DRAW_ASSERT(cond,data) \ + do { \ + if (!(cond)) { \ + DRAW_CRITICAL(data); \ + assert(!#cond); \ + } \ + } while (0) #endif