Utils/Logger: BUGFIX: add SENF_LOG_TPL variants which work with templatized log param...
g0dil [Thu, 11 Oct 2007 06:33:44 +0000 (06:33 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@460 270642c3-0616-0410-b53a-bc976706d245

PPI/DebugModules.cti
PPI/DebugModules.test.cc
Utils/Logger/Log.hh
Utils/Logger/Parameters.ih

index e9c7309..1c46d1a 100644 (file)
@@ -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);
     }));
index a088012..2010198 100644 (file)
@@ -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"
index efb5143..072e893 100644 (file)
     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
     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()) {                               \
index 55d2aba..882af7c 100644 (file)
@@ -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