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