// $Id$
//
-// Copyright (C) 2008
+// Copyright (C) 2008
// Fraunhofer Institute for Open Communication Systems (FOKUS)
// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
#include "Node.ih"
// Custom includes
-#include <senf/Utils/senfassert.hh>
#define prefix_ inline
-///////////////////////////////cci.p///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::console::GenericNode
prefix_ senf::console::GenericNode::ptr senf::console::GenericNode::thisptr()
: *this;
}
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::console::LinkNode
prefix_ senf::console::GenericNode & senf::console::LinkNode::follow()
: node_ (node.thisptr())
{}
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::console::DirectoryNode
prefix_ senf::console::DirectoryNode::ptr senf::console::DirectoryNode::create()
return getCommand(name);
}
-prefix_ senf::console::DirectoryNode &
-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
{
children_.lower_bound(s + "\xff"));
}
-prefix_ void senf::console::DirectoryNode::link(std::string const & name, GenericNode & target)
-{
- add(name, LinkNode::create(target));
-}
-
prefix_ senf::console::DirectoryNode::DirectoryNode()
{}
return boost::static_pointer_cast<DirectoryNode const>(shared_from_this());
}
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::console::detail::NodeTraverser
#ifndef DOXYGEN
#endif
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::console::CommandNode
prefix_ senf::console::CommandNode::ptr senf::console::CommandNode::thisptr()
execute(rv, output, command);
}
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::console::SimpleCommandNode
prefix_ senf::console::SimpleCommandNode::SimpleCommandNode(Function const & fn)
return boost::static_pointer_cast<SimpleCommandNode const>(shared_from_this());
}
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
+
+prefix_ senf::console::DirectoryNode & senf::console::provideDirectory(DirectoryNode & dir,
+ std::string const & name)
+{
+ return dir.hasChild(name) ? dir.getDirectory(name) : dir.add(name, factory::Directory());
+}
+
+
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
// senf::console::factory::SimpleCommand
prefix_ senf::console::factory::SimpleCommand::SimpleCommand(SimpleCommandNode::Function fn)
return *this;
}
-///////////////////////////////cci.e///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
+// senf::console::factory::Directory
+
+prefix_ senf::console::factory::Directory::Directory()
+ : node_ (DirectoryNode::create())
+{}
+
+prefix_ senf::console::DirectoryNode &
+senf::console::factory::Directory::create(DirectoryNode & dir, std::string const & name)
+ const
+{
+ return dir.add(name, node_);
+}
+
+prefix_ senf::console::factory::Directory const &
+senf::console::factory::Directory::doc(std::string const & doc)
+ const
+{
+ node_->doc(doc);
+ return *this;
+}
+
+prefix_ senf::console::factory::Directory const &
+senf::console::factory::Directory::shortdoc(std::string const & doc)
+ const
+{
+ node_->shortdoc(doc);
+ return *this;
+}
+
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
+// senf::console::factory::Link
+
+prefix_ senf::console::factory::Link::Link(GenericNode & target)
+ : node_ (LinkNode::create(target))
+{}
+
+prefix_ senf::console::LinkNode & senf::console::factory::Link::create(DirectoryNode & dir,
+ std::string const & name)
+ const
+{
+ return dir.add(name, node_);
+}
+
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
#undef prefix_
\f