From 6e486fb07d26ed9c95d5c3fb843b26b140cf42d1 Mon Sep 17 00:00:00 2001
From: Fabian Paus <fabian.paus@kit.edu>
Date: Thu, 17 Jun 2021 16:47:12 +0200
Subject: [PATCH] RemoteGui: Use much simpler extension interface (overload
 instead of template specialization)

---
 .../CartesianWaypointControllerConfig/RemoteGui.cpp  |  9 +++------
 .../CartesianWaypointControllerConfig/RemoteGui.h    | 12 ++----------
 .../RemoteGui.cpp                                    |  9 +++------
 .../RemoteGui.h                                      | 12 ++----------
 4 files changed, 10 insertions(+), 32 deletions(-)

diff --git a/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.cpp b/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.cpp
index 92005dea9..d55f73563 100644
--- a/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.cpp
+++ b/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.cpp
@@ -155,12 +155,9 @@ namespace armarx::RemoteGui
                    .addChild(new RemoteGui::HSpacer)
                );
     }
-}
-namespace armarx::RemoteGui::detail::_getValue
-{
-    void GetValueOutputParameter <CartesianWaypointControllerConfig, void>::call(
-        CartesianWaypointControllerConfig& cfg,
-        RemoteGui::ValueMap const& values, std::string const& name)
+
+    void getValue(CartesianWaypointControllerConfig& cfg,
+                  RemoteGui::ValueMap const& values, std::string const& name)
     {
         cfg.maxPositionAcceleration     = getValue<float>(values, name + "_maxAcc_Pos");
         cfg.maxOrientationAcceleration  = getValue<float>(values, name + "_maxAcc_Ori");
diff --git a/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.h b/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.h
index ca43720fa..5f1ff1c43 100644
--- a/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.h
+++ b/source/RobotAPI/libraries/ControllerUIUtility/CartesianWaypointControllerConfig/RemoteGui.h
@@ -31,15 +31,7 @@ namespace armarx::RemoteGui
     detail::GroupBoxBuilder makeConfigGui(
         const std::string& name,
         const CartesianWaypointControllerConfig& val);
-}
 
-namespace armarx::RemoteGui::detail::_getValue
-{
-    template<>
-    struct GetValueOutputParameter <CartesianWaypointControllerConfig, void> : std::true_type
-    {
-        static void call(
-            CartesianWaypointControllerConfig& cfg,
-            RemoteGui::ValueMap const& values, std::string const& name);
-    };
+    void getValue(CartesianWaypointControllerConfig& cfg,
+                  RemoteGui::ValueMap const& values, std::string const& name);
 }
diff --git a/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.cpp b/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.cpp
index fece7f925..c360d51b4 100644
--- a/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.cpp
+++ b/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.cpp
@@ -49,12 +49,9 @@ namespace armarx::RemoteGui
 
         return builder;
     }
-}
-namespace armarx::RemoteGui::detail::_getValue
-{
-    void GetValueOutputParameter <NJointCartesianWaypointControllerRuntimeConfig, void>::call(
-        NJointCartesianWaypointControllerRuntimeConfig& cfg,
-        RemoteGui::ValueMap const& values, std::string const& name)
+
+    void getValue(NJointCartesianWaypointControllerRuntimeConfig& cfg,
+                  RemoteGui::ValueMap const& values, std::string const& name)
     {
         getValue(cfg.wpCfg,          values, name);
         getValue(cfg.forceThreshold, values, name + "_forceThreshold");
diff --git a/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.h b/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.h
index f06371d4f..29f90e3c4 100644
--- a/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.h
+++ b/source/RobotAPI/libraries/ControllerUIUtility/NJointCartesianWaypointControllerConfig/RemoteGui.h
@@ -36,15 +36,7 @@ namespace armarx::RemoteGui
     NJointCartesianWaypointControllerRuntimeConfig getValue<NJointCartesianWaypointControllerRuntimeConfig>(
         ValueMap const& values,
         std::string const& name);
-}
 
-namespace armarx::RemoteGui::detail::_getValue
-{
-    template<>
-    struct GetValueOutputParameter <NJointCartesianWaypointControllerRuntimeConfig, void> : std::true_type
-    {
-        static void call(
-            NJointCartesianWaypointControllerRuntimeConfig& cfg,
-            RemoteGui::ValueMap const& values, std::string const& name);
-    };
+    void getValue(NJointCartesianWaypointControllerRuntimeConfig& cfg,
+                  RemoteGui::ValueMap const& values, std::string const& name);
 }
-- 
GitLab