LRT14  1.0
 All Classes Namespaces Functions Variables Enumerations Enumerator
Loggable.h
1 #ifndef LOGGABLE_H_
2 #define LOGGABLE_H_
3 
4 #include "Logger.h"
5 #include <string>
6 #include <vector>
7 
11 class Loggable
12 {
13 public:
14  Loggable(std::string name);
15  virtual ~Loggable();
16 
20  virtual void Log() = 0;
21 
22 protected:
28  template<typename T> inline void Loggable::LogToFile(T *field, std::string name)
29  {
30  m_logger->Log(field, name, m_name);
31  }
38  template<typename T> inline void Loggable::LogToFile(T *field, int count, std::string name)
39  {
40  m_logger->Log(field, count * sizeof(*field), name, m_name);
41  }
42 
48  template<typename T> inline void Loggable::LogToFile(T value, std::string name)
49  {
50  m_logger->Log(value, name, m_name);
51  }
52 
53 private:
54  Logger* m_logger;
55  std::string m_name;
56 };
57 
58 #endif /* LOGGABLE_H_ */