Console: Documentation fix
[senf.git] / Console / Node.cci
index ed1e30e..0193989 100644 (file)
@@ -92,6 +92,13 @@ prefix_ senf::console::DirectoryNode::ptr senf::console::DirectoryNode::create()
     return ptr(new DirectoryNode());
 }
 
+prefix_ bool senf::console::DirectoryNode::hasChild(std::string const & name)
+    const
+{
+    ChildMap::const_iterator i (children_.find(name));
+    return i != children_.end();
+}
+
 prefix_ senf::console::DirectoryNode &
 senf::console::DirectoryNode::getDirectory(std::string const & name)
     const
@@ -138,6 +145,14 @@ prefix_ senf::console::DirectoryNode::ChildrenRange senf::console::DirectoryNode
     return boost::make_iterator_range(children_.begin(), children_.end());
 }
 
+prefix_ senf::console::DirectoryNode::ChildrenRange
+senf::console::DirectoryNode::completions(std::string const & s)
+    const
+{
+    return boost::make_iterator_range(children_.lower_bound(s),
+                                      children_.lower_bound(s + "\xff"));
+}
+
 prefix_ senf::console::DirectoryNode::DirectoryNode()
 {}
 
@@ -163,9 +178,19 @@ prefix_ senf::console::DirectoryNode::cptr senf::console::DirectoryNode::thisptr
 // senf::console::SyntaxErrorException
 
 prefix_ senf::console::SyntaxErrorException::SyntaxErrorException(std::string const & msg)
-    : Exception(msg)
+    : message_(msg)
+{}
+
+prefix_ senf::console::SyntaxErrorException::~SyntaxErrorException()
+    throw()
 {}
 
+prefix_ std::string const & senf::console::SyntaxErrorException::message()
+    const
+{
+    return message_;
+}
+
 ///////////////////////////////////////////////////////////////////////////
 // senf::console::CommandNode
 
@@ -228,6 +253,17 @@ prefix_ senf::console::SimpleCommandNode::cptr senf::console::SimpleCommandNode:
     return boost::static_pointer_cast<SimpleCommandNode const>(shared_from_this());
 }
 
+#ifndef DOXYGEN
+
+prefix_ senf::console::SimpleCommandNode &
+senf::console::senf_console_add_node(DirectoryNode & node, std::string const & name,
+                                     SimpleCommandNode::Function fn, int)
+{
+    return node.add(name, SimpleCommandNode::create(fn));
+}
+
+#endif
+
 ///////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_