Whitespce cleanup: Remove whitespace at end-on-line, remove tabs, wrap
[senf.git] / senf / Utils / Console / Node.cci
index f1935b3..21482ff 100644 (file)
@@ -1,6 +1,6 @@
 // $Id$
 //
-// Copyright (C) 2008 
+// Copyright (C) 2008
 // Fraunhofer Institute for Open Communication Systems (FOKUS)
 // Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Stefan Bund <g0dil@berlios.de>
@@ -26,7 +26,6 @@
 #include "Node.ih"
 
 // Custom includes
-#include "../../Utils/senfassert.hh"
 
 #define prefix_ inline
 ///////////////////////////////cci.p///////////////////////////////////////
@@ -212,18 +211,6 @@ senf::console::DirectoryNode::operator()(std::string const & name)
     return getCommand(name);
 }
 
-prefix_ senf::console::DirectoryNode &
-senf::console::DirectoryNode::mkdir(std::string const & name)
-{
-    return add(name, create());
-}
-
-prefix_ senf::console::DirectoryNode &
-senf::console::DirectoryNode::provideDirectory(std::string const & name)
-{
-    return hasChild(name) ? getDirectory(name) : mkdir(name);
-}
-
 prefix_ senf::console::DirectoryNode::ChildrenRange senf::console::DirectoryNode::children()
     const
 {
@@ -238,11 +225,6 @@ senf::console::DirectoryNode::completions(std::string const & s)
                                       children_.lower_bound(s + "\xff"));
 }
 
-prefix_ void senf::console::DirectoryNode::link(std::string const & name, GenericNode & target)
-{
-    add(name, LinkNode::create(target));
-}
-
 prefix_ senf::console::DirectoryNode::DirectoryNode()
 {}
 
@@ -280,6 +262,7 @@ prefix_ senf::console::detail::NodeTraverser::NodeTraverser(DirectoryNode & root
                                                             bool autocomplete)
     : root_ (root), dir_ (dir.thisptr()), autocomplete_ (autocomplete), init_ (false)
 {}
+
 #endif
 
 ///////////////////////////////////////////////////////////////////////////
@@ -367,23 +350,88 @@ prefix_ senf::console::SimpleCommandNode::cptr senf::console::SimpleCommandNode:
     return boost::static_pointer_cast<SimpleCommandNode const>(shared_from_this());
 }
 
-#ifndef DOXYGEN
+///////////////////////////////////////////////////////////////////////////
+
+prefix_ senf::console::DirectoryNode & senf::console::provideDirectory(DirectoryNode & dir,
+                                                                       std::string const & name)
+{
+    return dir.hasChild(name) ? dir.getDirectory(name) : dir.add(name, factory::Directory());
+}
+
+
+///////////////////////////////////////////////////////////////////////////
+// senf::console::factory::SimpleCommand
+
+prefix_ senf::console::factory::SimpleCommand::SimpleCommand(SimpleCommandNode::Function fn)
+    : node_ (SimpleCommandNode::create(fn))
+{}
 
 prefix_ senf::console::SimpleCommandNode &
-senf::console::senf_console_add_node(DirectoryNode & node, std::string const & name,
-                                     SimpleCommandNode::Function fn, int)
+senf::console::factory::SimpleCommand::create(DirectoryNode & dir, std::string const & name)
+    const
+{
+    return dir.add(name, node_);
+}
+
+prefix_ senf::console::factory::SimpleCommand const &
+senf::console::factory::SimpleCommand::doc(std::string const & doc)
+    const
+{
+    node_->doc(doc);
+    return *this;
+}
+
+prefix_ senf::console::factory::SimpleCommand const &
+senf::console::factory::SimpleCommand::shortdoc(std::string const & doc)
+    const
 {
-    return node.add(name, SimpleCommandNode::create(fn));
+    node_->shortdoc(doc);
+    return *this;
 }
 
+///////////////////////////////////////////////////////////////////////////
+// senf::console::factory::Directory
+
+prefix_ senf::console::factory::Directory::Directory()
+    : node_ (DirectoryNode::create())
+{}
+
 prefix_ senf::console::DirectoryNode &
-senf::console::senf_console_add_node(DirectoryNode & node, std::string const & name,
-                                     DirectoryNode & dir, int)
+senf::console::factory::Directory::create(DirectoryNode & dir, std::string const & name)
+    const
 {
-    return node.add(name, dir.thisptr());
+    return dir.add(name, node_);
 }
 
-#endif
+prefix_ senf::console::factory::Directory const &
+senf::console::factory::Directory::doc(std::string const & doc)
+    const
+{
+    node_->doc(doc);
+    return *this;
+}
+
+prefix_ senf::console::factory::Directory const &
+senf::console::factory::Directory::shortdoc(std::string const & doc)
+    const
+{
+    node_->shortdoc(doc);
+    return *this;
+}
+
+///////////////////////////////////////////////////////////////////////////
+// senf::console::factory::Link
+
+prefix_ senf::console::factory::Link::Link(GenericNode & target)
+    : node_ (LinkNode::create(target))
+{}
+
+prefix_ senf::console::LinkNode & senf::console::factory::Link::create(DirectoryNode & dir,
+                                                                       std::string const & name)
+    const
+{
+    return dir.add(name, node_);
+}
 
 ///////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_