edt_error.h

Go to the documentation of this file.
00001 
00008 #ifndef _edt_msg_H
00009 #define _edt_msg_H
00010 
00011 #include <stdarg.h>
00012 #include <stdio.h>
00013 
00014 #include "edtdef.h" /* this is where _NT_ would be defined */
00015 
00016 /*
00017  * define EDTAPI here instead of using EDTAPI which is in libedt.h;
00018  * this way we avoid needing to include libedt.h here. 
00019  */
00020 
00021 #ifndef EDTAPI
00022 
00023 #ifdef _NT_
00024 
00025 #define EDTAPI __declspec(dllexport)
00026 
00027 #else
00028 
00029 #define EDTAPI
00030 
00031 #endif
00032 
00033 #endif
00034 
00095 typedef int (*EdtMsgFunction)(void *target, int level, char *message);
00096 
00101 typedef struct _edt_msg_handler {
00102 
00103   EdtMsgFunction func; 
00104   int level;
00106   FILE * file; 
00109   unsigned char own_file; 
00110   void * target;
00111 
00112 } EdtMsgHandler;
00113 
00114 
00115 
00116 /* default initialization - uses stdout and stderr */
00117 
00118 EDTAPI void edt_msg_init(EdtMsgHandler *msg_p);
00119 
00120 EDTAPI void edt_msg_init_names(EdtMsgHandler *msg_p, char *file, int level);
00121 
00122 EDTAPI void edt_msg_init_files(EdtMsgHandler *msg_p, FILE *file, int level);
00123 
00124 EDTAPI void edt_msg_close(EdtMsgHandler *msg_p);
00125 
00126 EDTAPI void edt_msg_set_level(EdtMsgHandler *msg_p, int newlevel);
00127 
00128 EDTAPI int edt_msg_get_level(EdtMsgHandler *msg_p);
00129 
00130 EDTAPI void edt_msg_add_level(EdtMsgHandler *msg_p, int level);
00131 
00132 EDTAPI void edt_msg_set_function(EdtMsgHandler *msg_p, EdtMsgFunction f);
00133 
00134 EDTAPI void edt_msg_set_file(EdtMsgHandler *msg_p, FILE *f);
00135 
00136 EDTAPI void edt_msg_set_target(EdtMsgHandler *msg_p, void *t);
00137 
00138 /* Sets the file to that named in the argument f */
00139 EDTAPI void edt_msg_set_name(EdtMsgHandler *msg_p, char *f);
00140 
00141 EDTAPI int edt_msg(int level, char *format, ...);
00142 EDTAPI int edt_msg_output(EdtMsgHandler *msg_p, int level, char *format, ...);
00143 
00144 EDTAPI int edt_msg_perror(int level, char *msg);
00145 EDTAPI int edt_msg_output_perror(EdtMsgHandler *msg_p, int level, char *message);
00146 EDTAPI int edt_msg_printf_perror(int level, char *format, ...);
00147 EDTAPI int edt_msg_output_printf_perror(EdtMsgHandler *msg_p,  int level, char *format, ...);
00148 
00149 
00150 EDTAPI EdtMsgHandler *edt_msg_default_handle(void);
00151 EDTAPI int edt_msg_default_level(void);
00152 EDTAPI char *edt_msg_last_error(void); /* returns pointer to most recent 
00153                                       msg string */
00154 
00155 EDTAPI void edt_set_verbosity(int verbose); /* simple verbose level setting */
00156 
00157 
00158 EDTAPI int lvl_printf(int delta, char *format, ...);
00159 
00160 /*
00161  * predefined message flags. EDTAPP_MSG are for general purpose application
00162  * use EDTLIB_MSG are for libedt messages. PDVLIB are for libpdv messages.
00163  * Application programmers can define other flags in the 0x1000 to
00164  * 0x1000000 range
00165  */
00166 
00168 #define EDTAPP_MSG_FATAL        0x1
00169 
00171 #define EDTAPP_MSG_WARNING      0x2
00172 
00174 #define EDTAPP_MSG_INFO_1       0x4
00175 
00177 #define EDTAPP_MSG_INFO_2       0x8
00178 
00179 
00181 #define EDTLIB_MSG_FATAL        0x10
00182 
00183 #define EDTLIB_MSG_WARNING      0x20
00184 
00186 #define EDTLIB_MSG_INFO_1       0x40
00187 
00189 #define EDTLIB_MSG_INFO_2       0x80
00190 
00191 
00192 
00194 #define PDVLIB_MSG_FATAL        0x100 
00195 
00197 #define PDVLIB_MSG_WARNING      0x200
00198 
00200 #define PDVLIB_MSG_INFO_1       0x400
00201 
00203 #define PDVLIB_MSG_INFO_2       0x800
00204 
00205 #define EDT_MSG_FATAL \
00206         EDTAPP_MSG_FATAL | EDTLIB_MSG_FATAL | PDVLIB_MSG_FATAL
00207 
00208 #define EDT_MSG_WARNING \
00209         EDTAPP_MSG_WARNING | EDTLIB_MSG_WARNING | PDVLIB_MSG_WARNING
00210 
00211 #define EDT_MSG_INFO_1 \
00212         EDTAPP_MSG_INFO_1 | EDTLIB_MSG_INFO_1 | PDVLIB_MSG_INFO_1
00213 
00214 #define EDT_MSG_INFO_2 \
00215         EDTAPP_MSG_INFO_2 | EDTLIB_MSG_INFO_2 | PDVLIB_MSG_INFO_2
00216 
00217 
00218 #define edt_msg_add_default_level(addlevel) \
00219     edt_msg_set_level(edt_msg_default_handle(), edt_msg_default_level() | addlevel)
00220 
00221  /* end group msg */
00223 
00224 #endif

Generated on Mon May 12 16:38:52 2008 by  doxygen 1.5.1