From 556d9a5ca28fa2986afa07a29de8bba0a82a7141 Mon Sep 17 00:00:00 2001
From: Mansard <nmansard@laas.fr>
Date: Thu, 20 Jan 2011 11:56:29 +0100
Subject: [PATCH] With the direct command pushed back in dg.

---
 include/sot-dyninv/commands-helper.h | 102 +--------------------------
 src/controller-pd.cpp                |   2 +-
 2 files changed, 3 insertions(+), 101 deletions(-)

diff --git a/include/sot-dyninv/commands-helper.h b/include/sot-dyninv/commands-helper.h
index e9e2502..742b812 100644
--- a/include/sot-dyninv/commands-helper.h
+++ b/include/sot-dyninv/commands-helper.h
@@ -19,113 +19,15 @@
 
 /* --- COMMON INCLUDE -------------------------------------------------- */
 #include <dynamic-graph/command.h>
-#include <dynamic-graph/command-setter.h>
-#include <dynamic-graph/command-getter.h>
+#include <dynamic-graph/command-direct-setter.h>
+#include <dynamic-graph/command-direct-getter.h>
 
 
-/* --- GETTER --------------------------------------------------------- */
-namespace dynamicgraph {
-  namespace command {
-
-
-
-    template <class E, typename T>
-      class DirectGetter
-      : public Command
-    {
-    public:
-      /// Pointer to method that sets paramter of type T
-      typedef T (E::*GetterMethod) () const;
-
-      /// Constructor
-    DirectGetter(E& entity,T* ptr,
-		 const std::string& docString)
-      : Command(entity, std::vector<Value::Type>(), docString),
-	T_ptr(ptr) {}
-
-    protected:
-      virtual Value doExecute() { return Value(*T_ptr); }
-    private:
-      T* T_ptr;
-    };
-
-    template <class E, typename T>
-      DirectGetter<E,T>*
-      makeDirectGetter( E& entity,T* ptr,
-			const std::string& docString)
-      { return  new DirectGetter<E,T>(entity,ptr,docString); }
-
-    std::string docDirectGetter( const std::string& name,
-				 const std::string& type )
-      {
-	return std::string("\nGet the ")+name+".\n\nNo input.\nReturn an "+type+".\n\n";
-      }
-
-  } // namespace command
-} // namespace dynamicgraph
-
-
-/* --- SETTER --------------------------------------------------------- */
-namespace dynamicgraph {
-  namespace command {
-
-
-    template< typename T >
-      struct ValueHelper
-      {
-	static const Value::Type TypeID;
-      };
-
-    template<>
-      const Value::Type ValueHelper<int>::TypeID = Value::INT;
-
-
-    template <class E, typename T, Value::Type TYPEID>
-      class DirectSetter
-      : public Command
-    {
-    public:
-    DirectSetter(E& entity,T* ptr,const std::string& docString)
-      :Command(entity, boost::assign::list_of(TYPEID), docString)
-	,T_ptr(ptr)
-      {}
-
-    protected:
-      virtual Value doExecute()
-      {
-	const std::vector<Value>& values = getParameterValues();
-	T val = values[0].value();
-	(*T_ptr) = val;
-	return Value(); // void
-      }
-    private:
-      T* T_ptr;
-    };
-
-
-
-    template <Value::Type TYPEID,class E, typename T>
-      DirectSetter<E,T,TYPEID>*
-      makeDirectSetter( E& entity,T* ptr,
-			const std::string& docString)
-      { return  new DirectSetter<E,T,TYPEID>(entity,ptr,docString); }
-
-    std::string docDirectSetter( const std::string& name,
-				 const std::string& type )
-      {
-	return std::string("\nSet the ")+name+".\n\nInput:\n - a "
-	  +type+".\nVoid return.\n\n";
-      }
-
-  } // namespace command
-} // namespace dynamicgraph
-
 
 
 /* --- HELPER --------------------------------------------------------------- */
 namespace sot {
   namespace dyninv {
-    using ::dynamicgraph::command::Value;
     using ::dynamicgraph::command::makeDirectGetter;
     using ::dynamicgraph::command::docDirectGetter;
     using ::dynamicgraph::command::makeDirectSetter;
diff --git a/src/controller-pd.cpp b/src/controller-pd.cpp
index d95590b..5dbd072 100644
--- a/src/controller-pd.cpp
+++ b/src/controller-pd.cpp
@@ -60,7 +60,7 @@ namespace sot
 				  docDirectGetter("dimension","int")));
 
       addCommand("setSize",
-		 makeDirectSetter<Value::INT>(*this, &_dimension,
+		 makeDirectSetter(*this, &_dimension,
 				  docDirectSetter("dimension","int")));
     }
 
-- 
GitLab