Utils/Logger: Add console directory to target
[senf.git] / Utils / Logger / Target.ih
index d80902e..c6d4efb 100644 (file)
 /** \file
     \brief Target internal header */
 
-#ifndef IH_Target_
-#define IH_Target_ 1
+#ifndef IH_SENF_Utils_Logger_Target_
+#define IH_SENF_Utils_Logger_Target_ 1
 
 // Custom includes
 #include <memory>
-#include <boost/scoped_ptr.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/static_assert.hpp>
+#include "../Console/LazyDirectory.hh"
 
 ///////////////////////////////ih.p////////////////////////////////////////
 
@@ -46,9 +46,7 @@ namespace detail {
         using senf::singleton<TargetRegistry>::instance;
 
         void write(StreamBase const & stream, AreaBase const & area, unsigned level, 
-                   std::string msg);
-
-        void timeSource(std::auto_ptr<TimeSource> source);
+                   std::string const & msg);
 
         void routed();
         bool fallbackRouting();
@@ -56,14 +54,15 @@ namespace detail {
     private:
         TargetRegistry();
         
-        void registerTarget(Target * target);
+        void registerTarget(Target * target, std::string const & name);
         void unregisterTarget(Target * target);
 
         typedef std::set<Target *> Targets;
         Targets targets_;
-        boost::scoped_ptr<TimeSource> timeSource_;
 
         bool fallbackRouting_;
+
+        console::LazyDirectory consoleDir_;
         
         friend class senf::log::Target;
         friend class senf::singleton<TargetRegistry>;
@@ -71,7 +70,7 @@ namespace detail {
 
     /** \brief Internal: Write log message */
     template <class Stream, class Area, class Level>
-    void write(std::string msg);
+    void write(std::string const & msg);
 
 #ifndef DOXYGEN
 
@@ -87,7 +86,7 @@ namespace detail {
     // For g++ 4.0 (at least) we need to provide the fully scoped name for this default value.
     // no idea why. It works without the scope in 4.1
     template < class T, class A2, class A1,
-               unsigned type = SENF_MPL_RV( senf::Log::detail::RouteParameterCheck_(static_cast<T*>(0)) ) >
+               unsigned type = SENF_MPL_RV( senf::log::detail::RouteParameterCheck_(static_cast<T*>(0)) ) >
     struct RouteParameters
     {};
 
@@ -113,7 +112,7 @@ namespace detail {
         : public RouteParameters<A2,A1,mpl::nil>
     {
         typedef RouteParameters<A2,A1,mpl::nil> base;
-        BOOST_STATIC_ASSERT( boost::is_same<typename base::Stream, mpl::nil>::value );
+        BOOST_STATIC_ASSERT(( boost::is_same<typename base::Stream, mpl::nil>::value ));
         typedef T Stream;
     };
 
@@ -122,7 +121,7 @@ namespace detail {
         : public RouteParameters<A2,A1,mpl::nil>
     {
         typedef RouteParameters<A2,A1,mpl::nil> base;
-        BOOST_STATIC_ASSERT( boost::is_same<typename base::Area, mpl::nil>::value );
+        BOOST_STATIC_ASSERT(( boost::is_same<typename base::Area, mpl::nil>::value ));
         typedef T Area;
     };
 
@@ -131,7 +130,7 @@ namespace detail {
         : public RouteParameters<A2,A1,mpl::nil>
     {
         typedef RouteParameters<A2,A1,mpl::nil> base;
-        BOOST_STATIC_ASSERT( boost::is_same<typename base::Area, mpl::nil>::value );
+        BOOST_STATIC_ASSERT(( boost::is_same<typename base::Area, mpl::nil>::value ));
         typedef typename T::SENFLogArea Area;
     };
 
@@ -140,7 +139,7 @@ namespace detail {
         : public RouteParameters<A2,A1,mpl::nil>
     {
         typedef RouteParameters<A2,A1,mpl::nil> base;
-        BOOST_STATIC_ASSERT( boost::is_same<typename base::Level, NilLevel>::value );
+        BOOST_STATIC_ASSERT(( boost::is_same<typename base::Level, NilLevel>::value ));
         typedef T Level;
     };