filter_logger.hpp

Go to the documentation of this file.
00001 // -*- mode: c++; indent-tabs-mode: nil; -*-
00002 //
00003 //The Biomolecule Toolkit (BTK) is a C++ library for use in the
00004 //modeling, analysis, and design of biological macromolecules.
00005 //Copyright (C) 2006, Tim Robertson <kid50@users.sourceforge.net>
00006 //
00007 //This program is free software; you can redistribute it and/or modify
00008 //it under the terms of the GNU Lesser General Public License as published
00009 //by the Free Software Foundation; either version 2.1 of the License, or (at
00010 //your option) any later version.
00011 //
00012 //This program is distributed in the hope that it will be useful,  but
00013 //WITHOUT ANY WARRANTY; without even the implied warranty of
00014 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 //Lesser General Public License for more details.
00016 //
00017 //You should have received a copy of the GNU Lesser General Public License
00018 //along with this program; if not, write to the Free Software Foundation,
00019 //Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
00020 
00021 #ifndef BTK_IO_LOGGING_FILTER_LOGGER_HPP
00022 #define BTK_IO_LOGGING_FILTER_LOGGER_HPP
00023 
00024 #include <btk/core/io/logger.hpp>
00025 
00026 namespace BTK {
00027 namespace IO {
00028 namespace LOGGING {
00029 
00033 class FilterLogger : public LoggerInterface
00034 {
00035 public:
00036   FilterLogger(LoggerLevel accept_mask,
00037                LoggerInterface & base_logger) : 
00038   _mask(accept_mask), _base_logger(base_logger) {}
00039 
00040   virtual void log(std::string const & msg,
00041                    LoggerLevel msg_level) const
00042   {
00043     if (msg_level & _mask) _base_logger.log(msg,msg_level);
00044   }
00045 
00046   virtual void error(std::string const & msg) const
00047   {
00048     _base_logger.error(msg);
00049   }
00050 
00051 private:
00052   LoggerLevel _mask;
00053   LoggerInterface & _base_logger;
00054 };
00055 
00056 } // LOGGING
00057 } // IO
00058 } // BTK
00059 
00060 #endif //BTK_IO_LOGGING_FILTER_LOGGER_HPP 

Generated on Sun Jul 15 20:46:25 2007 for BTK Core by  doxygen 1.5.1