X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FTarget.cti;h=8718906e5e7fa25d5fac80ec1fe57051bcb1aa7b;hb=445c71d8d242f4ce3d23d8db8d1faf909943cfec;hp=30a45232ca6af8add3e6c07afc6a71bedd4cb442;hpb=56ec4faa5dcae61746a78375cb7de605d0b79738;p=senf.git diff --git a/Utils/Logger/Target.cti b/Utils/Logger/Target.cti index 30a4523..8718906 100644 --- a/Utils/Logger/Target.cti +++ b/Utils/Logger/Target.cti @@ -1,8 +1,8 @@ // $Id$ // -// Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer NETwork research (NET) +// Copyright (C) 2007 +// 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,7 +23,7 @@ /** \file \brief Target inline template implementation */ -//#include "Target.ih" +#include "Target.ih" // Custom includes #include "Levels.hh" @@ -34,82 +34,121 @@ /////////////////////////////////////////////////////////////////////////// // senf::log::Target +// senf::log::Target::route + +#ifndef DOXYGEN + template prefix_ void senf::log::Target::route(action_t action, int index) { route(&Stream::instance(), 0, NONE::value, action, index); } -template -prefix_ void senf::log::Target::route(action_t action, int index) +template +prefix_ void senf::log::Target:: +route(action_t action, int index, + typename boost::enable_if< boost::is_convertible >::type *) { - route(&Stream::instance(), static_cast(0), action, index); + route(&Stream::instance(), 0, Level::value, action, index); +} + +template +prefix_ void senf::log::Target:: +route(action_t action, int index, + typename boost::enable_if< boost::is_convertible >::type *) +{ + route(&Stream::instance(), &Area::instance(), NONE::value, action, index); +} + +template +prefix_ void senf::log::Target:: +route(action_t action, int index, + typename boost::enable_if< boost::is_convertible >::type *) +{ + route(&Stream::instance(), &AreaClass::SENFLogArea::instance(), NONE::value, action, index); } template -prefix_ void senf::log::Target::route(action_t action, int index) +prefix_ void senf::log::Target:: +route(action_t action, int index, + typename boost::enable_if< boost::is_convertible >::type *) { route(&Stream::instance(), &Area::instance(), Level::value, action, index); } -template -prefix_ void senf::log::Target::unroute(action_t action) +template +prefix_ void senf::log::Target:: +route(action_t action, int index, + typename boost::enable_if< boost::is_convertible >::type *) { - unroute(&Stream::instance(), 0, NONE::value, action); + route(&Stream::instance(), &AreaClass::SENFLogArea::instance(), Level::value, action, index); } -template +// senf::log::target::ununroute + +template prefix_ void senf::log::Target::unroute(action_t action) { - unroute(&Stream::instance(), static_cast(0), action); + unroute(&Stream::instance(), 0, NONE::value, action); } -template -prefix_ void senf::log::Target::unroute(action_t action) +template +prefix_ void senf::log::Target:: +unroute(action_t action, + typename boost::enable_if< boost::is_convertible >::type *) { - unroute(&Stream::instance(), &Area::instance(), Level::value, action); + unroute(&Stream::instance(), 0, Level::value, action); } -//////////////////////////////////////// -// private members - -template -prefix_ void senf::log::Target::route(detail::StreamBase const * stream, - detail::AreaBase const *, action_t action, int index) +template +prefix_ void senf::log::Target:: +unroute(action_t action, + typename boost::enable_if< boost::is_convertible >::type *) { - route(stream, &Area::instance(), NONE::value, action, index); + unroute(&Stream::instance(), &Area::instance(), NONE::value, action); } -template -prefix_ void senf::log::Target::route(detail::StreamBase const * stream, - detail::LevelBase const *, action_t action, int index) +template +prefix_ void senf::log::Target:: +unroute(action_t action, + typename boost::enable_if< boost::is_convertible >::type *) { - route(stream, 0, Level::value, action, index); + unroute(&Stream::instance(), &AreaClass::SENFLogArea::instance(), NONE::value, action); } -template -prefix_ void senf::log::Target::unroute(detail::StreamBase const * stream, - detail::AreaBase const *, action_t action) +template +prefix_ void senf::log::Target:: +unroute(action_t action, + typename boost::enable_if< boost::is_convertible >::type *) { - unroute(stream, &Area::instance(), NONE::value, action); + unroute(&Stream::instance(), &Area::instance(), Level::value, action); } -template -prefix_ void senf::log::Target::unroute(detail::StreamBase const * stream, - detail::LevelBase const *, action_t action) +template +prefix_ void senf::log::Target:: +unroute(action_t action, + typename boost::enable_if< boost::is_convertible >::type *) { - unroute(stream, 0, Level::value, action); + unroute(&Stream::instance(), &AreaClass::SENFLogArea::instance(), Level::value, action); } +#endif + /////////////////////////////////////////////////////////////////////////// -// namespace senf::log members +// namespace senf::log::detail members template -prefix_ void senf::log::write(std::string msg) +prefix_ void senf::log::detail::write(std::string msg) { TargetRegistry::instance().write(Stream::instance(), Area::instance(), Level::value, msg); } +template +prefix_ void senf::log::timeSource() +{ + timeSource(std::auto_ptr(new Source())); +} + ///////////////////////////////cti.e/////////////////////////////////////// #undef prefix_