YAPOG  0.0.1
Yet Another Pokemon Online Game
Logger.hpp
Go to the documentation of this file.
1 #ifndef YAPOG_LOGGER_HPP
2 # define YAPOG_LOGGER_HPP
3 
4 # include "YAPOG/Macros.hpp"
9 
10 namespace yap
11 {
12  class YAPOG_LIB Logger : public IWriter
13  {
15 
16  public:
17 
18  explicit Logger (OStream& oStream);
19  virtual ~Logger ();
20 
23  virtual void Write (const String& value);
24  virtual void Write (const String& name, const String& value);
25 
26  virtual void Write (const bool& value);
27  virtual void Write (const String& name, const bool& value);
28 
29  virtual void Write (const char& value);
30  virtual void Write (const String& name, const char& value);
31 
32  virtual void Write (const uchar& value);
33  virtual void Write (const String& name, const uchar& value);
34 
35  virtual void Write (const Int16& value);
36  virtual void Write (const String& name, const Int16& value);
37 
38  virtual void Write (const UInt16& value);
39  virtual void Write (const String& name, const UInt16& value);
40 
41  virtual void Write (const int& value);
42  virtual void Write (const String& name, const int& value);
43 
44  virtual void Write (const uint& value);
45  virtual void Write (const String& name, const uint& value);
46 
47  virtual void Write (const Int64& value);
48  virtual void Write (const String& name, const Int64& value);
49 
50  virtual void Write (const UInt64& value);
51  virtual void Write (const String& name, const UInt64& value);
52 
53  virtual void Write (const float& value);
54  virtual void Write (const String& name, const float& value);
55 
56  virtual void Write (const double& value);
57  virtual void Write (const String& name, const double& value);
58 
59  virtual void Write (const Vector2& value);
60  virtual void Write (const String& name, const Vector2& value);
61 
62  virtual void Write (const ID& value);
63  virtual void Write (const String& name, const ID& value);
65 
66  template <typename T>
67  Logger& Log (const T& value);
68 
69  template <typename T>
70  Logger& LogLine (const T& value);
71 
72  void AddMode (LoggerMode* mode);
73  void RemoveMode (LoggerMode* mode);
74 
75  protected:
76 
77  void Activate (bool isActive);
78 
79  private:
80 
82  bool isActive_;
83 
85  };
86 } // namespace yap
87 
89 
90 #endif // YAPOG_LOGGER_HPP