Mercurial > projects > ldc
diff gen/logger.h @ 1:c53b6e3fe49a trunk
[svn r5] Initial commit. Most things are very rough.
author | lindquist |
---|---|
date | Sat, 01 Sep 2007 21:43:27 +0200 |
parents | |
children | 27b2f40bdb58 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gen/logger.h Sat Sep 01 21:43:27 2007 +0200 @@ -0,0 +1,48 @@ +#ifndef _llvmd_gen_logger_h_ +#define _llvmd_gen_logger_h_ + +#include <iostream> + +namespace Logger +{ + #ifndef LLVMD_NO_LOGGER + void indent(); + void undent(); + std::ostream& cout(); + void println(const char* fmt,...); + void print(const char* fmt,...); + #else + inline void indent() {} + inline void undent() {} + inline std::ostream& cout() { return std::cout; } + inline void println(const char* fmt, ...) {} + inline void print(const char* fmt, ...) {} + #endif + + struct LoggerScope + { + LoggerScope() + { + #ifndef LLVMD_NO_LOGGER + //std::cout << "-->indented\n"; + Logger::indent(); + #endif + + } + ~LoggerScope() + { + #ifndef LLVMD_NO_LOGGER + //std::cout << "<--undented\n"; + Logger::undent(); + #endif + } + }; +} + +#ifndef LLVMD_NO_LOGGER +#define LOG_SCOPE Logger::LoggerScope _logscope; +#else +#define LOG_SCOPE +#endif + +#endif