From 7ddf67e6027a9528d0d8f978d4aa57faf4037dcc Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Fri, 16 Jul 2021 08:06:16 +0200
Subject: [PATCH] Move code and includes to .cpp

---
 .../base/BaseQueryProcessorBase.cpp           |  1 +
 .../query_proc/base/BaseQueryProcessorBase.h  |  3 ++
 .../base/CoreSegmentQueryProcessorBase.h      |  8 ++--
 .../workingmemory/BaseQueryProcessor.h        |  7 ++--
 .../CoreSegmentQueryProcessor.cpp             | 23 +++++++++++
 .../workingmemory/CoreSegmentQueryProcessor.h | 24 +++++++-----
 .../workingmemory/EntityQueryProcessor.cpp    | 39 +++++++++++++++++++
 .../workingmemory/EntityQueryProcessor.h      | 32 +++++----------
 .../workingmemory/MemoryQueryProcessor.cpp    |  9 +++++
 .../workingmemory/MemoryQueryProcessor.h      | 15 ++++---
 .../ProviderSegmentQueryProcessor.cpp         | 24 ++++++++++++
 .../ProviderSegmentQueryProcessor.h           | 23 ++++++-----
 12 files changed, 152 insertions(+), 56 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.cpp b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.cpp
index ce437fd67..34e2abd99 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.cpp
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.cpp
@@ -1 +1,2 @@
 #include "BaseQueryProcessorBase.h"
+
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h
index f71aede29..95943dd2f 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h
@@ -19,6 +19,9 @@ namespace armarx::armem::base::query_proc
 
     public:
 
+        virtual ~BaseQueryProcessorBase() = default;
+
+
         DataT process(const QueryT& query, const DataT& data, const query::data::QueryTargets& executeIf = {}) const
         {
             DataT result = data.copyEmpty();
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h b/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h
index f8ab8c113..d334019c4 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h
@@ -1,17 +1,15 @@
 #pragma once
 
-#include <RobotAPI/interface/armem/query.h>
-
-#include "BaseQueryProcessorBase.h"
-#include "ProviderSegmentQueryProcessorBase.h"
-
 #include <regex>
 
 #include <ArmarXCore/core/logging/Logging.h>
 #include <ArmarXCore/core/exceptions/local/ExpressionException.h>
 
+#include <RobotAPI/interface/armem/query.h>
 #include <RobotAPI/libraries/armem/core/error.h>
 
+#include "BaseQueryProcessorBase.h"
+#include "ProviderSegmentQueryProcessorBase.h"
 
 
 namespace armarx::armem::base::query_proc
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.h
index 99811dcc7..708157ab6 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/BaseQueryProcessor.h
@@ -1,11 +1,9 @@
 #pragma once
 
-#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
-
 #include <RobotAPI/interface/armem/query.h>
 #include <RobotAPI/libraries/armem/core/DataMode.h>
 
-#include "../base/BaseQueryProcessorBase.h"
+#include <RobotAPI/libraries/armem/server/query_proc/base/BaseQueryProcessorBase.h>
 
 
 namespace armarx::armem::wm::query_proc
@@ -20,11 +18,14 @@ namespace armarx::armem::wm::query_proc
         using Base = base::query_proc::BaseQueryProcessorBase<DataT, QueryT>;
 
     public:
+
         BaseQueryProcessor(DataMode dataMode = DataMode::WithData) :
             dataMode(dataMode)
         {}
 
     protected:
+
         DataMode dataMode;
+
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp
index afbe35ad1..52efc9cc4 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.cpp
@@ -1 +1,24 @@
 #include "CoreSegmentQueryProcessor.h"
+
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
+
+
+namespace armarx::armem::wm::query_proc
+{
+
+    CoreSegmentQueryProcessor::~CoreSegmentQueryProcessor() = default;
+
+    data::CoreSegment CoreSegmentQueryProcessor::processToIce(const armem::query::data::CoreSegmentQuery& query, const wm::CoreSegment& coreSegment) const
+    {
+        data::CoreSegment data;
+        toIce(data, process(query, coreSegment));
+        return data;
+    }
+
+    ProviderSegment CoreSegmentQueryProcessor::providerSegmentProcessorProcess(const armem::query::data::ProviderSegmentQuerySeq& q, const ProviderSegmentT& s) const
+    {
+        return providerSegmentProcessor.process(q, s, {armem::query::data::QueryTarget::WM});
+    }
+
+
+}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.h
index 390ab66f6..50387e5f1 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/CoreSegmentQueryProcessor.h
@@ -1,8 +1,11 @@
 #pragma once
 
-#include "BaseQueryProcessor.h"
-#include "../base/CoreSegmentQueryProcessorBase.h"
+#include <mutex>
+
+#include <RobotAPI/libraries/armem/core/workingmemory/CoreSegment.h>
+#include <RobotAPI/libraries/armem/server/query_proc/base/CoreSegmentQueryProcessorBase.h>
 
+#include "BaseQueryProcessor.h"
 #include "ProviderSegmentQueryProcessor.h"
 
 
@@ -18,23 +21,24 @@ namespace armarx::armem::wm::query_proc
         using Base = BaseQueryProcessor<wm::CoreSegment, armem::query::data::CoreSegmentQuery>;
 
     public:
+
         CoreSegmentQueryProcessor(DataMode dataMode = DataMode::WithData) :
             Base(dataMode), providerSegmentProcessor(dataMode)
         {}
+        virtual ~CoreSegmentQueryProcessor() override;
 
         using Base::process;
-        data::CoreSegment processToIce(const armem::query::data::CoreSegmentQuery& query, const wm::CoreSegment& coreSegment) const
-        {
-            return toIce<data::CoreSegment>(process(query, coreSegment));
-        }
+        data::CoreSegment processToIce(const armem::query::data::CoreSegmentQuery& query, const wm::CoreSegment& coreSegment) const;
+
 
     protected:
-        virtual ProviderSegmentT providerSegmentProcessorProcess(const armem::query::data::ProviderSegmentQuerySeq& q, const ProviderSegmentT& s) const override
-        {
-            return providerSegmentProcessor.process(q, s, {armem::query::data::QueryTarget::WM});
-        }
+
+        virtual ProviderSegment providerSegmentProcessorProcess(const armem::query::data::ProviderSegmentQuerySeq& q, const ProviderSegmentT& s) const override;
+
 
     private:
+
         ProviderSegmentQueryProcessor providerSegmentProcessor;
+
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.cpp
index c1c321b02..001bedae1 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.cpp
@@ -1 +1,40 @@
 #include "EntityQueryProcessor.h"
+
+#include <RobotAPI/libraries/armem/core/workingmemory/Entity.h>
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
+
+
+namespace armarx::armem::wm::query_proc
+{
+
+    EntityQueryProcessor::~EntityQueryProcessor() = default;
+
+
+    void EntityQueryProcessor::addResultSnapshot(wm::Entity& result, const wm::EntitySnapshot& snapshot) const
+    {
+        bool withData = (dataMode == DataMode::WithData);
+        if (withData)
+        {
+            result.addSnapshot(snapshot.copy());
+        }
+        else
+        {
+            result.addSnapshot(snapshot.copyWithoutData());
+        }
+    }
+
+
+    data::Entity EntityQueryProcessor::processToIce(const armem::query::data::EntityQuery& query, const wm::Entity& entity) const
+    {
+        data::Entity data;
+        toIce(data, process(query, entity));
+        return data;
+    }
+
+
+    void EntityQueryProcessor::addResultSnapshot(wm::Entity& result, wm::Entity::ContainerT::const_iterator it) const
+    {
+        addResultSnapshot(result, it->second);
+    }
+
+}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.h
index 94dc905e4..34f66237e 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/EntityQueryProcessor.h
@@ -1,9 +1,10 @@
 #pragma once
 
+#include <RobotAPI/libraries/armem/core/workingmemory/Entity.h>
+#include <RobotAPI/libraries/armem/server/query_proc/base/EntityQueryProcessorBase.h>
+
 #include "BaseQueryProcessor.h"
-#include "../base/EntityQueryProcessorBase.h"
 
-#include "EntityQueryProcessor.h"
 
 namespace armarx::armem::wm::query_proc
 {
@@ -17,33 +18,18 @@ namespace armarx::armem::wm::query_proc
         using Base = BaseQueryProcessor<wm::Entity, armem::query::data::EntityQuery>;
 
     public:
+
         EntityQueryProcessor(DataMode dataMode = DataMode::WithData) :
             Base(dataMode)
         {}
+        virtual ~EntityQueryProcessor() override;
 
-        data::Entity processToIce(const armem::query::data::EntityQuery& query, const wm::Entity& entity) const
-        {
-            return toIce<data::Entity>(process(query, entity));
-        }
+        data::Entity processToIce(const armem::query::data::EntityQuery& query, const wm::Entity& entity) const;
 
     private:
-        void addResultSnapshot(wm::Entity& result, wm::Entity::ContainerT::const_iterator it) const override
-        {
-            addResultSnapshot(result, it->second);
-        }
-
-        void addResultSnapshot(wm::Entity& result, const wm::EntitySnapshot& snapshot) const override
-        {
-            bool withData = (dataMode == DataMode::WithData);
-            if (withData)
-            {
-                result.addSnapshot(snapshot.copy());
-            }
-            else
-            {
-                result.addSnapshot(snapshot.copyWithoutData());
-            }
-        }
+
+        void addResultSnapshot(wm::Entity& result, wm::Entity::ContainerT::const_iterator it) const override;
+        void addResultSnapshot(wm::Entity& result, const wm::EntitySnapshot& snapshot) const override;
 
     };
 
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.cpp
index 69b04de6c..cb8d94789 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.cpp
@@ -1 +1,10 @@
 #include "MemoryQueryProcessor.h"
+
+
+namespace armarx::armem::wm::query_proc
+{
+    CoreSegment MemoryQueryProcessor::coreSegmentProcessorProcess(const armem::query::data::CoreSegmentQuerySeq& q, const CoreSegmentT& s) const
+    {
+        return coreSegmentProcessor.process(q, s, {armem::query::data::QueryTarget::WM});
+    }
+}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.h
index 8284df202..674b9ede6 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/MemoryQueryProcessor.h
@@ -1,10 +1,13 @@
 #pragma once
 
+#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
+#include <RobotAPI/libraries/armem/server/query_proc/base/MemoryQueryProcessorBase.h>
+
 #include "BaseQueryProcessor.h"
-#include "../base/MemoryQueryProcessorBase.h"
 
 #include "CoreSegmentQueryProcessor.h"
 
+
 namespace armarx::armem::wm::query_proc
 {
     /**
@@ -17,18 +20,20 @@ namespace armarx::armem::wm::query_proc
         using Base = BaseQueryProcessor<wm::Memory, armem::query::data::MemoryQuery>;
 
     public:
+
         MemoryQueryProcessor(DataMode dataMode = DataMode::WithData) :
             Base(dataMode), coreSegmentProcessor(dataMode)
         {}
 
+
     protected:
-        virtual CoreSegmentT coreSegmentProcessorProcess(const armem::query::data::CoreSegmentQuerySeq& q, const CoreSegmentT& s) const override
-        {
-            return coreSegmentProcessor.process(q, s, {armem::query::data::QueryTarget::WM});
-        }
+
+        virtual CoreSegment coreSegmentProcessorProcess(const armem::query::data::CoreSegmentQuerySeq& q, const CoreSegment& s) const override;
 
 
     private:
+
         CoreSegmentQueryProcessor coreSegmentProcessor;
+
     };
 }
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp
index 9a2a44050..84189bf2b 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.cpp
@@ -1 +1,25 @@
 #include "ProviderSegmentQueryProcessor.h"
+
+#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
+
+
+namespace armarx::armem::wm::query_proc
+{
+
+    ProviderSegmentQueryProcessor::~ProviderSegmentQueryProcessor() = default;
+
+
+    data::ProviderSegment ProviderSegmentQueryProcessor::processToIce(const armem::query::data::ProviderSegmentQuery& query, const wm::ProviderSegment& providerSegment) const
+    {
+        data::ProviderSegment data;
+        toIce(data, process(query, providerSegment));
+        return data;
+    }
+
+
+    Entity ProviderSegmentQueryProcessor::entityProcessorProcess(const armem::query::data::EntityQuerySeq& q, const Entity& s) const
+    {
+        return entityProcessor.process(q, s, {armem::query::data::QueryTarget::WM});
+    }
+
+}
diff --git a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h
index 468138d9e..adb921d02 100644
--- a/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h
+++ b/source/RobotAPI/libraries/armem/server/query_proc/workingmemory/ProviderSegmentQueryProcessor.h
@@ -1,10 +1,12 @@
 #pragma once
 
-#include "BaseQueryProcessor.h"
-#include "../base/ProviderSegmentQueryProcessorBase.h"
+#include <RobotAPI/libraries/armem/core/workingmemory/ProviderSegment.h>
+#include <RobotAPI/libraries/armem/server/query_proc/base/ProviderSegmentQueryProcessorBase.h>
 
+#include "BaseQueryProcessor.h"
 #include "EntityQueryProcessor.h"
 
+
 namespace armarx::armem::wm::query_proc
 {
     /**
@@ -17,23 +19,24 @@ namespace armarx::armem::wm::query_proc
         using Base = BaseQueryProcessor<wm::ProviderSegment, armem::query::data::ProviderSegmentQuery>;
 
     public:
+
         ProviderSegmentQueryProcessor(DataMode dataMode = DataMode::WithData) :
             Base(dataMode), entityProcessor(dataMode)
         {}
+        virtual ~ProviderSegmentQueryProcessor() override;
+
 
         using Base::process;
-        data::ProviderSegment processToIce(const armem::query::data::ProviderSegmentQuery& query, const wm::ProviderSegment& providerSegment) const
-        {
-            return toIce<data::ProviderSegment>(process(query, providerSegment));
-        }
+        data::ProviderSegment processToIce(const armem::query::data::ProviderSegmentQuery& query, const wm::ProviderSegment& providerSegment) const;
+
 
     protected:
-        virtual EntityT entityProcessorProcess(const armem::query::data::EntityQuerySeq& q, const EntityT& s) const override
-        {
-            return entityProcessor.process(q, s, {armem::query::data::QueryTarget::WM});
-        }
+
+        virtual Entity entityProcessorProcess(const armem::query::data::EntityQuerySeq& q, const Entity& s) const override;
 
     private:
+
         EntityQueryProcessor entityProcessor;
+
     };
 }
-- 
GitLab