return dynamic_cast<CommandNode const *>(this);
}
+prefix_ senf::console::GenericNode const & senf::console::GenericNode::followLink()
+ const
+{
+ return isLink()
+ ? dynamic_cast<LinkNode const *>(this)->follow()
+ : *this;
+}
+
+prefix_ senf::console::GenericNode & senf::console::GenericNode::followLink()
+{
+ return isLink()
+ ? dynamic_cast<LinkNode *>(this)->follow()
+ : *this;
+}
+
///////////////////////////////////////////////////////////////////////////
// senf::console::LinkNode
senf::console::DirectoryNode::get(std::string const & name)
const
{
- GenericNode & node (getLink(name));
- return node.isLink()
- ? dynamic_cast<LinkNode&>(node).follow()
- : node;
+ return getLink(name).followLink();
}
prefix_ senf::console::DirectoryNode &