Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | Related Pages

logsink.h

00001 /*
00002   Copyright (c) 2005-2008 by Jakob Schroeter <js@camaya.net>
00003   This file is part of the gloox library. http://camaya.net/gloox
00004 
00005   This software is distributed under a license. The full license
00006   agreement can be found in the file LICENSE in this distribution.
00007   This software may not be copied, modified, sold or distributed
00008   other than expressed in the named license agreement.
00009 
00010   This software is distributed without any warranty.
00011 */
00012 
00013 
00014 #ifndef LOGSINK_H__
00015 #define LOGSINK_H__
00016 
00017 #include "gloox.h"
00018 #include "loghandler.h"
00019 
00020 #include <string>
00021 // #include <fstream>
00022 
00023 namespace gloox
00024 {
00025 
00038   class GLOOX_API LogSink
00039   {
00040     public:
00044       LogSink();
00045 
00049       virtual ~LogSink();
00050 
00057       void log( LogLevel level, LogArea area, const std::string& message ) const;
00058 
00064       void dbg( LogArea area, const std::string& message ) const
00065         { log( LogLevelDebug, area, message ); }
00066 
00072       void warn( LogArea area, const std::string& message ) const
00073         { log( LogLevelWarning, area, message ); }
00074 
00080       void err( LogArea area, const std::string& message ) const
00081         { log( LogLevelError, area, message ); }
00082 
00090       void registerLogHandler( LogLevel level, int areas, LogHandler* lh );
00091 
00096       void removeLogHandler( LogHandler* lh );
00097 
00098     private:
00099       struct LogInfo
00100       {
00101         LogLevel level;
00102         int areas;
00103       };
00104 
00105       LogSink( const LogSink& /*copy*/ ) {}
00106 
00107       typedef std::map<LogHandler*, LogInfo> LogHandlerMap;
00108       LogHandlerMap m_logHandlers;
00109 
00110   };
00111 
00112 }
00113 
00114 #endif // LOGSINK_H__

Generated on Mon Nov 17 02:45:11 2008 for gloox by  doxygen 1.4.1