00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #if !defined(_UNWRITTENLOGFILEMANAGER_HPP_)
00021 #define _UNWRITTENLOGFILEMANAGER_HPP_
00022
00023
00024
00025
00026 #include <Unwritten.hpp>
00027 #include <UnwrittenLogfile.hpp>
00028
00029
00030
00031
00032 #include <string>
00033 #include <map>
00034
00044 class UNWRITTEN_API UnwrittenLogfileManager
00045 {
00046 public:
00051 static UnwrittenLogfileManager * GetInstance();
00052
00058 UnwrittenLogfile * GetLogfile( const std::string & szFilename );
00059
00065 void CloseLogfile( const UnwrittenLogfile * pLogfile );
00066
00071 void CloseLogfile( const std::string & szFilename );
00072
00081 void WriteToAllFiles( UnwrittenLogfile::UnwrittenLoggingType typeOfMsg, const std::string & szText, bool bNewLine = true );
00082
00086 void FlushAllFiles();
00087
00092 void ShouldPrintMessageType( bool bShouldShow );
00093
00098 bool ShouldPrintMessageType( );
00099
00104 size_t GetManagedLogfiles();
00105
00110 void SetDefaultLoggingType( UnwrittenLogfile::UnwrittenLoggingType newDefaultType );
00111
00116 UnwrittenLogfile::UnwrittenLoggingType GetDefaultLoggingType();
00117
00118 protected:
00119
00123 UnwrittenLogfileManager();
00124
00128 virtual ~UnwrittenLogfileManager();
00129
00130 private:
00134 static UnwrittenLogfileManager * m_pInstance;
00135
00139 std::map< std::string, class UnwrittenLogfile * > m_pLogfiles;
00140
00144 UnwrittenLogfile::UnwrittenLoggingType m_eDefaultLoggingType;
00145
00149 bool m_bPrintMessageType;
00150 };
00151
00152 #endif