X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FTarget.cci;h=e6f2d246ab9267f504d7c6210f13912eb0ed8ba3;hb=58e527462abb46e321c94fda65f758b67ac3aef2;hp=5261bdb4dceb85648601cca913bfde683f3ee597;hpb=56ec4faa5dcae61746a78375cb7de605d0b79738;p=senf.git diff --git a/Utils/Logger/Target.cci b/Utils/Logger/Target.cci index 5261bdb..e6f2d24 100644 --- a/Utils/Logger/Target.cci +++ b/Utils/Logger/Target.cci @@ -1,8 +1,8 @@ // $Id$ // // Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund // // This program is free software; you can redistribute it and/or modify @@ -23,10 +23,9 @@ /** \file \brief Target inline non-template implementation */ -//#include "Target.ih" +#include "Target.ih" // Custom includes -#include #define prefix_ inline ///////////////////////////////cci.p/////////////////////////////////////// @@ -34,13 +33,13 @@ /////////////////////////////////////////////////////////////////////////// // 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,48 @@ 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 source) +{ + timeSource_.reset(source.release()); +} + +prefix_ void senf::log::detail::TargetRegistry::routed() +{ + fallbackRouting_ = false; +} + +prefix_ bool senf::log::detail::TargetRegistry::fallbackRouting() +{ + return fallbackRouting_; +} + +//////////////////////////////////////// +// 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 source) +{ + detail::TargetRegistry::instance().timeSource(source); +} + /////////////////////////////cci.e/////////////////////////////////////// #undef prefix_