X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FNode.cci;h=6f24e9c3a6bb9271e8760caac9670c1f20900620;hb=da1843a0fc5dfaea09d7d7ab3adf2d30795e04c5;hp=c5adaf3b231325a7ab23f6044b8c8fb532909972;hpb=d2459b6c8249291588fd3d0d125ed3d38e003b55;p=senf.git diff --git a/Console/Node.cci b/Console/Node.cci index c5adaf3..6f24e9c 100644 --- a/Console/Node.cci +++ b/Console/Node.cci @@ -92,8 +92,15 @@ 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::operator[](std::string const & name) +senf::console::DirectoryNode::getDirectory(std::string const & name) const { try { @@ -102,8 +109,15 @@ senf::console::DirectoryNode::operator[](std::string const & name) SENF_WRAP_EXC(std::bad_cast) } +prefix_ senf::console::DirectoryNode & +senf::console::DirectoryNode::operator[](std::string const & name) + const +{ + return getDirectory(name); +} + prefix_ senf::console::CommandNode & -senf::console::DirectoryNode::operator()(std::string const & name) +senf::console::DirectoryNode::getCommand(std::string const & name) const { try { @@ -112,6 +126,13 @@ senf::console::DirectoryNode::operator()(std::string const & name) SENF_WRAP_EXC(std::bad_cast) } +prefix_ senf::console::CommandNode & +senf::console::DirectoryNode::operator()(std::string const & name) + const +{ + return getCommand(name); +} + prefix_ senf::console::DirectoryNode & senf::console::DirectoryNode::mkdir(std::string const & name) { @@ -169,11 +190,18 @@ prefix_ senf::console::CommandNode::cptr senf::console::CommandNode::thisptr() prefix_ senf::console::CommandNode::CommandNode() {} +prefix_ void senf::console::CommandNode::execute(std::ostream & output, + ParseCommandInfo const & command) + const +{ + v_execute(output, command); +} + prefix_ void senf::console::CommandNode::operator()(std::ostream & output, - Arguments const & arguments) + ParseCommandInfo const & command) const { - v_execute(output, arguments); + execute(output, command); } /////////////////////////////////////////////////////////////////////////// @@ -207,6 +235,14 @@ prefix_ senf::console::SimpleCommandNode::cptr senf::console::SimpleCommandNode: return boost::static_pointer_cast(shared_from_this()); } +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)); +} + + ///////////////////////////////cci.e/////////////////////////////////////// #undef prefix_