5 #ifndef ROFL_PIPELINE_LOG_H_
6 #define ROFL_PIPELINE_LOG_H_
18 #define ROFL_PIPELINE_LOGGING_ENABLED
22 enum rofl_pipeline_debug_levels {
23 PIPELINE_UNDEF_DEBUG_LEVEL = -1,
32 PIPELINE_MAX_DEBUG_LEVEL
38 enum rofl_pipeline_debug_class {
39 PIPELINE_UNDEF_DEBUG_CLASS = -1,
41 PIPELINE_MAX_DEBUG_CLASS
47 #define ROFL_PIPELINE_DBG_DEFAULT { PIPELINE_DBG }
50 extern enum rofl_pipeline_debug_levels rofl_pipeline_debug_level[PIPELINE_MAX_DEBUG_CLASS];
51 extern int (*rofl_pipeline_debug_print)(FILE *stream,
const char *format, ...);
54 #ifdef ROFL_PIPELINE_LOGGING_ENABLED
55 #define ROFL_PIPELINE_DEBUG_CHECK(cn, level) \
56 ( rofl_pipeline_debug_level[cn] >= level )
57 #define ROFL_PIPELINE_DEBUG_PRINT(fd, cn, level, stuff, ...) \
59 if (ROFL_PIPELINE_DEBUG_CHECK(cn, level) && *rofl_pipeline_debug_print != NULL){ \
60 rofl_pipeline_debug_print(fd,"[rofl-pipeline] "stuff, ##__VA_ARGS__);\
64 #define ROFL_PIPELINE_DEBUG_PRINT_NO_PREFIX(fd, cn, level, stuff, ...) \
66 if (ROFL_PIPELINE_DEBUG_CHECK(cn, level) && *rofl_pipeline_debug_print != NULL){ \
67 rofl_pipeline_debug_print(fd,stuff, ##__VA_ARGS__);\
72 #define ROFL_PIPELINE_WARN(stuff,...) \
73 ROFL_PIPELINE_DEBUG_PRINT(stderr, PIPELINE_DEFAULT, PIPELINE_WARN, stuff, ##__VA_ARGS__)
75 #define ROFL_PIPELINE_ERR(stuff, ...) \
76 ROFL_PIPELINE_DEBUG_PRINT(stderr, PIPELINE_DEFAULT, PIPELINE_ERROR, stuff, ##__VA_ARGS__)
78 #define ROFL_PIPELINE_INFO(stuff,...) \
79 ROFL_PIPELINE_DEBUG_PRINT(stderr, PIPELINE_DEFAULT, PIPELINE_INFO, stuff, ##__VA_ARGS__)
81 #define ROFL_PIPELINE_INFO_NO_PREFIX(stuff,...) \
82 ROFL_PIPELINE_DEBUG_PRINT_NO_PREFIX(stderr, PIPELINE_DEFAULT, PIPELINE_INFO, stuff, ##__VA_ARGS__)
84 #define ROFL_PIPELINE_DEBUG(stuff, ...) \
85 ROFL_PIPELINE_DEBUG_PRINT(stderr, PIPELINE_DEFAULT, PIPELINE_DBG, stuff, ##__VA_ARGS__)
87 #define ROFL_PIPELINE_DEBUG_NO_PREFIX(stuff, ...) \
88 ROFL_PIPELINE_DEBUG_PRINT_NO_PREFIX(stderr, PIPELINE_DEFAULT, PIPELINE_DBG, stuff, ##__VA_ARGS__)
91 #define ROFL_PIPELINE_DEBUG_CHECK(stuff, ...) do{}while(0)
92 #define ROFL_PIPELINE_DEBUG_PRINT(stuff, ...) do{}while(0)
93 #define ROFL_PIPELINE_WARN(stuff, ...) do{}while(0)
94 #define ROFL_PIPELINE_ERR(stuff, ...) do{}while(0)
95 #define ROFL_PIPELINE_INFO(stuff,...) do{}while(0)
96 #define ROFL_PIPELINE_INFO_NO_PREFIX(stuff,...) do{}while(0)
97 #define ROFL_PIPELINE_DEBUG(stuff, ...) do{}while(0)
98 #define ROFL_PIPELINE_DEBUG_NO_PREFIX(stuff, ...) do{}while(0)
99 #endif //ROFL_PIPELINE_NO_LOGGING
105 void rofl_pipeline_set_logging_function(
int (*logging_func)(FILE *stream,
const char *format, ...));
108 void rofl_pipeline_set_logging_level(
enum rofl_pipeline_debug_levels level);