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"
00015
00016
00017
00018
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
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
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);
00153
00154
00155 EDTAPI void edt_set_verbosity(int verbose);
00156
00157
00158 EDTAPI int lvl_printf(int delta, char *format, ...);
00159
00160
00161
00162
00163
00164
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
00223
00224 #endif