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