/** \file
\brief Node inline template implementation */
-//#include "Node.ih"
+#include "Node.ih"
// Custom includes
// senf::console::NodeCreateTraits<Object>::Creator
template <class Object>
-prefix_ typename senf::console::NodeCreateTraits<Object>::NodeType &
+prefix_ typename senf::console::NodeCreateTraits<Object>::result_type
senf::console::NodeCreateTraits<Object>::Creator::create(DirectoryNode & node,
std::string const & name,
- Object const & ob)
+ Object & ob)
{
return senf_console_add_node(node, name, ob, 0);
}
template <class NodeType>
prefix_ NodeType & senf::console::DirectoryNode::add(std::string const & name,
- std::auto_ptr<NodeType> node)
-{
- GenericNode::ptr p (node);
- p->name(name);
- add(p);
- return static_cast<NodeType &>(*p);
-}
-
-template <class NodeType>
-prefix_ NodeType & senf::console::DirectoryNode::add(std::string const & name,
boost::shared_ptr<NodeType> node)
{
SENF_ASSERT( ! node->parent() );
}
template <class Object>
-prefix_ typename senf::console::NodeCreateTraits<Object>::NodeType &
+prefix_ typename senf::console::NodeCreateTraits<Object>::result_type
senf::console::DirectoryNode::add(std::string const & name, Object const & ob)
{
- return NodeCreateTraits<Object>::Creator::create(*this, name, ob);
+ return NodeCreateTraits<Object const>::Creator::create(*this, name, ob);
}
-///////////////////////////////////////////////////////////////////////////
-// senf::console::SimpleCommandNode
-
-template <class Function>
-prefix_ senf::console::SimpleCommandNode & senf::console::
-senf_console_add_node(DirectoryNode & node, std::string const & name, Function const & fn, ...)
+template <class Object>
+prefix_ typename senf::console::NodeCreateTraits<Object>::result_type
+senf::console::DirectoryNode::add(std::string const & name, Object & ob)
{
- return node.add(name, SimpleCommandNode::create(fn));
+ return NodeCreateTraits<Object>::Creator::create(*this, name, ob);
}
///////////////////////////////cti.e///////////////////////////////////////