Fix sample bootstrap senfutil.py (Examples/Sniffer/site_scons/senfutil.py)
[senf.git] / senf / Utils / Console / ParsedCommand.cci
index 5d168ec..794b1ff 100644 (file)
@@ -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 <g0dil@berlios.de>
@@ -28,9 +28,9 @@
 // Custom includes
 
 #define prefix_ inline
-///////////////////////////////cci.p///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 // senf::console::detail::ArgumentInfoBase
 
 prefix_ senf::console::detail::ArgumentInfoBase::ArgumentInfoBase(std::string const & type_,
@@ -38,7 +38,7 @@ prefix_ senf::console::detail::ArgumentInfoBase::ArgumentInfoBase(std::string co
     : type (type_), name (), hasDefault (false), singleToken (singleToken_)
 {}
 
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 // senf::console::ParsedCommandOverloadBase
 
 prefix_ senf::console::ParsedCommandOverloadBase::ParsedCommandOverloadBase()
@@ -57,77 +57,73 @@ prefix_ void senf::console::ParsedCommandOverloadBase::doc(std::string const & d
     doc_ = d;
 }
 
-///////////////////////////////////////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 // senf::console::ParsedCommandAttributorBase
 
 prefix_ senf::console::OverloadedCommandNode &
-senf::console::ParsedCommandAttributorBase::node()
+senf::console::ParsedCommandAttributorBase::create(DirectoryNode & dir,
+                                                   std::string const & name)
     const
 {
-    return overload_.node();
+    OverloadedCommandNode & node (OverloadedCommandNode::insertOverload(dir, name, overload_));
+    if (doc_) node.doc(*doc_);
+    if (shortdoc_) node.shortdoc(*shortdoc_);
+    return node;
 }
 
-prefix_ senf::console::ParsedCommandAttributorBase::operator OverloadedCommandNode &()
-    const
-{
-    return node();
-}
+prefix_ senf::console::ParsedCommandAttributorBase::
+ParsedCommandAttributorBase(ParsedCommandOverloadBase::ptr overload, unsigned index)
+  : overload_ (overload), index_ (index)
+{}
 
 prefix_ senf::console::ParsedCommandAttributorBase::
-ParsedCommandAttributorBase(ParsedCommandOverloadBase & overload, unsigned index)
-    : overload_ (overload), index_ (index)
+ParsedCommandAttributorBase(ParsedCommandAttributorBase const & other, unsigned index)
+    : overload_ (other.overload_), index_ (index), doc_ (other.doc_), shortdoc_ (other.shortdoc_)
 {}
 
 prefix_ senf::console::ParsedCommandOverloadBase &
 senf::console::ParsedCommandAttributorBase::overload()
     const
 {
-    return overload_;
+    return *overload_;
 }
 
 prefix_ void senf::console::ParsedCommandAttributorBase::argName(std::string const & name)
-    const
 {
     overload().arg(index_).name = name;
 }
 
 prefix_ void senf::console::ParsedCommandAttributorBase::argDoc(std::string const & doc)
-    const
 {
     overload().arg(index_).doc = doc;
 }
 
 prefix_ void senf::console::ParsedCommandAttributorBase::typeName(std::string const & doc)
-    const
 {
     overload().arg(index_).type = doc;
 }
 
 prefix_ void senf::console::ParsedCommandAttributorBase::defaultDoc(std::string const & doc)
-    const
 {
     overload().arg(index_).defaultDoc = doc;
 }
 
 prefix_ void senf::console::ParsedCommandAttributorBase::overloadDoc(std::string const & doc)
-    const
 {
     overload().doc(doc);
 }
 
 prefix_ void senf::console::ParsedCommandAttributorBase::nodeDoc(std::string const & doc)
-    const
 {
-    node().doc(doc);
+    doc_ = doc;
 }
 
 prefix_ void senf::console::ParsedCommandAttributorBase::shortDoc(std::string const & doc)
-    const
 {
-    node().shortdoc(doc);
+    shortdoc_ = doc;
 }
 
-///////////////////////////////cci.e///////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #undef prefix_
 
 \f