00001 00008 #ifndef _ERROR_H 00009 #define _ERROR_H 00010 00011 #include <stdlib.h> 00012 #include <stdio.h> 00013 #include <stdarg.h> 00014 00015 #include "timestamp.h" 00016 00017 typedef int (*PRINTFUNCTION)(char *,...); 00018 00019 typedef enum {FS_IN = 0, FS_STD = 1, FS_ERR = 2} FILESTREAM; 00020 00021 #ifdef __cplusplus 00022 extern "C" { 00023 #endif 00024 00025 PRINTFUNCTION output_set_stdout(PRINTFUNCTION call); 00026 PRINTFUNCTION output_set_stderr(PRINTFUNCTION call); 00027 00028 int output_init(int argc, char *argv[]); 00029 void output_cleanup(void); 00030 00031 void output_both_stdout(); 00032 FILE *output_set_stream(FILESTREAM fs, FILE *newfp); 00033 FILE* output_redirect(char *name, char *path); 00034 FILE* output_redirect_stream(char *name, FILE *fp); 00035 int output_fatal(char *format,...); 00036 int output_error(char *format,...); 00037 int output_error_raw(char *format,...); 00038 int output_warning(char *format,...); 00039 int output_debug(char *format,...); 00040 int output_verbose(char *format,...); 00041 int output_message(char *format,...); 00042 int output_raw(char *format,...); 00043 int output_test(char *format,...); 00044 int output_progress(void); 00045 int output_profile(char *format,...); 00046 00047 int output_notify_error(void (*)(void)); 00048 00049 void output_set_time_context(TIMESTAMP ts); 00050 char *output_get_time_context(void); 00051 00052 int output_xsd(char *spec); 00053 int output_xsl(char *fname, int n_mods, char *p_mods[]); 00054 00055 #ifdef __cplusplus 00056 } 00057 #endif 00058 00059 #endif 00060