00001
00002
00003
00004
00005 #ifndef LOG_H_INCLUDED
00006 #define LOG_H_INCLUDED
00007 #include <cstdio>
00008
00009 namespace miniini_private
00010 {
00011
00013
00014
00015 extern void(* __Log)(const char * const);
00016
00017 #ifdef INI_DEBUG
00018
00019 #define LOGBUFSIZE 1024
00020
00021 #define WARNING(...) \
00022 {\
00023 if(__Log)\
00024 {\
00025 __Log("MiniINI WARNING:");\
00026 c __WARNING_BUF [LOGBUFSIZE];\
00027 snprintf(__WARNING_BUF, LOGBUFSIZE, __VA_ARGS__);\
00028 __Log(__WARNING_BUF);\
00029 }\
00030 }
00031
00032 #define ERROR(...) \
00033 {\
00034 if(__Log)\
00035 {\
00036 __Log("MiniINI ERROR:");\
00037 c __ERROR_BUF[LOGBUFSIZE];\
00038 snprintf(__ERROR_BUF, LOGBUFSIZE, __VA_ARGS__);\
00039 __Log(__ERROR_BUF);\
00040 }\
00041 }
00042
00043 #define LOG(...) \
00044 {\
00045 if(__Log)\
00046 {\
00047 __Log("MiniINI:");\
00048 c __LOG_BUF[LOGBUFSIZE];\
00049 snprintf(__LOG_BUF, LOGBUFSIZE, __VA_ARGS__);\
00050 __Log(__LOG_BUF);\
00051 }\
00052 }
00053
00054 #else
00055
00056 #define WARNING(...) 0
00057
00058 #define ERROR(...) 0
00059
00060 #define LOG(...) 0
00061
00062 #endif
00063
00065
00066 }
00067
00069
00072 void INILogCallback(void(* callback)(const char * const));
00073
00074 #endif