diff options
Diffstat (limited to 'src/kvilib/ext/KviDebugContext.cpp')
| -rw-r--r-- | src/kvilib/ext/KviDebugContext.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/kvilib/ext/KviDebugContext.cpp b/src/kvilib/ext/KviDebugContext.cpp new file mode 100644 index 000000000..bdc0f934a --- /dev/null +++ b/src/kvilib/ext/KviDebugContext.cpp @@ -0,0 +1,70 @@ +//============================================================================= +// +// File : KviDebugContext.cpp +// Creation date : Tue 13 Jul 2010 23:27:23 +// Project : KVIrc Irc client +// Author : Szymon Stefanek <pragma at kvirc dot net> +// +//============================================================================= + +#include "KviDebugContext.h" + +#include "kvi_stdarg.h" +#include "KviCString.h" +#include "kvi_debug.h" + + +static KviCString g_szIndentPrefix; + +KviDebugContext::KviDebugContext(const char * szContext,...) +{ + kvi_va_list list; + kvi_va_start(list,szContext); + + m_szContext.vsprintf(szContext,list); + + kvi_va_end(list); + + static KviCString szEnterMark = ">> %s"; + + KviCString szPrefix = g_szIndentPrefix; + szPrefix.append(szEnterMark); + + qDebug(szPrefix.ptr(),m_szContext.ptr()); + + g_szIndentPrefix.append(" "); +} + + +KviDebugContext::~KviDebugContext() +{ + KVI_ASSERT(g_szIndentPrefix.len() >= 2); + + g_szIndentPrefix.cutRight(2); + + static KviCString szExitMark = "<< %s"; + + KviCString szPrefix = g_szIndentPrefix; + szPrefix.append(szExitMark); + + qDebug(szPrefix.ptr(),m_szContext.ptr()); +} + +void KviDebugContext::trace(const char * szFmt,...) +{ + kvi_va_list list; + kvi_va_start(list,szFmt); + + KviCString szOut; + szOut.vsprintf(szFmt,list); + + kvi_va_end(list); + + static KviCString szEnterMark = "-- %s"; + + KviCString szPrefix = g_szIndentPrefix; + szPrefix.append(szEnterMark); + + qDebug(szPrefix.ptr(),szOut.ptr()); +} + |
