Add 'unflatten' to doxygen/dot processing
[senf.git] / Utils / Console / Node.cci
index 1c130cb..e0e3d77 100644 (file)
@@ -84,6 +84,12 @@ prefix_ void senf::console::GenericNode::help(std::ostream & output)
     v_help(output);
 }
 
+prefix_ std::string senf::console::GenericNode::shorthelp()
+    const
+{
+    return v_shorthelp();
+}
+
 prefix_ bool senf::console::GenericNode::operator==(GenericNode & other)
     const
 {
@@ -212,6 +218,12 @@ 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
 {
@@ -241,6 +253,13 @@ senf::console::DirectoryNode::doc(std::string const & doc)
     return *this;
 }
 
+prefix_ senf::console::DirectoryNode &
+senf::console::DirectoryNode::shortdoc(std::string const & doc)
+{
+    shortdoc_ = doc;
+    return *this;
+}
+
 prefix_ senf::console::DirectoryNode::ptr senf::console::DirectoryNode::thisptr()
 {
     return boost::static_pointer_cast<DirectoryNode>(shared_from_this());
@@ -282,7 +301,16 @@ prefix_ void senf::console::CommandNode::execute(std::ostream & output,
                                                  ParseCommandInfo const & command)
     const
 {
-    v_execute(output, command);
+    boost::any rv;
+    execute(rv, output, command);
+}
+
+prefix_ void senf::console::CommandNode::execute(boost::any & rv, std::ostream & output,
+                                                 ParseCommandInfo const & command)
+    const
+{
+    rv = boost::any();
+    v_execute(rv, output, command);
 }
 
 prefix_ void senf::console::CommandNode::operator()(std::ostream & output,
@@ -292,6 +320,13 @@ prefix_ void senf::console::CommandNode::operator()(std::ostream & output,
     execute(output, command);
 }
 
+prefix_ void senf::console::CommandNode::operator()(boost::any & rv, std::ostream & output,
+                                                    ParseCommandInfo const & command)
+    const
+{
+    execute(rv, output, command);
+}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::console::SimpleCommandNode
 
@@ -312,6 +347,13 @@ senf::console::SimpleCommandNode::doc(std::string const & doc)
     return *this;
 }
 
+prefix_ senf::console::SimpleCommandNode &
+senf::console::SimpleCommandNode::shortdoc(std::string const & doc)
+{
+    shortdoc_ = doc;
+    return *this;
+}
+
 prefix_ senf::console::SimpleCommandNode::ptr senf::console::SimpleCommandNode::thisptr()
 {
     return boost::static_pointer_cast<SimpleCommandNode>(shared_from_this());
@@ -332,6 +374,13 @@ senf::console::senf_console_add_node(DirectoryNode & node, std::string const & n
     return node.add(name, SimpleCommandNode::create(fn));
 }
 
+prefix_ senf::console::DirectoryNode &
+senf::console::senf_console_add_node(DirectoryNode & node, std::string const & name,
+                                     DirectoryNode & dir, int)
+{
+    return node.add(name, dir.thisptr());
+}
+
 #endif
 
 ///////////////////////////////cci.e///////////////////////////////////////