X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FNode.cci;h=e0e3d7785e3d29c652bed1681b4fc7b39b078554;hb=5443435c4c2b6e4386c5334b5b8358273f2bae93;hp=1c130cbdf29692610ebfb03a078398d4066ec4ec;hpb=79e54eda6a7fb5ac3fa5b37f408dd386454c5bbd;p=senf.git diff --git a/Utils/Console/Node.cci b/Utils/Console/Node.cci index 1c130cb..e0e3d77 100644 --- a/Utils/Console/Node.cci +++ b/Utils/Console/Node.cci @@ -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(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(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///////////////////////////////////////