|
|
/*************************************************************************** define.h - Contains my debug macros ------------------- begin : January 2001 copyright : (C) 2001 by David Smith email : Dave.S@Earthcorp.com ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ //#define DEBUG_ALL #ifndef DEFINEH_H #define DEFINEH_H //variable number of arguments to this macro. will expand them into // ## args, then exit with status of 1 #include <stdio.h> #include <netinet/in.h> #include <unistd.h> #ifdef DEBUSAVE #define MESSAGEINIT(filename) messagefp=fopen(filename, "w"); #define MESSAGESAVE(format, args...) messagefp!=NULL?fprintf(messagefp, format, ##args):0; #define MESSAGESTOP() fclose(messagefp); #define DEBUGINIT(filename) debugfp=fopen(filename, "w"); //open with truncate #define DEBUGWRITE(format,args...) debugfp!=NULL?fprintf(debugfp, format, ##args):0; #define DEBUGSTOP() fclose(debugfp); #else #define MESSAGEINIT(filename) #define MESSAGESAVE(format, args...) #define MESSAGESTOP() #define DEBUGINIT(a...) #define DEBUGWRITE(format,args...) #define DEBUGSTOP() #endif #ifdef DEBUG_ALL #define MESSAGEPRINT(format, args...) fprintf(stderr, format, ## args); #else #define MESSAGEPRINT(format,args...) #endif #define LOGSTOP() {MESSAGESTOP();DEBUGSTOP();} #define DIE(format,args...) {\ MESSAGEPRINT(format, ##args);\ MESSAGESAVE(format, ##args);\ LOGSTOP();\ exit(1);\ } #define WARN(format,args...) {MESSAGEPRINT(format, ##args); MESSAGESAVE(format, ##args);} #ifdef DEBUG_ALL #define DEBUG_MODE_GEN //#define DEBUG_MODE_INDEX //#define DEBUG_MODE_EMAIL #define DEBUGPRINT #define DEBUG_MODE_WARN //#define DEBUGSAVE //extern FILE *debugfp; #endif //extern FILE *messagefp; #ifdef DEBUGPRINT #define DEBUG_PRINT(format,args...) fprintf(stderr, format, ## args); #else #define DEBUG_PRINT(a...) #endif #ifdef DEBUG_MODE_GEN #define DEBUG(format,args...) {DEBUG_PRINT(format, ##args);DEBUGWRITE(format, ##args)} #else #define DEBUG(format,args...) {} #endif #ifdef DEBUG_MODE_INDEX #define DEBUG_INDEX(format,args...) DEBUG(format, ##args); #else #define DEBUG_INDEX(format,args...) {} #endif #ifdef DEBUG_MODE_EMAIL #define DEBUG_EMAIL(format,args...) DEBUG(format, ##args); #else #define DEBUG_EMAIL(format,args...) {} #endif #ifdef DEBUG_MODE_WARN #define DEBUG_WARN(format,args...) DEBUG(format, ##args); #else #define DEBUG_WARN(format,args...) {} #endif #define RET_DERROR(res, ret_val, debug_msg, args...)\ if (res) { DEBUG_WARN(debug_msg, ## args); dbx_errno = ret_val; return -1; } #define RET_ERROR(res, ret_val)\ if (res) {dbx_errno = ret_val; return -1;} #endif //DEFINEH_H
Generated by: dave@davepc on Sun May 13 17:03:35 2001, using kdoc 2.0a42. |