From 000bde321dedc1ab709589a5f4cf057fe7825a63 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 --- ege/Light.cpp | 2 +- ege/Light.h | 4 ++-- ege/debug.cpp | 7 ++++--- ege/debug.h | 48 ++++++++++++++++++++++++++++++++++++------------ 4 files changed, 43 insertions(+), 18 deletions(-) diff --git a/ege/Light.cpp b/ege/Light.cpp index 3368b81..beb7753 100644 --- a/ege/Light.cpp +++ b/ege/Light.cpp @@ -46,7 +46,7 @@ void ege::Light::draw(ewol::resource::Program* _prog) { _prog->uniform4(m_GL_specularColor, m_specularColor); } -etk::CCout& ege::operator <<(etk::CCout& _os, const ege::Light& _obj) { +std::ostream& ege::operator <<(std::ostream& _os, const ege::Light& _obj) { _os << "light:{"; _os << "dir=" << _obj.m_direction; _os << " halfplan=" << _obj.m_halfplane; diff --git a/ege/Light.h b/ege/Light.h index 1ad81d1..21e199e 100644 --- a/ege/Light.h +++ b/ege/Light.h @@ -51,9 +51,9 @@ namespace ege { m_specularColor = val; } - friend etk::CCout& operator <<(etk::CCout& _os, const ege::Light& _obj); + friend std::ostream& operator <<(std::ostream& _os, const ege::Light& _obj); }; - etk::CCout& operator <<(etk::CCout& _os, const ege::Light& _obj); + std::ostream& operator <<(std::ostream& _os, const ege::Light& _obj); }; diff --git a/ege/debug.cpp b/ege/debug.cpp index d611944..92e8195 100644 --- a/ege/debug.cpp +++ b/ege/debug.cpp @@ -8,7 +8,8 @@ #include -const char * egeLibName = "ege "; - - +int32_t ege::getLogId(void) { + static int32_t g_val = etk::log::registerInstance("ege"); + return g_val; +} diff --git a/ege/debug.h b/ege/debug.h index 25b9fb1..61f7614 100644 --- a/ege/debug.h +++ b/ege/debug.h @@ -9,20 +9,44 @@ #ifndef __EGE_DEBUG_H__ #define __EGE_DEBUG_H__ -#include -#include +#include -extern const char * egeLibName; +namespace ege { + int32_t getLogId(void); +}; +// TODO : Review this problem of multiple intanciation of "std::stringbuf sb" +#define EGE_BASE(info,data) \ + do { \ + if (info <= etk::log::getLevel(ege::getLogId())) { \ + std::stringbuf sb; \ + std::ostream tmpStream(&sb); \ + tmpStream << data; \ + etk::log::logStream(ege::getLogId(), info, __LINE__, __class__, __func__, tmpStream); \ + } \ + } while(0) -#define EGE_CRITICAL(data) ETK_CRITICAL(egeLibName, data) -#define EGE_WARNING(data) ETK_WARNING(egeLibName, data) -#define EGE_ERROR(data) ETK_ERROR(egeLibName, data) -#define EGE_INFO(data) ETK_INFO(egeLibName, data) -#define EGE_DEBUG(data) ETK_DEBUG(egeLibName, data) -#define EGE_VERBOSE(data) ETK_VERBOSE(egeLibName, data) -#define EGE_ASSERT(cond,data) ETK_ASSERT(egeLibName, cond, data) -#define EGE_CHECK_INOUT(cond) ETK_CHECK_INOUT(egeLibName, cond) -#define EGE_TODO(cond) ETK_TODO(egeLibName, cond) +#define EGE_CRITICAL(data) EGE_BASE(1, data) +#define EGE_ERROR(data) EGE_BASE(2, data) +#define EGE_WARNING(data) EGE_BASE(3, data) +#ifdef DEBUG + #define EGE_INFO(data) EGE_BASE(4, data) + #define EGE_DEBUG(data) EGE_BASE(5, data) + #define EGE_VERBOSE(data) EGE_BASE(6, data) + #define EGE_TODO(data) EGE_BASE(4, "TODO : " << data) +#else + #define EGE_INFO(data) do { } while(false) + #define EGE_DEBUG(data) do { } while(false) + #define EGE_VERBOSE(data) do { } while(false) + #define EGE_TODO(data) do { } while(false) +#endif + +#define EGE_ASSERT(cond,data) \ + do { \ + if (!(cond)) { \ + EGE_CRITICAL(data); \ + assert(!#cond); \ + } \ + } while (0) #endif