Made on Kubuntu
00001 // Copyright (C) 2009-2010 Ferdinand Majerech 00002 // This file is part of MiniINI 00003 // For conditions of distribution and use, see copyright notice in LICENSE.txt 00004 00005 #ifndef LOG_H_INCLUDED 00006 #define LOG_H_INCLUDED 00007 #include <cstdio> 00008 00009 namespace miniini_private 00010 { 00011 00013 00014 //Ptr to the logging function 00015 extern void(* __Log)(const char * const); 00016 00017 #ifdef MINIINI_DEBUG 00018 00019 #define MINIINI_LOGBUFSIZE 1024 00020 00021 #define MINIINI_WARNING(...) \ 00022 {\ 00023 if(miniini_private::__Log)\ 00024 {\ 00025 miniini_private::__Log("MiniINI WARNING:");\ 00026 miniini_private::c __WARNING_BUF [MINIINI_LOGBUFSIZE];\ 00027 snprintf(__WARNING_BUF, MINIINI_LOGBUFSIZE, __VA_ARGS__);\ 00028 miniini_private::__Log(__WARNING_BUF);\ 00029 }\ 00030 } 00031 00032 #define MINIINI_ERROR(...) \ 00033 {\ 00034 if(miniini_private::__Log)\ 00035 {\ 00036 miniini_private::__Log("MiniINI ERROR:");\ 00037 miniini_private::c __ERROR_BUF[MINIINI_LOGBUFSIZE];\ 00038 snprintf(__ERROR_BUF, MINIINI_LOGBUFSIZE, __VA_ARGS__);\ 00039 miniini_private::__Log(__ERROR_BUF);\ 00040 }\ 00041 } 00042 00043 #define MINIINI_LOG(...) \ 00044 {\ 00045 if(__Log)\ 00046 {\ 00047 miniini_private::__Log("MiniINI:");\ 00048 miniini_private::c __LOG_BUF[MINIINI_LOGBUFSIZE];\ 00049 snprintf(__LOG_BUF, MINIINI_LOGBUFSIZE, __VA_ARGS__);\ 00050 miniini_private::__Log(__LOG_BUF);\ 00051 }\ 00052 } 00053 00054 #else 00055 00056 #define MINIINI_WARNING(...) 0 00057 00058 #define MINIINI_ERROR(...) 0 00059 00060 #define MINIINI_LOG(...) 0 00061 00062 #endif 00063 00065 00066 } 00067 00069 00072 void INILogCallback(void(* callback)(const char * const)); 00073 00074 #endif