00001 #ifndef __VERBOSELEVEL_H
00002 #define __VERBOSELEVEL_H
00003
00004 #ifndef COMPILE_TIME_MAX_VERBOSE_LEVEL
00005
00006 #define COMPILE_TIME_MAX_VERBOSE_LEVEL 10
00007 #endif
00008
00013 namespace Teem
00014 {
00017 extern unsigned verboseLevel;
00018
00021 struct ChangeVerbosity
00022 {
00024 ChangeVerbosity(unsigned v) { oldVerbosity = verboseLevel; verboseLevel = v; }
00026 ~ChangeVerbosity() { verboseLevel = oldVerbosity; }
00027
00028 unsigned oldVerbosity;
00029 };
00030 }
00031
00033 #define COUT(lvl, s) \
00034 do { if ((lvl <= COMPILE_TIME_MAX_VERBOSE_LEVEL) && (lvl <= ::Teem::verboseLevel)) { std::cout << s; } } while(false)
00035
00036 #define CERR(s) \
00037 do { if ((1 <= COMPILE_TIME_MAX_VERBOSE_LEVEL) && (1 <= ::Teem::verboseLevel)) { std::cerr << s; } } while(false)
00038
00039 #endif //__VERBOSELEVEL_H