38#ifndef _LIBUTIL_ERR_H_
39#define _LIBUTIL_ERR_H_
46#include <pocketsphinx/export.h>
73#define E_SYSCALL(stmt, ...) if (stmt) E_FATAL_SYSTEM(__VA_ARGS__);
75#define FILELINE __FILE__ , __LINE__
82 err_msg(ERR_FATAL, FILELINE, __VA_ARGS__); \
89#define E_FATAL_SYSTEM(...) \
91 err_msg_system(ERR_FATAL, FILELINE, __VA_ARGS__); \
98#define E_ERROR_SYSTEM(...) err_msg_system(ERR_ERROR, FILELINE, __VA_ARGS__)
103#define E_ERROR(...) err_msg(ERR_ERROR, FILELINE, __VA_ARGS__)
108#define E_WARN(...) err_msg(ERR_WARN, FILELINE, __VA_ARGS__)
113#define E_INFO(...) err_msg(ERR_INFO, FILELINE, __VA_ARGS__)
118#define E_INFOCONT(...) err_msg(ERR_INFO, NULL, 0, __VA_ARGS__)
123#define E_INFO_NOFN(...) err_msg(ERR_INFO, NULL, 0, __VA_ARGS__)
129#define E_DEBUG(...) err_msg(ERR_DEBUG, NULL, 0, __VA_ARGS__)
144void err_msg(err_lvl_t lvl,
const char *path,
long ln,
const char *fmt, ...);
147void err_msg_system(err_lvl_t lvl,
const char *path,
long ln,
const char *fmt, ...);
150void err_logfp_cb(
void * user_data, err_lvl_t level,
const char *fmt, ...);
152typedef void (*err_cb_f)(
void* user_data, err_lvl_t,
const char *, ...);
POCKETSPHINX_EXPORT FILE * err_get_logfp(void)
POCKETSPHINX_EXPORT void err_set_callback(err_cb_f callback, void *user_data)
POCKETSPHINX_EXPORT int err_set_logfile(const char *path)
POCKETSPHINX_EXPORT const char * err_set_loglevel_str(const char *lvl)
POCKETSPHINX_EXPORT int err_set_loglevel(err_lvl_t lvl)
POCKETSPHINX_EXPORT void err_set_logfp(FILE *stream)