#ifndef LOGGER_HH
#define LOGGER_HH
#include <ClanLib/network.h>
#include <iostream>
enum LogLevel {
FATAL,
ERROR,
WARN,
INFO,
DEBUG,
};
class Logger {
private:
std::ostream &stream;
enum LogLevel level;
const char *module;
public:
Logger (std::ostream &stream, enum LogLevel level, const char *module);
template <typename T> Logger& operator<< (T &val) {
stream << val;
return *this;
}
~Logger (void);
};
std::ostream& operator<< (std::ostream &s, CL_NetComputer &c);
std::ostream& operator<< (std::ostream &s, CL_NetObject_Server &obj);
std::ostream& operator<< (std::ostream &s, CL_NetObject_Client &obj);
#endif /* LOGGER_HH */