X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FOverloadedCommand.cci;h=4892e53ce6bff895969cc01df3599de6577b45e4;hb=e879290346fe5242d7df2d70ee552d264081492f;hp=21add3bb7c5ad72a6482ce2bb76a29bf48a413fa;hpb=30c1daf8a1c404209210f76a9a54bcfde443603b;p=senf.git diff --git a/Console/OverloadedCommand.cci b/Console/OverloadedCommand.cci index 21add3b..4892e53 100644 --- a/Console/OverloadedCommand.cci +++ b/Console/OverloadedCommand.cci @@ -36,23 +36,49 @@ prefix_ senf::console::CommandOverload::~CommandOverload() {} +prefix_ void senf::console::CommandOverload::execute(std::ostream & os, + ParseCommandInfo const & command) +{ + v_execute(os, command); +} + prefix_ void senf::console::CommandOverload::operator()(std::ostream & os, - Arguments const & arguments) + ParseCommandInfo const & command) +{ + execute(os, command); +} + +prefix_ unsigned senf::console::CommandOverload::numArguments() + const +{ + return v_numArguments(); +} + +prefix_ void senf::console::CommandOverload::argumentDoc(unsigned index, ArgumentDoc & doc) + const { - v_execute(os, arguments); + return v_argumentDoc(index,doc); } -prefix_ void senf::console::CommandOverload::help(std::ostream & os) +prefix_ std::string senf::console::CommandOverload::doc() + const { - v_help(os); + return v_doc(); } prefix_ senf::console::OverloadedCommandNode & senf::console::CommandOverload::node() + const { SENF_ASSERT( node_ ); return *node_; } +prefix_ unsigned senf::console::CommandOverload::overloadIndex() + const +{ + return node().overloadIndex(*this); +} + prefix_ senf::console::CommandOverload::CommandOverload() : node_(0) {} @@ -65,11 +91,6 @@ prefix_ senf::console::OverloadedCommandNode::ptr senf::console::OverloadedComma return ptr(new OverloadedCommandNode()); } -prefix_ void senf::console::OverloadedCommandNode::add(CommandOverload::ptr overload) -{ - overloads_.push_back(overload); -} - prefix_ senf::console::OverloadedCommandNode::ptr senf::console::OverloadedCommandNode::thisptr() { return boost::static_pointer_cast(shared_from_this()); @@ -88,6 +109,13 @@ senf::console::OverloadedCommandNode::doc(std::string const & doc) return *this; } +prefix_ unsigned +senf::console::OverloadedCommandNode::overloadIndex(CommandOverload const & overload) +{ + return find(overloads_.begin(), overloads_.end(), CommandOverload::cptr(&overload)) + - overloads_.begin() + 1; +} + prefix_ senf::console::OverloadedCommandNode::OverloadedCommandNode() {}