00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include <lDefs.h>
00017
00018
00019 #include <lTrace.h>
00020
00021 #ifdef POLITE_TRACE
00022
00023 class LogWriter POLiTeLogWriter;
00024
00025 int LogWriter::count = 0;
00026 FILE *LogWriter::stdlog = NULL;
00027
00028 LogWriter::LogWriter()
00029
00030 {
00031 TraceMask = POLITE_TRACE_MASK;
00032 TraceMaskTTY = POLITE_TRACE_MASK_TTY;
00033 if (stdlog == NULL) {
00034 if ((stdlog = fopen(POLITE_TRACE_FILE, "w")) != NULL)
00035 {
00036 logmsg("POLiTe Tracing enabled");
00037 return;
00038 };
00039 }
00040 count++;
00041 };
00042
00043 LogWriter::~LogWriter()
00044
00045 {
00046 if (!--count)
00047 {
00048 logmsg("POLiTe Tracing disabled");
00049 if (stdlog)
00050 (void)fclose(stdlog);
00051 stdlog = NULL;
00052 };
00053 };
00054
00055 int logmsg(const int mask, const char *message)
00056
00057 {
00058 if (mask & POLiTeLogWriter.TraceMaskTTY)
00059 fprintf(stdout, "log message: %s\n", message);
00060 if ((mask & POLiTeLogWriter.TraceMask) && (LogWriter::stdlog != NULL))
00061 return(fprintf(LogWriter::stdlog, "log message: %s\n", message));
00062 else
00063 return(0);
00064 };
00065
00066 int logmsg(const char *message)
00067
00068 {
00069 return logmsg(TL_INFO,message);
00070 };
00071
00072 int logmsg(const int mask, const char *format, const char *message)
00073
00074 {
00075 if (mask & POLiTeLogWriter.TraceMaskTTY) {
00076 fprintf(stdout, "log message: ", message);
00077 fprintf(stdout, format, message);
00078 fprintf(stdout, "\n");
00079 };
00080 if ((mask & POLiTeLogWriter.TraceMask) && (LogWriter::stdlog != NULL))
00081 return(
00082 fprintf(LogWriter::stdlog, "log message: ", message)
00083 + fprintf(LogWriter::stdlog, format, message)
00084 + fprintf(LogWriter::stdlog, "\n")
00085 );
00086 else
00087 return(0);
00088 };
00089
00090 int logmsg(const char *format, const char *message)
00091
00092 {
00093 return logmsg(TL_INFO,format,message);
00094 };
00095
00096 int logmsg(const int mask, const char *format, const long int message)
00097
00098 {
00099 if (mask & POLiTeLogWriter.TraceMaskTTY) {
00100 fprintf(stdout, "log message: ");
00101 fprintf(stdout, format, message);
00102 fprintf(stdout, "\n");
00103 };
00104 if ((mask & POLiTeLogWriter.TraceMask) && (LogWriter::stdlog != NULL))
00105 return(
00106 fprintf(LogWriter::stdlog, "log message: ")
00107 + fprintf(LogWriter::stdlog, format, message)
00108 + fprintf(LogWriter::stdlog, "\n")
00109 );
00110 else
00111 return(0);
00112 };
00113
00114 int logmsg(const char *format, const long int message)
00115
00116 {
00117 return logmsg(TL_INFO,format,message);
00118 };
00119
00120 char *msg(const enum UpdatingStrategy anUpdatingStrategy)
00121
00122 {
00123 switch (anUpdatingStrategy) {
00124 case US_OnDemand: return("US_OnDemand");
00125 case US_Immediately: return("US_Immediately");
00126 default: return("unknown");
00127 };
00128 };
00129
00130 char *msg(const enum LockingStrategy aLockingStrategy)
00131
00132 {
00133 switch (aLockingStrategy) {
00134 case LS_None: return ("LS_None");
00135 case LS_Shared: return ("LS_Shared");
00136 case LS_Exclusive: return ("LS_Exclusive");
00137 default: return ("LS_unknown");
00138 };
00139 };
00140
00141 char *msg(const enum WaitingStrategy aWaitingStrategy)
00142
00143 {
00144 switch (aWaitingStrategy) {
00145 case WS_Nowait: return("WS_Nowait");
00146 case WS_Wait: return("WS_Wait");
00147 default: return("WS_unknown");
00148 };
00149 }
00150
00151 char *msg(const enum ReadingStrategy anUpdatingStrategy)
00152
00153 {
00154 switch (anUpdatingStrategy) {
00155 case RS_Cache: return("RS_Cache");
00156 case RS_Database: return("RS_Database");
00157 case RS_Timestamp: return("RS_Timestamp");
00158 default: return("unknown");
00159 };
00160 };
00161
00162 #endif //POLITE_TRACE