00001 #ifndef _ots_Utilities_Macro_h_
00002 #define _ots_Utilities_Macro_h_
00003
00004
00005 #include <string.h>
00006
00007
00008 #define __SHORTFILE__ (strstr(&__FILE__[0], "/srcs/") ? strstr(&__FILE__[0], "/srcs/") + 6 : __FILE__)
00009
00010
00011 #define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
00012
00013
00014 #define __COUT_HDR_FL__ __SHORTFILE__ << " [" << __LINE__ << "]\t"
00015 #define __COUT_HDR_FP__ __SHORTFILE__ << " : " << __PRETTY_FUNCTION__ << "\t"
00016 #define __COUT_HDR_PL__ __PRETTY_FUNCTION__ << " [" << __LINE__ << "]\t"
00017 #define __COUT_HDR_F__ __SHORTFILE__ << "\t"
00018 #define __COUT_HDR_L__ __LINE__ << "\t"
00019 #define __COUT_HDR_P__ __PRETTY_FUNCTION__ << "\t"
00020 #define __COUT_HDR__ __COUT_HDR_PL__
00021
00022
00026
00027 #define __MF_SUBJECT__ "ots" //default subject.. others can #undef and re-#define
00028
00029
00030 #define Q(X) #X
00031 #define QUOTE(X) Q(X)
00032
00033 #define __MF_TYPE__(X) std::cout << QUOTE(X) << ":" << __MF_SUBJECT__ << ":"
00034
00035
00036
00037 #define __MF_HDR__ __COUT_HDR_FL__
00038 #define __MOUT_ERR__ __MF_TYPE__(LogError) << __MF_HDR__
00039 #define __MOUT_WARN__ __MF_TYPE__(LogWarning) << __MF_HDR__
00040 #define __MOUT_INFO__ __MF_TYPE__(LogInfo) << __MF_HDR__
00041 #define __MOUT__ __MF_TYPE__(LogDebug) << __MF_HDR__
00042
00043 #define __SS__ std::stringstream ss; ss << __MF_HDR__
00044
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 #ifdef XDAQ_NOCONST
00056 #define XDAQ_CONST_CALL
00057 #else
00058 #define XDAQ_CONST_CALL const
00059 #endif
00060
00061
00062
00063
00064
00065 #endif