Console: Add console logging documentation
[senf.git] / Console / Node.cti
index c56f014..a6e113f 100644 (file)
 // senf::console::NodeCreateTraits<Object>::Creator
 
 template <class Object>
-prefix_ typename senf::console::NodeCreateTraits<Object>::NodeType &
+prefix_ typename senf::console::NodeCreateTraits<Object>::result_type
 senf::console::NodeCreateTraits<Object>::Creator::create(DirectoryNode & node,
                                                          std::string const & name,
-                                                         Object const & ob)
+                                                         Object & ob)
 {
     return senf_console_add_node(node, name, ob, 0);
 }
@@ -47,16 +47,6 @@ senf::console::NodeCreateTraits<Object>::Creator::create(DirectoryNode & node,
 
 template <class NodeType>
 prefix_ NodeType & senf::console::DirectoryNode::add(std::string const & name,
-                                                     std::auto_ptr<NodeType> node)
-{
-    GenericNode::ptr p (node);
-    p->name(name);
-    add(p);
-    return static_cast<NodeType &>(*p);
-}
-
-template <class NodeType>
-prefix_ NodeType & senf::console::DirectoryNode::add(std::string const & name,
                                                      boost::shared_ptr<NodeType> node)
 {
     SENF_ASSERT( ! node->parent() );
@@ -66,20 +56,17 @@ prefix_ NodeType & senf::console::DirectoryNode::add(std::string const & name,
 }
 
 template <class Object>
-prefix_ typename senf::console::NodeCreateTraits<Object>::NodeType &
+prefix_ typename senf::console::NodeCreateTraits<Object>::result_type
 senf::console::DirectoryNode::add(std::string const & name, Object const & ob)
 {
-    return NodeCreateTraits<Object>::Creator::create(*this, name, ob);
+    return NodeCreateTraits<Object const>::Creator::create(*this, name, ob);
 }
 
-///////////////////////////////////////////////////////////////////////////
-// senf::console::SimpleCommandNode
-
-template <class Function>
-prefix_ senf::console::SimpleCommandNode & senf::console::
-senf_console_add_node(DirectoryNode & node, std::string const & name, Function const & fn, ...)
+template <class Object>
+prefix_ typename senf::console::NodeCreateTraits<Object>::result_type
+senf::console::DirectoryNode::add(std::string const & name, Object & ob)
 {
-    return node.add(name, SimpleCommandNode::create(fn));
+    return NodeCreateTraits<Object>::Creator::create(*this, name, ob);
 }
 
 ///////////////////////////////cti.e///////////////////////////////////////