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
+{
+ try {
+ return dynamic_cast<DirectoryNode&>(get(name));
+ }
+ SENF_WRAP_EXC(std::bad_cast)
+}
+
prefix_ senf::console::DirectoryNode &
senf::console::DirectoryNode::operator[](std::string const & name)
const
{
- return dynamic_cast<DirectoryNode&>(get(name));
+ return getDirectory(name);
+}
+
+prefix_ senf::console::CommandNode &
+senf::console::DirectoryNode::getCommand(std::string const & name)
+ const
+{
+ try {
+ return dynamic_cast<CommandNode&>(get(name));
+ }
+ SENF_WRAP_EXC(std::bad_cast)
}
prefix_ senf::console::CommandNode &
senf::console::DirectoryNode::operator()(std::string const & name)
const
{
- return dynamic_cast<CommandNode&>(get(name));
+ return getCommand(name);
}
prefix_ senf::console::DirectoryNode &
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);
}
///////////////////////////////////////////////////////////////////////////