summaryrefslogtreecommitdiff
path: root/libcult/cult/trace/stream.ixx
diff options
context:
space:
mode:
authorJörg Frings-Fürst <jff@merkur>2014-05-18 16:08:14 +0200
committerJörg Frings-Fürst <jff@merkur>2014-05-18 16:08:14 +0200
commita15cf65c44d5c224169c32ef5495b68c758134b7 (patch)
tree3419f58fc8e1b315ba8171910ee044c5d467c162 /libcult/cult/trace/stream.ixx
Imported Upstream version 3.3.0.2upstream/3.3.0.2
Diffstat (limited to 'libcult/cult/trace/stream.ixx')
-rw-r--r--libcult/cult/trace/stream.ixx76
1 files changed, 76 insertions, 0 deletions
diff --git a/libcult/cult/trace/stream.ixx b/libcult/cult/trace/stream.ixx
new file mode 100644
index 0000000..718383c
--- /dev/null
+++ b/libcult/cult/trace/stream.ixx
@@ -0,0 +1,76 @@
+// file : cult/trace/stream.ixx
+// author : Boris Kolpackov <boris@kolpackov.net>
+// copyright : Copyright (c) 2005-2010 Boris Kolpackov
+// license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+namespace Cult
+{
+ namespace Trace
+ {
+ // Stream::Mediator
+ //
+ inline
+ Stream::Mediator::
+ Mediator (Stream& s)
+ : s_ (s), r_ (s.id (), s.level ())
+ {
+ }
+
+ inline
+ Stream::Mediator::
+ ~Mediator ()
+ {
+ s_ << r_;
+ }
+
+ // Stream
+ //
+ inline
+ Stream::
+ Stream (Char const* id, Int level, Log& log)
+ : id_ (id), level_ (level), log_ (log)
+ {
+ }
+
+ inline
+ char const* Stream::
+ id () const
+ {
+ return id_;
+ }
+
+ inline
+ int Stream::
+ level () const
+ {
+ return level_;
+ }
+
+ //
+ //
+ inline
+ Stream& Stream::
+ operator << (Record const& r)
+ {
+ log_ << r;
+ return *this;
+ }
+
+ inline
+ Record&
+ operator<< (Stream::Mediator const& mc, Int level)
+ {
+ Stream::Mediator& m (const_cast<Stream::Mediator&> (mc));
+ m.r_.level (level);
+ return m.r_;
+ }
+
+ inline
+ Record&
+ operator<< (Stream::Mediator const& mc, Char const* s)
+ {
+ Stream::Mediator& m (const_cast<Stream::Mediator&> (mc));
+ return m.r_ << s;
+ }
+ }
+}