Add 'unflatten' to doxygen/dot processing
[senf.git] / Utils / Logger / StreamRegistry.hh
index a47e836..48e5c59 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 /** \file
     \brief StreamRegistry public header */
 
-#ifndef HH_StreamRegistry_
-#define HH_StreamRegistry_ 1
+#ifndef HH_SENF_Utils_Logger_StreamRegistry_
+#define HH_SENF_Utils_Logger_StreamRegistry_ 1
 
 // Custom includes
 #include <map>
 #include <functional>
+#include <ext/functional>
 #include <boost/iterator/transform_iterator.hpp>
 #include "Levels.hh"
 #include "../singleton.hh"
@@ -55,14 +56,9 @@ namespace log {
     {
         typedef std::map<std::string, detail::StreamBase const *> Registry;
 
-        struct SelectName 
-        {
-            typedef std::string result_type;
-            std::string const & operator()(Registry::value_type const & v) const;
-        };
-
     public:
-        typedef boost::transform_iterator<SelectName, Registry::const_iterator> iterator;
+        typedef boost::transform_iterator< ::__gnu_cxx::select1st<Registry::value_type>, 
+                                           Registry::const_iterator > iterator;
 
 #       ifdef DOXYGEN
         // Hmm ... doxygen does not understand 'using declarations' ...
@@ -75,11 +71,12 @@ namespace log {
         iterator begin();
         iterator end();
 
+        detail::StreamBase const * lookup(std::string const & name);
+
     private:
         StreamRegistry();
 
         void registerStream(detail::StreamBase const & stream);
-        detail::StreamBase const * lookup(std::string const & name);
 
         Registry registry_;