From e7e4c204872f1716b2b2026873276fa1c7e270b9 Mon Sep 17 00:00:00 2001
From: Fabian Paus <fabian.paus@kit.edu>
Date: Thu, 21 Apr 2022 09:53:55 +0200
Subject: [PATCH] Optimize includes for some files

---
 .../RobotUnit/ControlTargets/ControlTargetBase.h      |  3 +--
 .../RobotAPI/components/units/RobotUnit/RobotUnit.h   |  5 ++++-
 .../RobotUnitModules/RobotUnitModulePublisher.cpp     | 11 ++---------
 .../RobotUnitModules/RobotUnitModulePublisher.h       |  5 -----
 .../units/RobotUnit/SensorValues/SensorValueBase.h    |  7 +++----
 .../RobotUnit/util/introspection/DataFieldsInfo.h     |  1 -
 6 files changed, 10 insertions(+), 22 deletions(-)

diff --git a/source/RobotAPI/components/units/RobotUnit/ControlTargets/ControlTargetBase.h b/source/RobotAPI/components/units/RobotUnit/ControlTargets/ControlTargetBase.h
index d99710444..cf19d2b9f 100644
--- a/source/RobotAPI/components/units/RobotUnit/ControlTargets/ControlTargetBase.h
+++ b/source/RobotAPI/components/units/RobotUnit/ControlTargets/ControlTargetBase.h
@@ -26,8 +26,7 @@
 #include <RobotAPI/components/units/RobotUnit//util/HeterogenousContinuousContainerMacros.h>
 #include <RobotAPI/components/units/RobotUnit/ControlModes.h>
 
-//#include <ArmarXCore/interface/observers/VariantBase.h>
-
+#include <IceUtil/Time.h>
 #include <Ice/Handle.h>
 
 #include <memory>
diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnit.h b/source/RobotAPI/components/units/RobotUnit/RobotUnit.h
index c2b35013a..22ffd80ae 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnit.h
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnit.h
@@ -23,7 +23,10 @@
 #pragma once
 
 #include "RobotUnitModules/RobotUnitModules.h"
-//#include "NJointControllers/NJointControllerBase.h"
+
+// This include is not necessary but a lot of other files rely on it being included here
+// Can be removed if other files include what they use
+#include "NJointControllers/NJointControllerBase.h"
 
 /**
 * @defgroup Library-RobotUnit RobotUnit
diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.cpp b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.cpp
index 4e38d6ab3..c07f2d42c 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.cpp
@@ -129,13 +129,6 @@ namespace armarx::RobotUnitModule
 
 namespace armarx::RobotUnitModule
 {
-    const std::map<std::string, NJointControllerBasePtr>& Publisher::getNJointControllers()
-    {
-        ARMARX_TRACE;
-        throwIfInControlThread(BOOST_CURRENT_FUNCTION);
-        return ControllerManagementAttorneyForPublisher::GetNJointControllers(this);
-    }
-
     TimedVariantPtr Publisher::publishNJointClassNames()
     {
         ARMARX_TRACE;
@@ -172,7 +165,7 @@ namespace armarx::RobotUnitModule
         auto debugDrawerBatchPrx = debugDrawerPrx->ice_batchOneway();
         auto debugObserverBatchPrx = debugObserverPrx->ice_batchOneway();
         NJointControllerStatusSeq allStatus;
-        for (const auto& pair : getNJointControllers())
+        for (const auto& pair : ControllerManagementAttorneyForPublisher::GetNJointControllers(this))
         {
             const auto begInner = TimeUtil::GetTime(true);
             const NJointControllerBasePtr& nJointCtrl = pair.second;
@@ -495,7 +488,7 @@ namespace armarx::RobotUnitModule
             std::this_thread::sleep_for(std::chrono::milliseconds {100});
             ARMARX_DEBUG << "shutting down publisher task done";
         }
-        for (const auto& pair : getNJointControllers())
+        for (const auto& pair : ControllerManagementAttorneyForPublisher::GetNJointControllers(this))
         {
             ARMARX_DEBUG << "forcing deactivation of publishing for " << pair.first;
             NJointControllerAttorneyForPublisher::DeactivatePublishing(pair.second, debugDrawerPrx, debugObserverPrx);
diff --git a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.h b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.h
index 5844b7ba9..9b68b4c7a 100644
--- a/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.h
+++ b/source/RobotAPI/components/units/RobotUnit/RobotUnitModules/RobotUnitModulePublisher.h
@@ -164,11 +164,6 @@ namespace armarx::RobotUnitModule
         // //////////////////////////////////// implementation //////////////////////////////////// //
         // //////////////////////////////////////////////////////////////////////////////////////// //
     private:
-        /**
-         * @brief Returns a map containing all current NJointControllers.
-         * @return A map containing all current NJointControllers.
-         */
-        const std::map<std::string, NJointControllerBasePtr>& getNJointControllers();
         /**
          * @brief Returns the used RobotUnitObserver
          * @return The used RobotUnitObserver
diff --git a/source/RobotAPI/components/units/RobotUnit/SensorValues/SensorValueBase.h b/source/RobotAPI/components/units/RobotUnit/SensorValues/SensorValueBase.h
index 7afa43be2..021ab483d 100644
--- a/source/RobotAPI/components/units/RobotUnit/SensorValues/SensorValueBase.h
+++ b/source/RobotAPI/components/units/RobotUnit/SensorValues/SensorValueBase.h
@@ -26,11 +26,10 @@
 #include <string>
 #include <map>
 
-#include <ArmarXCore/observers/variant/TimedVariant.h>
+#include <ArmarXCore/util/CPPUtility/TemplateMetaProgramming.h>
 
-#include "../util/HeterogenousContinuousContainerMacros.h"
-
-#include "../util.h"
+#include <RobotAPI/components/units/RobotUnit/util/introspection/ClassMemberInfo.h>
+#include <RobotAPI/components/units/RobotUnit/util/HeterogenousContinuousContainerMacros.h>
 
 namespace armarx
 {
diff --git a/source/RobotAPI/components/units/RobotUnit/util/introspection/DataFieldsInfo.h b/source/RobotAPI/components/units/RobotUnit/util/introspection/DataFieldsInfo.h
index 29fb78830..34f53f637 100644
--- a/source/RobotAPI/components/units/RobotUnit/util/introspection/DataFieldsInfo.h
+++ b/source/RobotAPI/components/units/RobotUnit/util/introspection/DataFieldsInfo.h
@@ -25,7 +25,6 @@
 
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 #include <ArmarXCore/util/CPPUtility/trace.h>
-#include <ArmarXCore/core/util/StringHelpers.h>
 #include <ArmarXCore/observers/variant/TimedVariant.h>
 #include <ArmarXCore/interface/observers/VariantBase.h>
 
-- 
GitLab