📄 logmask.h
字号:
/*============================================================================. | Copyright (C) 2006 Gareth Buxton | |----------------------------------------------------------------------------| | LogPlusPlus is free software; you can redistribute it and/or | | modify it under the terms of the GNU Lesser General Public | | License as published by the Free Software Foundation; either | | version 2.1 of the License, or (at your option) any later version. | | | | LogPlusPlus is distributed in the hope that it will be useful, | | but WITHOUT ANY WARRANTY; without even the implied warranty of | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | Lesser General Public License for more details. | | | | You should have received a copy of the GNU Lesser General Public | | License along with this library; if not, write to the Free Software | | Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | '============================================================================*/#ifndef _LPP_LOGMASK_H_#define _LPP_LOGMASK_H_#include <bitset>#include <liblpp/Types.h>#include <liblpp/LogFlag.h>#include <liblpp/LogLevel.h>//=============================================================================LPP_NAMESPACE_BEGIN//=============================================================================/** * Log and masked ostreams each maintain a * LogMask object. The LogMask is a bitset that * is used to determine whether or not to output * an info message arriving at a given LogLevel. **/class LogMask: public std::bitset<LOG_MASK_SIZE>{public: LogMask(); LogMask(unsigned int ui); LogMask(const std::string&); LogMask(const LogMask& logMask); virtual ~LogMask(); inline LogMask& operator=(const LogMask& logMask) { // Safer... //std::bitset<LOG_MASK_SIZE>::operator=(logMask); //return (*this); // Faster?? return static_cast<LogMask&>(std::bitset<LOG_MASK_SIZE>::operator=(logMask)); } inline void apply(const LogMask &logMask, const ModType& modType) { switch(modType) { case REPLACE: (*this) = logMask; break; case AND: (*this) &= logMask; break; case IOR: (*this) |= logMask; break; case EOR: (*this) ^= logMask; break; case NAND: (*this) &= ~logMask; break; default: (*this) = logMask; } } inline bool operator()(const LogFlag& flag) const { return !(*this & flag).any(); } std::string toString(); static LogMask levelToMask(const LogLevel& logLevel);};//=============================================================================LPP_NAMESPACE_END//=============================================================================#endif /*_LPP_LOGMASK_H_*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -