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);
}));
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"
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()) { \
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