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