Add 'unflatten' to doxygen/dot processing
[senf.git] / Utils / Logger / Target.ih
index f926f87..4b81e2e 100644 (file)
 #include <memory>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/static_assert.hpp>
+#include <boost/shared_ptr.hpp>
 #include "../Console/LazyDirectory.hh"
+#include "../Console/Parse.hh"
 
 ///////////////////////////////ih.p////////////////////////////////////////
 
 namespace senf {
+
+    namespace console { class DirectoryNode; }
+
 namespace log {
 namespace detail {
 
+    struct LogParameters {
+        StreamBase const * stream;
+        AreaBase const * area;
+        unsigned level;
+        void clear();
+        void setDefaults();
+        static LogParameters defaultParameters();
+    };
+
+    std::ostream & operator<<(std::ostream & os, LogParameters const & pm);
+
+    void senf_console_parse_argument(console::ParseCommandInfo::TokensRange const & tokens, 
+                                     LogParameters & out);
+
     /** \brief Internal: Target registry */
     class TargetRegistry
         : public senf::singleton<TargetRegistry>
@@ -73,9 +92,9 @@ namespace detail {
 
         void consoleAreas(std::ostream & os);
         void consoleStreams(std::ostream & os);
-        void consoleWrite(std::string const & stream, std::string const & area, Level level,
-                          std::string const & msg);
+        void consoleWrite(LogParameters parameters, std::string const & msg);
         void consoleRemoveTarget(Target * target);
+        boost::shared_ptr<senf::console::DirectoryNode> consoleSelf(std::ostream & os);
 
         typedef std::set<Target *> Targets;
         Targets targets_;