YAGE  v0.1.3
Yet Another Game Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
logmessage.h
Go to the documentation of this file.
1 
9 #ifndef YAGE_CORE_LOGMESSAGE_H
10 #define YAGE_CORE_LOGMESSAGE_H
11 
12 #include <memory>
13 #include <sstream>
14 #include <string>
15 
16 namespace yage
17 {
18 
19 class Logger;
20 
22 {
23 public:
24  ~LogMessage();
25 
26  LogMessage(const LogMessage &msg) = delete;
27 
28  LogMessage &operator=(const LogMessage &msg) = delete;
29  LogMessage &operator=(LogMessage &&msg) = delete;
30 
31  template <typename T>
32  LogMessage &operator<<(const T &value);
33 
34  LogMessage &operator<<(std::ostream &(*fn)(std::ostream &os));
35 
36  struct Meta {
37  std::string fileName;
38  int lineNo;
39  };
40 
41 private:
42  friend class Logger;
43 
44  std::ostringstream buffer_;
47 
48  LogMessage(Logger *owner, const std::string &fileName_i, int lineNum_i);
49  LogMessage(LogMessage &&msg);
50 };
51 
52 /* -----------------------------------------------------------------------------
53  * Template definitions
54  * -----------------------------------------------------------------------------
55  */
56 
57 template <typename T>
59 {
60  buffer_ << value;
61  return *this;
62 }
63 
64 } // namespace yage
65 
66 #endif
int lineNo
Definition: logmessage.h:38
Definition: logmessage.h:21
Meta meta_
Definition: logmessage.h:46
LogMessage & operator<<(const T &value)
Definition: logmessage.h:58
std::ostringstream buffer_
Definition: logmessage.h:44
std::string fileName
Definition: logmessage.h:37
LogMessage(const LogMessage &msg)=delete
Definition: logger.h:23
LogMessage & operator=(const LogMessage &msg)=delete
Definition: logmessage.h:36
Logger * owner_
Definition: logmessage.h:45