reactor-c
C Runtime for Lingua Franca
Loading...
Searching...
No Matches
util.h
Go to the documentation of this file.
1
33#ifndef UTIL_H
34#define UTIL_H
35
36#include <stdarg.h> // Defines va_list
37#include <stdbool.h>
38
39// To silence warnings about a function being a candidate for format checking
40// with gcc, add an attribute.
41// The arguments are the position of the format string (starting with 1)
42// and the start of the remaining arguments, or 0 for vprintf style functions.
43#if defined(__GNUC__)
44#define ATTRIBUTE_FORMAT_PRINTF(f, s) __attribute__((format (printf, f, s)))
45#else
46#define ATTRIBUTE_FORMAT_PRINTF(f, s)
47#endif
48
52typedef struct lf_stat_ll {
53 long long average;
55 long long variance;
56 long long max;
58
66#define CONCATENATE_THREE_STRINGS(__string1, __string2, __string3) __string1 __string2 __string3
67
78#define LF_LEVEL(index) (index & 0xffffLL)
79
81#ifndef LF_MAX
82#define LF_MAX(X, Y) (((X) > (Y)) ? (X) : (Y))
83#endif
84
86#ifndef LF_MIN
87#define LF_MIN(X, Y) (((X) < (Y)) ? (X) : (Y))
88#endif
89
101#define LOG_LEVEL_ERROR 0
102#define LOG_LEVEL_WARNING 1
103#define LOG_LEVEL_INFO 2
104#define LOG_LEVEL_LOG 3
105#define LOG_LEVEL_DEBUG 4
106#define LOG_LEVEL_ALL 255
107
109#ifndef LOG_LEVEL
110#define LOG_LEVEL LOG_LEVEL_INFO
111#endif
112
119extern int _lf_my_fed_id;
120
124int lf_fed_id(void);
125
131void lf_print(const char* format, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
132
136void lf_vprint(const char* format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1, 0);
137
143void lf_print_log(const char* format, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
144
148void lf_vprint_log(const char* format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1, 0);
149
167#define LF_PRINT_LOG(format, ...) \
168 do { if(LOG_LEVEL >= LOG_LEVEL_LOG) { \
169 lf_print_log(format, ##__VA_ARGS__); \
170 } } while (0)
171
177void lf_print_debug(const char* format, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
178
183
200#define LF_PRINT_DEBUG(format, ...) \
201 do { if(LOG_LEVEL >= LOG_LEVEL_DEBUG) { \
202 lf_print_debug(format, ##__VA_ARGS__); \
203 } } while (0)
204
210void error(const char *msg);
211
216void lf_print_error(const char* format, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
217
222
227void lf_print_warning(const char* format, ...) ATTRIBUTE_FORMAT_PRINTF(1, 2);
228
233
240
244void lf_vprint_error_and_exit(const char* format, va_list args)
246
254
268
274#if defined(LF_NOASSERT)
275#define LF_ASSERT(condition, format, ...) \
276 while(0) { }
277#else
278#define LF_ASSERT(condition, format, ...) \
279 do { \
280 if (!(condition)) { \
281 lf_print_error_and_exit(format, ##__VA_ARGS__); \
282 } \
283 } while(0)
284#endif // LF_NOASSERT
285#endif /* UTIL_H */
return address
Definition hashmap.h:74
Definition util.h:52
long long variance
Definition util.h:55
long long max
Definition util.h:56
long long average
Definition util.h:53
long long standard_deviation
Definition util.h:54
void void void lf_print_log(const char *format,...) ATTRIBUTE_FORMAT_PRINTF(1
void void lf_vprint_debug(const char *format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1
void void void void void void typedef void() print_message_function_t(const char *, va_list)
#define ATTRIBUTE_FORMAT_PRINTF(f, s)
Definition util.h:46
int _lf_my_fed_id
Definition util.c:60
void error(const char *msg)
void lf_print_debug(const char *format,...) ATTRIBUTE_FORMAT_PRINTF(1
void lf_register_print_function(print_message_function_t *function, int log_level)
Definition util.c:216
void void void void void lf_print_error_and_exit(const char *format,...) ATTRIBUTE_FORMAT_PRINTF(1
void lf_print_error(const char *format,...) ATTRIBUTE_FORMAT_PRINTF(1
void void lf_vprint(const char *format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1
void void void void lf_vprint_log(const char *format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1
void void void void void void lf_vprint_error_and_exit(const char *format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1
void lf_print(const char *format,...) ATTRIBUTE_FORMAT_PRINTF(1
void void void void lf_vprint_warning(const char *format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1
void void void lf_print_warning(const char *format,...) ATTRIBUTE_FORMAT_PRINTF(1
void void lf_vprint_error(const char *format, va_list args) ATTRIBUTE_FORMAT_PRINTF(1
int lf_fed_id(void)
Definition util.c:71