From 6e983829bf249af87669785f10be83056ec5343a Mon Sep 17 00:00:00 2001
From: g0dil <g0dil@wiback.org>
Date: Thu, 11 Oct 2007 06:33:44 +0000
Subject: [PATCH] Utils/Logger: BUGFIX: add SENF_LOG_TPL variants which work
 with templatized log parameters

---
 PPI/DebugModules.cti       | 2 +-
 PPI/DebugModules.test.cc   | 2 +-
 Utils/Logger/Log.hh        | 8 ++++++++
 Utils/Logger/Parameters.ih | 5 +++++
 4 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/PPI/DebugModules.cti b/PPI/DebugModules.cti
index e9c73092c..1c46d1af1 100644
--- a/PPI/DebugModules.cti
+++ b/PPI/DebugModules.cti
@@ -48,7 +48,7 @@ template <class Stream, class Area, class Level>
 prefix_ void senf::ppi::module::debug::LogSink<Stream,Area,Level>::request()
 {
     Packet packet (input());
-    SENF_LOG_BLOCK((Stream)(Area)(Level)({
+    SENF_LOG_BLOCK_TPL((Stream)(Area)(Level)({
         packet.dump(log);
         hexdump(packet.last().data().begin(), packet.last().data().end(),log);
     }));
diff --git a/PPI/DebugModules.test.cc b/PPI/DebugModules.test.cc
index a08801238..20101981a 100644
--- a/PPI/DebugModules.test.cc
+++ b/PPI/DebugModules.test.cc
@@ -36,7 +36,7 @@ namespace {
     std::stringstream logstream;
 }
 
-#define SENF_LOG_CONF ((senf::log::Debug)(_)(VERBOSE))
+#define SENF_LOG_CONF (( (senf)(log)(Debug), (_), VERBOSE ))
 
 #include "../Packets/Packets.hh"
 #include "DebugModules.hh"
diff --git a/Utils/Logger/Log.hh b/Utils/Logger/Log.hh
index efb514332..072e89387 100644
--- a/Utils/Logger/Log.hh
+++ b/Utils/Logger/Log.hh
@@ -51,6 +51,10 @@
     SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS(BOOST_PP_SEQ_POP_BACK(args)),                      \
                      { log << BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args); })
 
+#define SENF_LOG_TPL(args)                                                                        \
+    SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS_TPL(BOOST_PP_SEQ_POP_BACK(args)),                  \
+                     { log << BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args); })
+
 /** \brief Enable block based on logging parameters
 
     This macro is like SENF_LOG, however instead of writing a simple message, this macro allows
@@ -68,6 +72,10 @@
     SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS(BOOST_PP_SEQ_POP_BACK(args)),                      \
                      BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args))
 
+#define SENF_LOG_BLOCK_TPL(args)                                                                  \
+    SENF_LOG_BLOCK_( SENF_LOG_MERGE_PARAMETERS_TPL(BOOST_PP_SEQ_POP_BACK(args)),                  \
+                     BOOST_PP_SEQ_ELEM(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(args)),args))
+
 #define SENF_LOG_BLOCK_(parameters, block)                                                        \
     do {                                                                                          \
         if (parameters::compile_enabled && parameters::enabled()) {                               \
diff --git a/Utils/Logger/Parameters.ih b/Utils/Logger/Parameters.ih
index 55d2abaa5..882af7cdb 100644
--- a/Utils/Logger/Parameters.ih
+++ b/Utils/Logger/Parameters.ih
@@ -126,6 +126,11 @@ namespace detail {
         senf::log::detail::empty,                                                                 \
         (SENFLogDefaultStream)(SENFLogDefaultArea)(SENFLogDefaultLevel)args) >
 
+#define SENF_LOG_MERGE_PARAMETERS_TPL(args)                                                       \
+    senf::log::detail::Parameters< typename SENF_LOG_MERGE_PARAMETERS_I(                          \
+        senf::log::detail::empty,                                                                 \
+        (SENFLogDefaultStream)(SENFLogDefaultArea)(SENFLogDefaultLevel)args) >
+
 ///////////////////////////////ih.e////////////////////////////////////////
 #endif
 
-- 
GitLab