src/proto2/Logger.hh
changeset 185 25becd2cb026
parent 184 561892e2a30e
child 186 0738f2949a2b
equal deleted inserted replaced
184:561892e2a30e 185:25becd2cb026
     1 #ifndef LOGGER_HH
       
     2 #define LOGGER_HH
       
     3 
       
     4 #include <ClanLib/network.h>
       
     5 
       
     6 #include <iostream>
       
     7 
       
     8 enum LogLevel {
       
     9     FATAL,
       
    10     ERROR,
       
    11     WARN,
       
    12     INFO,
       
    13     DEBUG,
       
    14 };
       
    15 
       
    16 class Logger {
       
    17     private:
       
    18         std::ostream &stream;
       
    19         enum LogLevel level;
       
    20         const char *module;
       
    21 
       
    22     public:
       
    23         Logger (std::ostream &stream, enum LogLevel level, const char *module);
       
    24 
       
    25         template <typename T> Logger& operator<< (T &val) {
       
    26             stream << val;
       
    27 
       
    28             return *this;
       
    29         }
       
    30 
       
    31 
       
    32         ~Logger (void);
       
    33 };
       
    34 
       
    35 std::ostream& operator<< (std::ostream &s, CL_NetComputer &c);
       
    36 std::ostream& operator<< (std::ostream &s, CL_NetObject_Server &obj);
       
    37 std::ostream& operator<< (std::ostream &s, CL_NetObject_Client &obj);
       
    38 
       
    39 #endif /* LOGGER_HH */