MyGUI  3.2.1
MyGUI_LogSource.cpp
Go to the documentation of this file.
00001 /*
00002  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
00003  * Distributed under the MIT License
00004  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
00005  */
00006 
00007 #include "MyGUI_Precompiled.h"
00008 #include "MyGUI_LogSource.h"
00009 
00010 namespace MyGUI
00011 {
00012 
00013     LogSource::LogSource() :
00014         mFilter(nullptr)
00015     {
00016     }
00017 
00018     LogSource::~LogSource()
00019     {
00020     }
00021 
00022     void LogSource::setLogFilter(ILogFilter* _filter)
00023     {
00024         mFilter = _filter;
00025     }
00026 
00027     void LogSource::addLogListener(ILogListener* _lestener)
00028     {
00029         mListeners.push_back(_lestener);
00030     }
00031 
00032     void LogSource::open()
00033     {
00034         for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
00035             (*listener)->open();
00036     }
00037 
00038     void LogSource::close()
00039     {
00040         for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
00041             (*listener)->close();
00042     }
00043 
00044     void LogSource::flush()
00045     {
00046         for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
00047             (*listener)->flush();
00048     }
00049 
00050     void LogSource::log(const std::string& _section, LogLevel _level, const struct tm* _time, const std::string& _message, const char* _file, int _line)
00051     {
00052         if (mFilter != nullptr)
00053         {
00054             if (!mFilter->shouldLog(_section, _level, _time, _message, _file, _line))
00055                 return;
00056         }
00057 
00058         for (VectorLogListeners::iterator listener = mListeners.begin(); listener != mListeners.end(); ++listener)
00059             (*listener)->log(_section, _level, _time, _message, _file, _line);
00060     }
00061 
00062 } // namespace MyGUI