Packets/DefaultBundle: Document finalize() action
[senf.git] / Utils / Logger / Target.cci
index 5261bdb..5c77795 100644 (file)
 /** \file
     \brief Target inline non-template implementation */
 
-//#include "Target.ih"
+#include "Target.ih"
 
 // Custom includes
-#include <algorithm>
 
 #define prefix_ inline
 ///////////////////////////////cci.p///////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////
 // senf::log::Target
 
-prefix_ iterator senf::log::Target::begin()
+prefix_ senf::log::Target::iterator senf::log::Target::begin()
     const
 {
     return rib_.begin();
 }
 
-prefix_ iterator senf::log::Target::end()
+prefix_ senf::log::Target::iterator senf::log::Target::end()
     const
 {
     return rib_.end();
@@ -71,13 +70,13 @@ prefix_ bool senf::log::Target::RoutingEntry::operator==(RoutingEntry const & ot
 prefix_ std::string senf::log::Target::RoutingEntry::stream()
     const
 {
-    return stream_->v_name();
+    return stream_ ? stream_->v_name() : "";
 }
 
 prefix_ std::string senf::log::Target::RoutingEntry::area()
     const
 {
-    return area_->v_name();
+    return area_ ? area_->v_name() : "";
 }
 
 prefix_ unsigned senf::log::Target::RoutingEntry::level()
@@ -93,18 +92,43 @@ prefix_ senf::log::Target::action_t senf::log::Target::RoutingEntry::action()
 }
 
 ///////////////////////////////////////////////////////////////////////////
-// senf::log::TargetRegistry
+// senf::log::detail::TargetRegistry
 
-prefix_ void senf::log::TargetRegistry::registerTarget(Target * target)
+prefix_ void senf::log::detail::TargetRegistry::timeSource(std::auto_ptr<TimeSource> source)
+{
+    timeSource_.reset(source.release());
+}
+
+prefix_ void senf::log::detail::TargetRegistry::routed()
+{
+    fallbackRouting_ = false;
+}
+
+////////////////////////////////////////
+// private members
+
+prefix_ senf::log::detail::TargetRegistry::TargetRegistry()
+    : timeSource_(new SystemTimeSource()), fallbackRouting_(true)
+{}
+
+prefix_ void senf::log::detail::TargetRegistry::registerTarget(Target * target)
 {
     targets_.insert(target);
 }
 
-prefix_ void senf::log::TargetRegistry::unregisterTarget(Target * target)
+prefix_ void senf::log::detail::TargetRegistry::unregisterTarget(Target * target)
 {
     targets_.erase(target);
 }
 
+///////////////////////////////////////////////////////////////////////////
+// namespace senf::log members
+
+prefix_ void senf::log::timeSource(std::auto_ptr<TimeSource> source)
+{
+    detail::TargetRegistry::instance().timeSource(source);
+}
+
 /////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_