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 {
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 {
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)
{
return boost::make_iterator_range(children_.begin(), children_.end());
}
+prefix_ senf::console::DirectoryNode::ChildrenRange
+senf::console::DirectoryNode::completions(std::string const & s)
+ const
+{
+ return boost::make_iterator_range(children_.lower_bound(s),
+ children_.lower_bound(s + "\xff"));
+}
+
prefix_ senf::console::DirectoryNode::DirectoryNode()
{}
// senf::console::SyntaxErrorException
prefix_ senf::console::SyntaxErrorException::SyntaxErrorException(std::string const & msg)
- : Exception(msg)
+ : message_(msg)
+{}
+
+prefix_ senf::console::SyntaxErrorException::~SyntaxErrorException()
+ throw()
{}
+prefix_ std::string const & senf::console::SyntaxErrorException::message()
+ const
+{
+ return message_;
+}
+
///////////////////////////////////////////////////////////////////////////
// senf::console::CommandNode
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);
}
///////////////////////////////////////////////////////////////////////////
return boost::static_pointer_cast<SimpleCommandNode const>(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_