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