#define debugs(SECTION, LEVEL, CONTENT) \
do { \
if ((Debug::level = (LEVEL)) <= Debug::Levels[SECTION]) { \
- Debug::getDebugOut() << CONTENT; \
- Debug::finishDebug(); \
+ std::ostream &_dbo=Debug::getDebugOut(); \
+ if (Debug::level > DBG_IMPORTANT) \
+ _dbo << SkipBuildPrefix(__FILE__)<<"("<<__LINE__<<") "<<__FUNCTION__<<": "; \
+ _dbo << CONTENT; \
+ Debug::finishDebug(); \
} \
} while (/*CONSTCOND*/ 0)
-/*
- * HERE is a macro that you can use like this:
+/** stream manipulator which does nothing.
+ * \deprecated Do not add to new code, and remove when editing old code
*
+ * Its purpose is to inactivate calls made following previous debugs()
+ * guidelines such as
* debugs(1,2, HERE << "some message");
+ *
+ * His former objective is now absorbed in the debugs call itself
*/
-#define HERE SkipBuildPrefix(__FILE__)<<"("<<__LINE__<<") "<<__FUNCTION__<<": "
+inline std::ostream&
+HERE(std::ostream& s)
+{
+ return s;
+}
/*
* MYNAME is for use at debug levels 0 and 1 where HERE is too messy.
return -1;
}
- debugs(50, 3, HERE "Opened UDS FD " << new_socket << " : family=" << AI.ai_family << ", type=" << AI.ai_socktype << ", protocol=" << AI.ai_protocol);
+ debugs(50, 3, "Opened UDS FD " << new_socket << " : family=" << AI.ai_family << ", type=" << AI.ai_socktype << ", protocol=" << AI.ai_protocol);
/* update fdstat */
debugs(50, 5, HERE << "FD " << new_socket << " is a new socket");