Lely core libraries  2.2.5
diag.h
Go to the documentation of this file.
1 
22 #ifndef LELY_UTIL_DIAG_H_
23 #define LELY_UTIL_DIAG_H_
24 
25 #include <lely/util/errnum.h>
26 
27 #include <stdarg.h>
28 #include <stddef.h>
29 
31 struct floc {
33  const char *filename;
35  int line;
37  int column;
38 };
39 
52 };
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
68 typedef void diag_handler_t(void *handle, enum diag_severity severity, int errc,
69  const char *format, va_list ap) format_printf__(4, 0);
70 
82 typedef void diag_at_handler_t(void *handle, enum diag_severity severity,
83  int errc, const struct floc *at, const char *format, va_list ap)
84  format_printf__(5, 0);
85 
97 size_t floc_lex(struct floc *at, const char *begin, const char *end);
98 
116 int snprintf_floc(char *s, size_t n, const struct floc *at);
117 
128 void diag_get_handler(diag_handler_t **phandler, void **phandle);
129 
139 void diag_set_handler(diag_handler_t *handler, void *handle);
140 
151 void diag_at_get_handler(diag_at_handler_t **phandler, void **phandle);
152 
162 void diag_at_set_handler(diag_at_handler_t *handler, void *handle);
163 
184 void diag(enum diag_severity severity, int errc, const char *format, ...)
185  format_printf__(3, 4);
186 
191 void vdiag(enum diag_severity severity, int errc, const char *format,
192  va_list ap) format_printf__(3, 0);
193 
219 void diag_at(enum diag_severity severity, int errc, const struct floc *at,
220  const char *format, ...) format_printf__(4, 5);
221 
227 void vdiag_at(enum diag_severity severity, int errc, const struct floc *at,
228  const char *format, va_list ap) format_printf__(4, 0);
229 
236 void diag_if(enum diag_severity severity, int errc, const struct floc *at,
237  const char *format, ...) format_printf__(4, 5);
238 
245 void vdiag_if(enum diag_severity severity, int errc, const struct floc *at,
246  const char *format, va_list ap) format_printf__(4, 0);
247 
253 void default_diag_handler(void *handle, enum diag_severity severity, int errc,
254  const char *format, va_list ap) format_printf__(4, 0);
255 
261 void default_diag_at_handler(void *handle, enum diag_severity severity,
262  int errc, const struct floc *at, const char *format, va_list ap)
263  format_printf__(5, 0);
264 
270 void cmd_diag_handler(void *handle, enum diag_severity severity, int errc,
271  const char *format, va_list ap) format_printf__(4, 0);
272 
277 void daemon_diag_handler(void *handle, enum diag_severity severity, int errc,
278  const char *format, va_list ap) format_printf__(4, 0);
279 
285 void daemon_diag_at_handler(void *handle, enum diag_severity severity, int errc,
286  const struct floc *at, const char *format, va_list ap)
287  format_printf__(5, 0);
288 
294 void dialog_diag_handler(void *handle, enum diag_severity severity, int errc,
295  const char *format, va_list ap) format_printf__(4, 0);
296 
302 void dialog_diag_at_handler(void *handle, enum diag_severity severity, int errc,
303  const struct floc *at, const char *format, va_list ap)
304  format_printf__(5, 0);
305 
311 void log_diag_handler(void *handle, enum diag_severity severity, int errc,
312  const char *format, va_list ap) format_printf__(4, 0);
313 
319 void log_diag_at_handler(void *handle, enum diag_severity severity, int errc,
320  const struct floc *at, const char *format, va_list ap)
321  format_printf__(5, 0);
322 
328 void syslog_diag_handler(void *handle, enum diag_severity severity, int errc,
329  const char *format, va_list ap) format_printf__(4, 0);
330 
336 void syslog_diag_at_handler(void *handle, enum diag_severity severity, int errc,
337  const struct floc *at, const char *format, va_list ap)
338  format_printf__(5, 0);
339 
367 int vsnprintf_diag(char *s, size_t n, enum diag_severity severity, int errc,
368  const char *format, va_list ap) format_printf__(5, 0);
369 
392 int vasprintf_diag(char **ps, enum diag_severity severity, int errc,
393  const char *format, va_list ap) format_printf__(4, 0);
394 
427 int vsnprintf_diag_at(char *s, size_t n, enum diag_severity severity, int errc,
428  const struct floc *at, const char *format, va_list ap)
429  format_printf__(6, 0);
430 
456 int vasprintf_diag_at(char **ps, enum diag_severity severity, int errc,
457  const struct floc *at, const char *format, va_list ap)
458  format_printf__(5, 0);
459 
464 const char *cmdname(const char *path);
465 
466 #ifdef __cplusplus
467 }
468 #endif
469 
470 #endif // !LELY_UTIL_DIAG_H_
diag_severity
diag_severity
The severity of a diagnostic message.
Definition: diag.h:41
diag_at
void diag_at(enum diag_severity severity, int errc, const struct floc *at, const char *format,...)
Emits a diagnostic message occurring at a location in a text file.
Definition: diag.c:172
default_diag_handler
void default_diag_handler(void *handle, enum diag_severity severity, int errc, const char *format, va_list ap)
The default diag() handler.
Definition: diag.c:208
daemon_diag_handler
void daemon_diag_handler(void *handle, enum diag_severity severity, int errc, const char *format, va_list ap)
The diag() handler for daemons.
Definition: diag.c:249
DIAG_INFO
@ DIAG_INFO
An informational message.
Definition: diag.h:45
diag_at_get_handler
void diag_at_get_handler(diag_at_handler_t **phandler, void **phandle)
Retrieves the handler function for diag_at().
Definition: diag.c:140
log_diag_at_handler
void log_diag_at_handler(void *handle, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
The diag_at() handler used for log-files.
Definition: diag.c:318
diag_at_set_handler
void diag_at_set_handler(diag_at_handler_t *handler, void *handle)
Sets the handler function for diag_at().
Definition: diag.c:149
log_diag_handler
void log_diag_handler(void *handle, enum diag_severity severity, int errc, const char *format, va_list ap)
The diag() handler for log files.
Definition: diag.c:311
syslog_diag_handler
void syslog_diag_handler(void *handle, enum diag_severity severity, int errc, const char *format, va_list ap)
The diag() handler used for the system logging facilities.
Definition: diag.c:353
DIAG_FATAL
@ DIAG_FATAL
A fatal error, which SHOULD result in program termination.
Definition: diag.h:51
floc
A location in a text file.
Definition: diag.h:31
diag_get_handler
void diag_get_handler(diag_handler_t **phandler, void **phandle)
Retrieves the handler function for diag().
Definition: diag.c:124
diag_set_handler
void diag_set_handler(diag_handler_t *handler, void *handle)
Sets the handler function for diag().
Definition: diag.c:133
floc_lex
size_t floc_lex(struct floc *at, const char *begin, const char *end)
Increments a file location by reading characters from a memory buffer.
Definition: diag.c:54
vasprintf_diag_at
int vasprintf_diag_at(char **ps, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
Equivalent to vsnprintf_diag_at(), except that it allocates a string large enough to hold the output,...
Definition: diag.c:478
syslog_diag_at_handler
void syslog_diag_at_handler(void *handle, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
The diag_at() handler used for the system logging facilities.
Definition: diag.c:360
DIAG_ERROR
@ DIAG_ERROR
An error.
Definition: diag.h:49
floc::line
int line
The line number (starting from 1).
Definition: diag.h:35
default_diag_at_handler
void default_diag_at_handler(void *handle, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
The default diag_at() handler.
Definition: diag.c:215
floc::column
int column
The column number (starting from 1).
Definition: diag.h:37
dialog_diag_at_handler
void dialog_diag_at_handler(void *handle, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
The diag_at() handler for dialog boxes.
DIAG_WARNING
@ DIAG_WARNING
A warning.
Definition: diag.h:47
errnum.h
vdiag
void vdiag(enum diag_severity severity, int errc, const char *format, va_list ap)
Emits a diagnostic message.
Definition: diag.c:165
vasprintf_diag
int vasprintf_diag(char **ps, enum diag_severity severity, int errc, const char *format, va_list ap)
Equivalent to vsnprintf_diag(), except that it allocates a string large enough to hold the output,...
Definition: diag.c:397
vsnprintf_diag_at
int vsnprintf_diag_at(char *s, size_t n, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
Prints a diagnostic message occurring at a location in a text file to a string buffer.
Definition: diag.c:404
diag_handler_t
void diag_handler_t(void *handle, enum diag_severity severity, int errc, const char *format, va_list ap)
The function type of a handler for diag().
Definition: diag.h:68
daemon_diag_at_handler
void daemon_diag_at_handler(void *handle, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
The diag_at() handler for daemons.
Definition: diag.c:256
DIAG_DEBUG
@ DIAG_DEBUG
A debug message.
Definition: diag.h:43
diag
void diag(enum diag_severity severity, int errc, const char *format,...)
Emits a diagnostic message.
Definition: diag.c:156
vdiag_at
void vdiag_at(enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
Emits a diagnostic message occurring at a location in a text file.
Definition: diag.c:182
cmdname
const char * cmdname(const char *path)
Extracts the command name from a path.
Definition: diag.c:507
vsnprintf_diag
int vsnprintf_diag(char *s, size_t n, enum diag_severity severity, int errc, const char *format, va_list ap)
Prints a diagnostic message to a string buffer.
Definition: diag.c:390
cmd_diag_handler
void cmd_diag_handler(void *handle, enum diag_severity severity, int errc, const char *format, va_list ap)
The diag() handler used for command-line programs.
Definition: diag.c:234
dialog_diag_handler
void dialog_diag_handler(void *handle, enum diag_severity severity, int errc, const char *format, va_list ap)
The diag() handler for dialog boxes.
snprintf_floc
int snprintf_floc(char *s, size_t n, const struct floc *at)
Prints a file location to a string buffer.
Definition: diag.c:86
diag_at_handler_t
void diag_at_handler_t(void *handle, enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
The function type of a handler for diag_at().
Definition: diag.h:82
diag_if
void diag_if(enum diag_severity severity, int errc, const struct floc *at, const char *format,...)
Emits a diagnostic message occurring at a location in a text file.
Definition: diag.c:190
floc::filename
const char * filename
The name of the file.
Definition: diag.h:33
vdiag_if
void vdiag_if(enum diag_severity severity, int errc, const struct floc *at, const char *format, va_list ap)
Emits a diagnostic message occurring at a location in a text file.
Definition: diag.c:200
stddef.h