00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00039 #ifndef __NUSMV_CORE_UTILS_LOGGER_H__
00040 #define __NUSMV_CORE_UTILS_LOGGER_H__
00041
00042 #include "nusmv/core/cinit/NuSMVEnv.h"
00043 #include "nusmv/core/utils/utils.h"
00044 #include "nusmv/core/node/printers/MasterPrinter.h"
00045 #include "nusmv/core/utils/OStream.h"
00046 #include "nusmv/core/opt/OptsHandler.h"
00047
00054 typedef struct Logger_TAG* Logger_ptr;
00055
00062 #define LOGGER(self) \
00063 ((Logger_ptr) self)
00064
00070 #define LOGGER_CHECK_INSTANCE(self) \
00071 (nusmv_assert(LOGGER(self) != LOGGER(NULL)))
00072
00078 #define LOGGER_ERROR_VL 0
00079
00085 #define LOGGER_WARN_VL 1
00086
00092 #define LOGGER_INFO_VL 2
00093
00099 #define LOGGER_DEBUG_VL 3
00100
00106 #define LOGGER_TRACE_VL 100
00107
00108
00111
00112
00113
00114
00120 void Logger_init(NuSMVEnv_ptr env);
00121
00127 void Logger_quit(NuSMVEnv_ptr env);
00128
00137 Logger_ptr Logger_create(FILE* stream);
00138
00147 void Logger_destroy(Logger_ptr self);
00148
00157 void Logger_log(const Logger_ptr self,
00158 const char* format, ...);
00159
00169 void Logger_vlog(const Logger_ptr self,
00170 OptsHandler_ptr opts,
00171 const int verbose_level,
00172 const char* format, ...);
00173
00179 #define Logger_vlog_error(self, opts, format, ...) \
00180 Logger_vlog(self, opts, LOGGER_ERROR_VL, format, __VA_ARGS__)
00181
00187 #define Logger_vlog_warn(self, opts, format, ...) \
00188 Logger_vlog(self, opts, LOGGER_WARN_VL, format, __VA_ARGS__)
00189
00195 #define Logger_vlog_info(self, opts, format, ...) \
00196 Logger_vlog(self, opts, LOGGER_INFO_VL, format, __VA_ARGS__)
00197
00203 #define Logger_vlog_debug(self, opts, format, ...) \
00204 Logger_vlog(self, opts, LOGGER_DEBUG_VL, format, __VA_ARGS__)
00205
00211 #define Logger_vlog_trace(self, opts, format, ...) \
00212 Logger_vlog(self, opts, LOGGER_TRACE_VL, format, __VA_ARGS__)
00213
00223 void Logger_nlog(const Logger_ptr self,
00224 const MasterPrinter_ptr node_printer,
00225 const char* format, ...);
00226
00237 void Logger_vnlog(const Logger_ptr self,
00238 const MasterPrinter_ptr node_printer,
00239 OptsHandler_ptr opts,
00240 const int verbose_level,
00241 const char* format, ...);
00242
00248 #define Logger_vnlog_error(self, wffprint, opts, format, ...) \
00249 Logger_vlog(self, opts, LOGGER_ERROR_VL, "%s: ", __func__); \
00250 Logger_vnlog(self, wffprint, opts, LOGGER_ERROR_VL, format, __VA_ARGS__)
00251
00257 #define Logger_vnlog_warn(self, wffprint, opts, format, ...) \
00258 Logger_vlog(self, opts, LOGGER_WARN_VL, "%s: ", __func__); \
00259 Logger_vnlog(self, wffprint, opts, LOGGER_WARN_VL, format, __VA_ARGS__)
00260
00266 #define Logger_vnlog_info(self, wffprint, opts, format, ...) \
00267 Logger_vlog(self, opts, LOGGER_INFO_VL, "%s: ", __func__); \
00268 Logger_vnlog(self, wffprint, opts, LOGGER_INFO_VL, format, __VA_ARGS__)
00269
00275 #define Logger_vnlog_debug(self, wffprint, opts, format, ...) \
00276 Logger_vlog(self, opts, LOGGER_DEBUG_VL, "%s: ", __func__); \
00277 Logger_vnlog(self, wffprint, opts, LOGGER_DEBUG_VL, format, __VA_ARGS__)
00278
00284 #define Logger_vnlog_trace(self, wffprint, opts, format, ...) \
00285 Logger_vlog(self, opts, LOGGER_TRACE_VL, "%s: ", __func__); \
00286 Logger_vnlog(self, wffprint, opts, LOGGER_TRACE_VL, format, __VA_ARGS__)
00287
00296 FILE* Logger_get_stream(const Logger_ptr self);
00297
00305 OStream_ptr Logger_get_ostream(const Logger_ptr self);
00306
00313 void Logger_inc_indent_size(Logger_ptr self);
00314
00321 void Logger_dec_indent_size(Logger_ptr self);
00322
00329 int Logger_get_indent_size(const Logger_ptr self);
00330
00337 void Logger_reset_indent_size(Logger_ptr self);
00338
00345 void Logger_set_indent_size(Logger_ptr self, int n);
00346
00351 #endif