Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

lTrace.cpp

Go to the documentation of this file.
00001 /******************************************************************************/
00002 /*                                                                            */
00003 /* POLiTe - Persistent Object Library Test                                    */
00004 /*                                        Ph.D. Thesis by Mgr. Michal Kopecky */
00005 /*                                                                            */
00006 /* Charles University Prague                                                  */
00007 /*                                                                            */
00008 /******************************************************************************/
00009 /*                                                                            */
00010 /* File name: ...                                                             */
00011 /* Module: ......                                                             */
00012 /*                                                                            */
00013 /******************************************************************************/
00014 
00015 // Common POLiTe Header(s)
00016 #include <lDefs.h>
00017 
00018 // INCLUDE OWN HEADER
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 // opens standard log file
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 // closes standard log file
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 // writes to a standard log file
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 // writes to a standard log file
00068 {
00069         return logmsg(TL_INFO,message);
00070  };
00071 
00072 int logmsg(const int mask, const char *format, const char *message)
00073 // writes to a standard log file
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 // writes to a standard log file
00092 {
00093         return logmsg(TL_INFO,format,message);
00094 };
00095 
00096 int logmsg(const int mask, const char *format, const long int message)
00097 // writes to a standard log file
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 // writes to a standard log file
00116 {
00117         return logmsg(TL_INFO,format,message);
00118 };
00119 
00120 char *msg(const enum UpdatingStrategy anUpdatingStrategy)
00121 // convertst enum UpdatingStrategy to a string
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 // convertst enum LockingStrategy to a string
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 // convertst enum WaitingStrategy to a string
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 // convertst enum ReadingStrategy to a string
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

Generated on Sun Jul 14 20:51:15 2002 for POLiTe by doxygen1.2.16