00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined(_UNWRITTENLOGFILE_HPP_)
00021 #define _UNWRITTENLOGFILE_HPP_
00022
00023
00024
00025
00026 #include <Unwritten.hpp>
00027
00028
00029
00030
00031 #include <string>
00032 #include <stdio.h>
00033
00043 class abstract UNWRITTEN_API UnwrittenLogfile
00044 {
00045 public:
00052 enum UnwrittenLoggingType
00053 {
00054 UnwrittenDebug,
00055 UnwrittenInformation,
00056 UnwrittenWarning,
00057 UnwrittenError
00058 };
00059
00060
00064 friend class UnwrittenLogfileManager;
00065
00075 void Write( UnwrittenLoggingType typeOfMsg, const char * szText, ... );
00076
00086 void WriteLine( UnwrittenLoggingType typeOfMsg, const char * szText, ... );
00087
00095 UnwrittenLoggingType GetLoggingType();
00096
00103 void Flush();
00104
00112 void SetLoggingType( UnwrittenLoggingType newLoggingType );
00113
00114 protected:
00122 UnwrittenLogfile( const std::string & szFilename, bool bPrintMessageType );
00123
00128 virtual ~UnwrittenLogfile();
00129
00137 virtual void Dispose();
00138
00146 void PrintMessageType( UnwrittenLoggingType typeOfMessage );
00147
00148 private:
00152 std::string m_szLogfileName;
00153
00157 FILE * m_pFileHandle;
00158
00162 bool m_bDisposed;
00163
00167 UnwrittenLoggingType m_eLoggingType;
00168
00172 bool m_bPrintMessageType;
00173
00177 bool m_bWaitForNewLine;
00178 };
00179
00180 #endif