X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FConsole%2FNode.cci;h=21482ffb239be81cabd7b1a5f98ff025ac52a477;hb=fc1569e67cfda71bc8c406617a5e0b05f28f1b47;hp=61c36460071aae5180a1df7546c391e36858e5d7;hpb=f13780e9e4da7df981d6f6542fbdc714beb34765;p=senf.git diff --git a/senf/Utils/Console/Node.cci b/senf/Utils/Console/Node.cci index 61c3646..21482ff 100644 --- a/senf/Utils/Console/Node.cci +++ b/senf/Utils/Console/Node.cci @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2008 +// Copyright (C) 2008 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -26,7 +26,6 @@ #include "Node.ih" // Custom includes -#include #define prefix_ inline ///////////////////////////////cci.p/////////////////////////////////////// @@ -212,18 +211,6 @@ senf::console::DirectoryNode::operator()(std::string const & name) 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 { @@ -238,11 +225,6 @@ senf::console::DirectoryNode::completions(std::string const & s) 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() {} @@ -369,6 +351,15 @@ prefix_ senf::console::SimpleCommandNode::cptr senf::console::SimpleCommandNode: } /////////////////////////////////////////////////////////////////////////// + +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) @@ -398,6 +389,50 @@ senf::console::factory::SimpleCommand::shortdoc(std::string const & doc) return *this; } +/////////////////////////////////////////////////////////////////////////// +// 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_); +} + ///////////////////////////////cci.e/////////////////////////////////////// #undef prefix_