aboutsummaryrefslogtreecommitdiffstats
path: root/yage/core/logsink.cpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-11-12 22:30:20 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-11-12 22:30:20 +0000
commite68759a4101567a27e306eae0a907baa759ae80c (patch)
treec90733351cb7a8a02f91725118593c1c4f19c563 /yage/core/logsink.cpp
parent5fb7c972d44a3ce0a067101885d2e0c1966e7c89 (diff)
downloadYAGE-e68759a4101567a27e306eae0a907baa759ae80c.tar.gz
YAGE-e68759a4101567a27e306eae0a907baa759ae80c.zip
Designing simple preview game
Diffstat (limited to 'yage/core/logsink.cpp')
-rw-r--r--yage/core/logsink.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/yage/core/logsink.cpp b/yage/core/logsink.cpp
index 1cc8b139..987a260d 100644
--- a/yage/core/logsink.cpp
+++ b/yage/core/logsink.cpp
@@ -8,12 +8,43 @@
#include "logsink.h"
+#include <iostream>
+
namespace yage
{
+LogSink::LogSink(const LogSink &sink) : wrapper_(sink.wrapper_->clone()) {}
+
+LogSink::LogSink(LogSink &&sink) : wrapper_(std::move(sink.wrapper_)) {}
+
+LogSink &LogSink::operator=(const LogSink &sink)
+{
+ wrapper_.reset(sink.wrapper_->clone());
+ return *this;
+}
+
+LogSink &LogSink::operator=(LogSink &&sink)
+{
+ wrapper_ = std::move(sink.wrapper_);
+ return *this;
+}
+
+bool LogSink::operator==(const LogSink &sink)
+{
+ return (wrapper_.get() == sink.wrapper_.get());
+}
+
void LogSink::write(const LogMessage::Meta &meta, const std::string &msg)
{
wrapper_->write(meta, msg);
}
+LogSink makeConsoleSink()
+{
+ return [](const LogMessage::Meta &meta, const std::string &msg) {
+ std::cout << msg << " (" << meta.fileName << ":" << meta.lineNo
+ << ")\n";
+ };
+}
+
} // namespace yage