err.h
Go to the documentation of this file.
/* -*- c-basic-offset: 4; indent-tabs-mode: nil -*- */
/* ====================================================================
* Copyright (c) 1999-2004 Carnegie Mellon University. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* This work was supported in part by funding from the Defense Advanced
* Research Projects Agency and the National Science Foundation of the
* United States of America, and the CMU Sphinx Speech Consortium.
*
* THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND
* ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY
* NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* ====================================================================
*
*/
#ifndef _LIBUTIL_ERR_H_
#define _LIBUTIL_ERR_H_
#include <stdarg.h>
#include <stdio.h>
#ifndef _WIN32_WCE
#include <errno.h>
#endif
/* Win32/WinCE DLL gunk */
#include <sphinxbase/sphinxbase_export.h>
#ifdef __cplusplus
extern "C" {
#endif
#if 0
/* Fool Emacs. */
}
#endif
SPHINXBASE_EXPORT
void _E__pr_header(char const *file, long line, char const *msg);
SPHINXBASE_EXPORT
void _E__pr_debug_header(char const *file, long line, int level);
SPHINXBASE_EXPORT
void _E__pr_info_header(char const *file, long line, char const *tag);
SPHINXBASE_EXPORT
void _E__pr_info_header_wofn(char const *msg);
SPHINXBASE_EXPORT
void _E__pr_warn(char const *fmt, ...);
SPHINXBASE_EXPORT
void _E__pr_info(char const *fmt, ...);
SPHINXBASE_EXPORT
void _E__die_error(char const *fmt, ...);
SPHINXBASE_EXPORT
void _E__abort_error(char const *fmt, ...);
SPHINXBASE_EXPORT
void _E__sys_error(char const *fmt, ...);
SPHINXBASE_EXPORT
void _E__fatal_sys_error(char const *fmt, ...);
SPHINXBASE_EXPORT
FILE *err_set_logfp(FILE *logfp);
SPHINXBASE_EXPORT
FILE * err_get_logfp(void);
SPHINXBASE_EXPORT
int err_set_logfile(char const *file);
#define E_FATAL _E__pr_header(__FILE__, __LINE__, "FATAL_ERROR"),_E__die_error
#define E_FATAL_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__fatal_sys_error
#define E_WARN_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error
#define E_ERROR_SYSTEM _E__pr_header(__FILE__, __LINE__, "SYSTEM_ERROR"),_E__sys_error
#define E_INFO _E__pr_info_header(__FILE__, __LINE__, "INFO"),_E__pr_info
#define E_INFOCONT _E__pr_info
#define E_INFO_NOFN _E__pr_info_header_wofn("INFO"),_E__pr_info
#define E_WARN _E__pr_header(__FILE__, __LINE__, "WARNING"),_E__pr_warn
#define E_ERROR _E__pr_header(__FILE__, __LINE__, "ERROR"),_E__pr_warn
SPHINXBASE_EXPORT
int err_set_debug_level(int level);
SPHINXBASE_EXPORT
int err_get_debug_level(void);
#ifdef SPHINX_DEBUG
#define E_DEBUG(level,x) { \
if (err_get_debug_level() >= level) { \
_E__pr_header(__FILE__, __LINE__, "DEBUG"); \
_E__pr_info x; \
} \
}
#define E_DEBUGCONT(level,x) { \
if (err_get_debug_level() >= level) { \
_E__pr_info x; \
} \
}
#else
#define E_DEBUG(level,x)
#define E_DEBUGCONT(level,x)
#endif
#ifdef __cplusplus
}
#endif
#endif /* !_ERR_H */
err_get_logfp
SPHINXBASE_EXPORT FILE * err_get_logfp(void)
Get the current logging filehandle.
Definition: err.c:157
err_set_debug_level
SPHINXBASE_EXPORT int err_set_debug_level(int level)
Set debugging verbosity level.
Definition: err.c:68
err_get_debug_level
SPHINXBASE_EXPORT int err_get_debug_level(void)
Get debugging verbosity level.
Definition: err.c:74
err_set_logfile
SPHINXBASE_EXPORT int err_set_logfile(char const *file)
Append all log messages to a given file.
Definition: err.c:190
err_set_logfp
SPHINXBASE_EXPORT FILE * err_set_logfp(FILE *logfp)
Direct all logging to a given filehandle.
Definition: err.c:179