00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __VFN_DEBUG__H__
00016 #define __VFN_DEBUG__H__
00017
00018 #ifdef __DEBUG__
00019
00021 void LibCrystDebugGlobalLevel(const int level);
00022
00026 void LibCrystDebugLocalLevel(const int level);
00027
00028 extern int gVFNDebugMessageGlobalLevel;
00029 extern int gVFNDebugMessageLevel;
00030 extern unsigned int gVFNDebugMessageIndent;
00031
00032
00033
00034
00035
00036
00037
00038 #define VFN_DEBUG_MESSAGE(message,level) \
00039 if(level >= gVFNDebugMessageLevel) \
00040 {\
00041 for(unsigned int iii=0;iii<gVFNDebugMessageIndent;iii++) cout <<" ";\
00042 cout << "%DEBUG:"<< level << " "\
00043 << message << " (at " << __FILE__ << "," << __LINE__ << ")" <<endl;\
00044 }
00045
00046 #define VFN_DEBUG_MESSAGE_SHORT(message,level) \
00047 if(level >= gVFNDebugMessageLevel) cout << message;
00048
00049 #define VFN_DEBUG_ENTRY(message,level) \
00050 if(level >= gVFNDebugMessageLevel) \
00051 {\
00052 for(unsigned int iii=0;iii<gVFNDebugMessageIndent;iii++) cout <<" ";\
00053 cout << "%DEBUG:"<< level << " <"\
00054 << message << " (at " << __FILE__ << "," << __LINE__ << ")" <<endl;\
00055 gVFNDebugMessageIndent++;\
00056 }
00057
00058 #define VFN_DEBUG_EXIT(message,level) \
00059 if(level >= gVFNDebugMessageLevel) \
00060 {\
00061 if(gVFNDebugMessageIndent>0) gVFNDebugMessageIndent--;\
00062 for(unsigned int iii=0;iii<gVFNDebugMessageIndent;iii++) cout <<" ";\
00063 cout << "%DEBUG:"<< level << " \\"\
00064 << message << "> (at " << __FILE__ << "," << __LINE__ << ")" <<endl;\
00065 }
00066
00067
00068 #define VFN_DEBUG_GLOBAL_LEVEL(level) gVFNDebugMessageGlobalLevel=level;\
00069 gVFNDebugMessageLevel=gVFNDebugMessageGlobalLevel;
00070
00071 #define VFN_DEBUG_LOCAL_LEVEL(level) if(level != -1) gVFNDebugMessageLevel=level; else gVFNDebugMessageLevel=gVFNDebugMessageGlobalLevel;
00072
00073 #else //__DEBUG__
00074
00075 #define VFN_DEBUG_MESSAGE(level,message)
00076 #define VFN_DEBUG_MESSAGE_SHORT(message,level)
00077 #define VFN_DEBUG_ENTRY(level,message)
00078 #define VFN_DEBUG_EXIT(level,message)
00079 #define VFN_DEBUG_GLOBAL_LEVEL(level)
00080 #define VFN_DEBUG_LOCAL_LEVEL(level)
00081
00082
00083 #endif //__DEBUG__
00084
00085 #endif // __VFN_DEBUG__H__