diff options
Diffstat (limited to 'raul/log.hpp')
-rw-r--r-- | raul/log.hpp | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/raul/log.hpp b/raul/log.hpp deleted file mode 100644 index 5c0908c..0000000 --- a/raul/log.hpp +++ /dev/null @@ -1,105 +0,0 @@ -/* - This file is part of Raul. - Copyright 2007-2012 David Robillard <http://drobilla.net> - - Raul is free software: you can redistribute it and/or modify it under the - terms of the GNU General Public License as published by the Free Software - Foundation, either version 3 of the License, or any later version. - - Raul 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 General Public License for more details. - - You should have received a copy of the GNU General Public License - along with Raul. If not, see <http://www.gnu.org/licenses/>. -*/ - -#ifndef RAUL_LOG_HPP -#define RAUL_LOG_HPP - -#include <boost/format.hpp> -#include <iostream> -#include <string> - -namespace Raul { - -typedef boost::basic_format<char> fmt; - -/** Buffer for (possibly coloured) log printing. - * \ingroup raul - */ -class LogBuffer : public std::streambuf -{ -public: - enum Colour { - DEFAULT = 0, - RED = 31, - GREEN, - YELLOW, - BLUE, - MAGENTA, - CYAN, - WHITE - }; - - LogBuffer(const char* prefix="", Colour colour=DEFAULT) - : _prefix(prefix) - , _out(std::cout) - , _colour(colour) - {} - - /** Change the colour of the output, e.g. out << colour(RED) << "red" << endl; */ - std::string colour(Colour c); - - /** Reset the colour of the output, e.g. out << plain() << "plain" << endl; */ - std::string plain(); - -protected: - int_type overflow(int_type c) { - if (c == '\n') - emit(); - else if (c != traits_type::eof()) - _line += c; - - return c; - } - - int sync() { - if (!_line.empty()) - emit(); - return 0; - } - -private: - void emit(); - - std::string _prefix; - std::string _line; - std::ostream& _out; - Colour _colour; -}; - -class NullBuffer : public std::streambuf -{ -protected: - int_type overflow(int_type c) { return c; } - int sync() { return 0; } -}; - -class Log : public std::ostream { -public: - explicit Log(std::streambuf* buf) : std::ostream(buf) {} - template<typename T> Log& operator()(const T& o) { - *this << o; - return *this; - } -}; - -extern Raul::Log info; -extern Raul::Log warn; -extern Raul::Log error; -extern Raul::Log debug; - -} // namespace Raul - -#endif // RAUL_LOG_HPP |