///////////////////////////////cci.p///////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
+// senf::console::OverloadedCommandNode
+
+prefix_ senf::console::OverloadedCommandNode::ptr senf::console::OverloadedCommandNode::create()
+{
+ return ptr(new OverloadedCommandNode());
+}
+
+prefix_ senf::console::OverloadedCommandNode::ptr senf::console::OverloadedCommandNode::thisptr()
+{
+ return boost::static_pointer_cast<OverloadedCommandNode>(shared_from_this());
+}
+
+prefix_ senf::console::OverloadedCommandNode::cptr senf::console::OverloadedCommandNode::thisptr()
+ const
+{
+ return boost::static_pointer_cast<OverloadedCommandNode const>(shared_from_this());
+}
+
+prefix_ senf::console::OverloadedCommandNode &
+senf::console::OverloadedCommandNode::doc(std::string const & doc)
+{
+ doc_ = 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()
+{}
+
+///////////////////////////////////////////////////////////////////////////
// senf::console::CommandOverload
prefix_ senf::console::CommandOverload::~CommandOverload()
execute(os, command);
}
-prefix_ void senf::console::CommandOverload::help(std::ostream & os)
-{
- v_help(os);
-}
-
-prefix_ senf::console::OverloadedCommandNode & senf::console::CommandOverload::node()
+prefix_ unsigned senf::console::CommandOverload::numArguments()
+ const
{
- SENF_ASSERT( node_ );
- return *node_;
+ return v_numArguments();
}
-prefix_ senf::console::CommandOverload::CommandOverload()
- : node_(0)
-{}
-
-///////////////////////////////////////////////////////////////////////////
-// senf::console::OverloadedCommandNode
-
-prefix_ senf::console::OverloadedCommandNode::ptr senf::console::OverloadedCommandNode::create()
+prefix_ void senf::console::CommandOverload::argumentDoc(unsigned index, ArgumentDoc & doc)
+ const
{
- return ptr(new OverloadedCommandNode());
+ return v_argumentDoc(index,doc);
}
-prefix_ senf::console::OverloadedCommandNode::ptr senf::console::OverloadedCommandNode::thisptr()
+prefix_ std::string senf::console::CommandOverload::doc()
+ const
{
- return boost::static_pointer_cast<OverloadedCommandNode>(shared_from_this());
+ return v_doc();
}
-prefix_ senf::console::OverloadedCommandNode::cptr senf::console::OverloadedCommandNode::thisptr()
+prefix_ senf::console::OverloadedCommandNode & senf::console::CommandOverload::node()
const
{
- return boost::static_pointer_cast<OverloadedCommandNode const>(shared_from_this());
+ SENF_ASSERT( node_ );
+ return *node_;
}
-prefix_ senf::console::OverloadedCommandNode &
-senf::console::OverloadedCommandNode::doc(std::string const & doc)
+prefix_ unsigned senf::console::CommandOverload::overloadIndex()
+ const
{
- doc_ = doc;
- return *this;
+ return node().overloadIndex(*this);
}
-prefix_ senf::console::OverloadedCommandNode::OverloadedCommandNode()
+prefix_ senf::console::CommandOverload::CommandOverload()
+ : node_(0)
{}
///////////////////////////////////////////////////////////////////////////