/*! * \file include/Log.h * \brief Log * * \author xythobuz */ #ifndef _LOG_H_ #define _LOG_H_ #include <string> #include <sstream> #include <vector> class Log { public: const static char endl = '\n'; ~Log(); unsigned long size(); std::string get(unsigned long i); template<typename T> Log& operator<< (const T t) { printBuffer << t; if (printBuffer.str().back() == endl) { mHistory.push_back(printBuffer.str().substr(0, printBuffer.str().length() - 1)); #ifdef DEBUG std::cout << printBuffer.str().substr(0, printBuffer.str().length() - 1) << std::endl; #endif printBuffer.str(""); } return (*this); } private: std::vector<std::string> mHistory; std::ostringstream printBuffer; }; Log &getLog(); #endif