Go to the documentation of this file.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
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059 #ifndef _LIBUTIL_ERR_H_
00060 #define _LIBUTIL_ERR_H_
00061
00062 #include <stdarg.h>
00063 #include <stdio.h>
00064 #ifndef _WIN32_WCE
00065 #include <errno.h>
00066 #endif
00067
00068
00069 #include <sphinxbase_export.h>
00070
00078
00079 #ifdef __cplusplus
00080 extern "C" {
00081 #endif
00082 #if 0
00083
00084 }
00085 #endif
00086
00087 SPHINXBASE_EXPORT
00088 void _E__pr_header(char const *file, long line, char const *msg);
00089 SPHINXBASE_EXPORT
00090 void _E__pr_debug_header(char const *file, long line, int level);
00091 SPHINXBASE_EXPORT
00092 void _E__pr_info_header(char const *file, long line, char const *tag);
00093 SPHINXBASE_EXPORT
00094 void _E__pr_info_header_wofn(char const *msg);
00095 SPHINXBASE_EXPORT
00096 void _E__pr_warn(char const *fmt, ...);
00097 SPHINXBASE_EXPORT
00098 void _E__pr_info(char const *fmt, ...);
00099 SPHINXBASE_EXPORT
00100 void _E__die_error(char const *fmt, ...);
00101 SPHINXBASE_EXPORT
00102 void _E__abort_error(char const *fmt, ...);
00103 SPHINXBASE_EXPORT
00104 void _E__sys_error(char const *fmt, ...);
00105 SPHINXBASE_EXPORT
00106 void _E__fatal_sys_error(char const *fmt, ...);
00107
00114 SPHINXBASE_EXPORT
00115 FILE *err_set_logfp(FILE *logfp);
00116
00121 SPHINXBASE_EXPORT
00122 FILE * err_get_logfp(void);
00123
00124
00133 SPHINXBASE_EXPORT
00134 int err_set_logfile(char const *file);
00135
00139 #define E_FATAL _E__pr_header(__FILE__, __LINE__, "FATAL_ERROR"),_E__die_error
00140
00144 #define E_FATAL_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__fatal_sys_error
00145
00149 #define E_WARN_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error
00150
00154 #define E_ERROR_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error
00155
00159 #define E_INFO _E__pr_info_header(__FILE__, __LINE__, "INFO"),_E__pr_info
00160
00165 #define E_INFOCONT _E__pr_info
00166
00170 #define E_INFO_NOFN _E__pr_info_header_wofn("INFO"),_E__pr_info
00171
00172
00176 #define E_WARN _E__pr_header(__FILE__, __LINE__, "WARNING"),_E__pr_warn
00177
00181 #define E_ERROR _E__pr_header(__FILE__, __LINE__, "ERROR"),_E__pr_warn
00182
00190 SPHINXBASE_EXPORT
00191 int err_set_debug_level(int level);
00192
00198 SPHINXBASE_EXPORT
00199 int err_get_debug_level(void);
00200
00211 #ifdef SPHINX_DEBUG
00212 #define E_DEBUG(level,x) { \
00213 if (err_get_debug_level() >= level) { \
00214 _E__pr_header(__FILE__, __LINE__, "DEBUG"); \
00215 _E__pr_info x; \
00216 } \
00217 }
00218 #define E_DEBUGCONT(level,x) { \
00219 if (err_get_debug_level() >= level) { \
00220 _E__pr_info x; \
00221 } \
00222 }
00223 #else
00224 #define E_DEBUG(level,x)
00225 #define E_DEBUGCONT(level,x)
00226 #endif
00227
00228 #ifdef __cplusplus
00229 }
00230 #endif
00231
00232
00233 #endif
00234
00235