OtLogger.h

Go to the documentation of this file.
00001 /* ========================================================================
00002 * Copyright (c) 2006,
00003 * Institute for Computer Graphics and Vision
00004 * Graz University of Technology
00005 * All rights reserved.
00006 *
00007 * Redistribution and use in source and binary forms, with or without
00008 * modification, are permitted provided that the following conditions are
00009 * met:
00010 *
00011 * Redistributions of source code must retain the above copyright notice,
00012 * this list of conditions and the following disclaimer.
00013 *
00014 * Redistributions in binary form must reproduce the above copyright
00015 * notice, this list of conditions and the following disclaimer in the
00016 * documentation and/or other materials provided with the distribution.
00017 *
00018 * Neither the name of the Graz University of Technology nor the names of
00019 * its contributors may be used to endorse or promote products derived from
00020 * this software without specific prior written permission.
00021 *
00022 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
00023 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
00024 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
00025 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
00026 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00027 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00028 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
00029 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
00030 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
00031 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
00032 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033 * ========================================================================
00034 * PROJECT: OpenTracker
00035 * ======================================================================== */
00042 /* ======================================================================= */
00043 
00044 
00045 #ifndef _OTLOGGER_H_
00046 #define _OTLOGGER_H_
00047 
00048 #include <assert.h>
00049 
00050 #include "../OpenTracker.h"
00051 
00052 namespace ot {
00053 
00054 /*
00055  * Usage:  
00056  *              - logPrintE("File Not Found");
00057  *              - logPrintE(LOG_ERROR_FILE_NOT_FOUND);
00058  *              - logPrintE("File %s Not Found", filename);
00059  *
00060 */
00061 void OPENTRACKER_API logPrint(const char *message, ...);
00062 void OPENTRACKER_API logPrintD(const char *debugMessage, ...);
00063 void OPENTRACKER_API logPrintS(const char *setupMessage, ...);
00064 void OPENTRACKER_API logPrintI(const char *infoMessage, ...);
00065 void OPENTRACKER_API logPrintW(const char *warningMessage, ...);
00066 void OPENTRACKER_API logPrintE(const char *errorMessage, ...);
00067 void OPENTRACKER_API logPrintEAbort(const char *errorMessage, ...);
00068 
00069 /*
00070  * Enumerations
00071  */
00072 enum LOG_MODE
00073 {
00074         MODE_OFF = 0,
00075         MODE_FILE = 1,
00076         MODE_CONSOLE = 2,
00077         MODE_CALLBACK = 3
00078 };
00079 
00080 class OPENTRACKER_API OtLogger
00081 {
00082 public:
00083 
00085         static OtLogger *getInstance();
00086 
00088         virtual ~OtLogger();
00089 
00090         virtual void setLogMode(LOG_MODE newMode);
00091 
00092         virtual void printMessage(const char *message);
00093         virtual void printDebug(const char *debugMessage);
00094         virtual void printSetup(const char *setupMessage);
00095         virtual void printInfo(const char *infoMessage);
00096         virtual void printWarning(const char *warningMessage);
00097         virtual void printErrorAndContinue(const char *errorMessage);
00098         virtual void printErrorAndAbort(const char *errorMessage);
00099 
00100         virtual void writeToFile(const char * message);
00101         virtual void writeToFileEx(const char * format, ...);
00102 
00103         virtual char * getLogFileName();
00104         virtual void setLogFileName(char * filename);
00105 
00106 protected:
00107         LOG_MODE logMode;
00108 
00109 
00111         static OtLogger *instance;
00112 
00113         char * logFileName;
00114 
00116         OtLogger();
00117 };
00118 
00119 } // namespace ot {
00120 
00121 #endif //_OTLOGGER_H_

Generated on Wed Feb 28 15:18:48 2007 for NaviTrack by  doxygen 1.4.6