From 89c3d739b73dc5f1fb256bf47570a121e1bc6bc9 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Tue, 30 Nov 2021 16:08:31 +0100
Subject: [PATCH] Split armem_server from armem

---
 .../RobotAPI/libraries/armem/CMakeLists.txt   | 165 +--------------
 .../libraries/armem/server/CMakeLists.txt     | 194 ++++++++++++++++++
 .../{ => server}/test/ArMemLTMBenchmark.cpp   |   0
 .../armem/{ => server}/test/ArMemLTMTest.cpp  |   0
 .../{ => server}/test/ArMemMemoryTest.cpp     |   0
 .../{ => server}/test/ArMemQueryTest.cpp      |   0
 .../armem/server/test/CMakeLists.txt          |   8 +
 .../libraries/armem/test/CMakeLists.txt       |   4 -
 8 files changed, 206 insertions(+), 165 deletions(-)
 create mode 100644 source/RobotAPI/libraries/armem/server/CMakeLists.txt
 rename source/RobotAPI/libraries/armem/{ => server}/test/ArMemLTMBenchmark.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ => server}/test/ArMemLTMTest.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ => server}/test/ArMemMemoryTest.cpp (100%)
 rename source/RobotAPI/libraries/armem/{ => server}/test/ArMemQueryTest.cpp (100%)
 create mode 100644 source/RobotAPI/libraries/armem/server/test/CMakeLists.txt

diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt
index 18ddb3492..ba231f670 100644
--- a/source/RobotAPI/libraries/armem/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem/CMakeLists.txt
@@ -3,26 +3,12 @@ set(LIB_NAME armem)
 armarx_component_set_name("${LIB_NAME}")
 armarx_set_target("Library: ${LIB_NAME}")
 
-SET(INSTALL_SCRIPT_MSG
-    "Please use the installation script in RobotAPI/etc/mongocxx to install libmongocxx and libbsoncxx."
-)
-
-find_package(libmongocxx QUIET)
-armarx_build_if(libmongocxx_FOUND "libmongocxx not available. ${INSTALL_SCRIPT_MSG}")
-find_package(libbsoncxx QUIET)
-armarx_build_if(libbsoncxx_FOUND "libbsoncxx not available. ${INSTALL_SCRIPT_MSG}")
-
 
 set(LIBS
-    ArmarXCoreInterfaces ArmarXCore
+    ArmarXCoreInterfaces
+    ArmarXCore
     RemoteGui
     aron
-
-    # Needed for LTM
-    RobotAPI::aron::converter::json
-    RobotAPI::aron::converter::opencv
-    ${LIBMONGOCXX_LIBRARIES}
-    ${LIBBSONCXX_LIBRARIES}
 )
 
 set(LIB_FILES
@@ -79,74 +65,6 @@ set(LIB_FILES
     client/query/Builder.cpp
     client/query/selectors.cpp
 
-
-    server/MemoryToIceAdapter.cpp
-    server/MemoryRemoteGui.cpp
-    server/RemoteGuiAronDataVisitor.cpp
-
-    server/ltm/base/detail/MemoryItem.cpp
-    server/ltm/base/detail/MemoryBase.cpp
-    server/ltm/base/detail/BufferedMemoryBase.cpp
-    server/ltm/base/detail/LUTMemoryBase.cpp
-    server/ltm/base/detail/CoreSegmentBase.cpp
-    server/ltm/base/detail/ProviderSegmentBase.cpp
-    server/ltm/base/detail/EntityBase.cpp
-    server/ltm/base/detail/EntitySnapshotBase.cpp
-
-    server/ltm/base/filter/Filter.cpp
-    server/ltm/base/filter/frequencyFilter/FrequencyFilter.cpp
-
-    server/ltm/base/extractor/Extractor.cpp
-    server/ltm/base/extractor/imageExtractor/ImageExtractor.cpp
-    server/ltm/base/extractor/noExtractor/NoExtractor.cpp
-
-    server/ltm/base/converter/dict/Converter.cpp
-    server/ltm/base/converter/dict/json/JsonConverter.cpp
-    server/ltm/base/converter/dict/bson/BsonConverter.cpp
-    server/ltm/base/converter/image/Converter.cpp
-    server/ltm/base/converter/image/png/PngConverter.cpp
-
-    server/ltm/base/forgetter/Forgetter.cpp
-    server/ltm/base/forgetter/LRUForgetter/LRUForgetter.cpp
-
-    server/ltm/disk/detail/Data.cpp
-    server/ltm/disk/detail/DiskStorage.cpp
-    server/ltm/disk/Memory.cpp
-    server/ltm/disk/CoreSegment.cpp
-    server/ltm/disk/ProviderSegment.cpp
-    server/ltm/disk/Entity.cpp
-    server/ltm/disk/EntitySnapshot.cpp
-
-    server/wm/memory_definitions.cpp
-    server/wm/ice_conversions.cpp
-    server/wm/detail/MaxHistorySize.cpp
-
-    server/plugins/Plugin.cpp
-    server/plugins/ReadOnlyPluginUser.cpp
-    server/plugins/ReadWritePluginUser.cpp
-
-    server/segment/Segment.cpp
-    server/segment/SpecializedSegment.cpp
-
-    server/query_proc/base/BaseQueryProcessorBase.cpp
-    server/query_proc/base/EntityQueryProcessorBase.cpp
-    server/query_proc/base/ProviderSegmentQueryProcessorBase.cpp
-    server/query_proc/base/CoreSegmentQueryProcessorBase.cpp
-    server/query_proc/base/MemoryQueryProcessorBase.cpp
-
-    server/query_proc/ltm/detail/EntityQueryProcessorBase.cpp
-    server/query_proc/ltm/detail/ProviderSegmentQueryProcessorBase.cpp
-    server/query_proc/ltm/detail/CoreSegmentQueryProcessorBase.cpp
-    server/query_proc/ltm/detail/MemoryQueryProcessorBase.cpp
-    server/query_proc/ltm/disk/ltm.cpp
-
-    server/query_proc/wm/detail/EntityQueryProcessorBase.cpp
-    server/query_proc/wm/detail/ProviderSegmentQueryProcessorBase.cpp
-    server/query_proc/wm/detail/CoreSegmentQueryProcessorBase.cpp
-    server/query_proc/wm/detail/MemoryQueryProcessorBase.cpp
-    server/query_proc/wm/wm.cpp
-
-
     mns/MemoryNameSystem.cpp
     mns/Registry.cpp
     mns/plugins/Plugin.cpp
@@ -225,81 +143,7 @@ set(LIB_HEADERS
     client/util/SimpleReaderBase.h
     client/util/SimpleWriterBase.h
 
-
     server.h
-    server/forward_declarations.h
-
-    server/MemoryToIceAdapter.h
-    server/MemoryRemoteGui.h
-    server/RemoteGuiAronDataVisitor.h
-
-    server/ltm/base/detail/MemoryItem.h
-    server/ltm/base/detail/MemoryBase.h
-    server/ltm/base/detail/BufferedMemoryBase.h
-    server/ltm/base/detail/LUTMemoryBase.h
-    server/ltm/base/detail/CoreSegmentBase.h
-    server/ltm/base/detail/ProviderSegmentBase.h
-    server/ltm/base/detail/EntityBase.h
-    server/ltm/base/detail/EntitySnapshotBase.h
-
-    server/ltm/base/filter/Filter.h
-    server/ltm/base/filter/frequencyFilter/FrequencyFilter.h
-
-    server/ltm/base/extractor/Extractor.h
-    server/ltm/base/extractor/imageExtractor/ImageExtractor.h
-    server/ltm/base/extractor/noExtractor/NoExtractor.h
-
-    server/ltm/base/converter/dict/Converter.h
-    server/ltm/base/converter/dict/json/JsonConverter.h
-    server/ltm/base/converter/dict/bson/BsonConverter.h
-    server/ltm/base/converter/image/Converter.h
-    server/ltm/base/converter/image/png/PngConverter.h
-
-
-    server/ltm/base/forgetter/Forgetter.h
-    server/ltm/base/forgetter/LRUForgetter/LRUForgetter.h
-
-    server/ltm/disk/detail/Data.h
-    server/ltm/disk/detail/DiskStorage.h
-    server/ltm/disk/Memory.h
-    server/ltm/disk/CoreSegment.h
-    server/ltm/disk/ProviderSegment.h
-    server/ltm/disk/Entity.h
-    server/ltm/disk/EntitySnapshot.h
-
-    server/wm/memory_definitions.h
-    server/wm/ice_conversions.h
-    server/wm/detail/MaxHistorySize.h
-
-    server/plugins.h
-    server/plugins/Plugin.h
-    server/plugins/ReadOnlyPluginUser.h
-    server/plugins/ReadWritePluginUser.h
-
-    server/segment/Segment.h
-    server/segment/SpecializedSegment.h
-
-    server/query_proc.h
-
-    server/query_proc/base.h
-    server/query_proc/base/BaseQueryProcessorBase.h
-    server/query_proc/base/EntityQueryProcessorBase.h
-    server/query_proc/base/ProviderSegmentQueryProcessorBase.h
-    server/query_proc/base/CoreSegmentQueryProcessorBase.h
-    server/query_proc/base/MemoryQueryProcessorBase.h
-
-    server/query_proc/ltm/detail/EntityQueryProcessorBase.h
-    server/query_proc/ltm/detail/ProviderSegmentQueryProcessorBase.h
-    server/query_proc/ltm/detail/CoreSegmentQueryProcessorBase.h
-    server/query_proc/ltm/detail/MemoryQueryProcessorBase.h
-    server/query_proc/ltm/disk/ltm.h
-
-    server/query_proc/wm/detail/EntityQueryProcessorBase.h
-    server/query_proc/wm/detail/ProviderSegmentQueryProcessorBase.h
-    server/query_proc/wm/detail/CoreSegmentQueryProcessorBase.h
-    server/query_proc/wm/detail/MemoryQueryProcessorBase.h
-    server/query_proc/wm/wm.h
-
 
     mns.h
     mns/MemoryNameSystem.h
@@ -327,8 +171,7 @@ armarx_add_library(
 add_library(RobotAPI::armem ALIAS "${LIB_NAME}")
 add_library(RobotAPI::ArMem ALIAS "${LIB_NAME}")
 
-target_include_directories("${LIB_NAME}" PUBLIC ${LIBMONGOCXX_INCLUDE_DIRS})
-target_include_directories("${LIB_NAME}" PUBLIC ${LIBBSONCXX_INCLUDE_DIRS})
-
 # add unit tests
 add_subdirectory(test)
+
+add_subdirectory(server)
diff --git a/source/RobotAPI/libraries/armem/server/CMakeLists.txt b/source/RobotAPI/libraries/armem/server/CMakeLists.txt
new file mode 100644
index 000000000..cf30a41d1
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/server/CMakeLists.txt
@@ -0,0 +1,194 @@
+set(LIB_NAME armem_server)
+
+armarx_component_set_name("${LIB_NAME}")
+armarx_set_target("Library: ${LIB_NAME}")
+
+SET(INSTALL_SCRIPT_MSG
+    "Please use the installation script in RobotAPI/etc/mongocxx to install libmongocxx and libbsoncxx."
+)
+
+find_package(libmongocxx QUIET)
+armarx_build_if(libmongocxx_FOUND "libmongocxx not available. ${INSTALL_SCRIPT_MSG}")
+find_package(libbsoncxx QUIET)
+armarx_build_if(libbsoncxx_FOUND "libbsoncxx not available. ${INSTALL_SCRIPT_MSG}")
+
+
+set(LIBS
+    ArmarXCoreInterfaces
+    ArmarXCore
+    RemoteGui
+    aron
+    armem
+
+    # Needed for LTM
+    RobotAPI::aron::converter::json
+    RobotAPI::aron::converter::opencv
+    ${LIBMONGOCXX_LIBRARIES}
+    ${LIBBSONCXX_LIBRARIES}
+)
+
+set(LIB_FILES
+    MemoryToIceAdapter.cpp
+    MemoryRemoteGui.cpp
+    RemoteGuiAronDataVisitor.cpp
+
+    ltm/base/detail/MemoryItem.cpp
+    ltm/base/detail/MemoryBase.cpp
+    ltm/base/detail/BufferedMemoryBase.cpp
+    ltm/base/detail/LUTMemoryBase.cpp
+    ltm/base/detail/CoreSegmentBase.cpp
+    ltm/base/detail/ProviderSegmentBase.cpp
+    ltm/base/detail/EntityBase.cpp
+    ltm/base/detail/EntitySnapshotBase.cpp
+
+    ltm/base/filter/Filter.cpp
+    ltm/base/filter/frequencyFilter/FrequencyFilter.cpp
+
+    ltm/base/extractor/Extractor.cpp
+    ltm/base/extractor/imageExtractor/ImageExtractor.cpp
+    ltm/base/extractor/noExtractor/NoExtractor.cpp
+
+    ltm/base/converter/dict/Converter.cpp
+    ltm/base/converter/dict/json/JsonConverter.cpp
+    ltm/base/converter/dict/bson/BsonConverter.cpp
+    ltm/base/converter/image/Converter.cpp
+    ltm/base/converter/image/png/PngConverter.cpp
+
+    ltm/base/forgetter/Forgetter.cpp
+    ltm/base/forgetter/LRUForgetter/LRUForgetter.cpp
+
+    ltm/disk/detail/Data.cpp
+    ltm/disk/detail/DiskStorage.cpp
+    ltm/disk/Memory.cpp
+    ltm/disk/CoreSegment.cpp
+    ltm/disk/ProviderSegment.cpp
+    ltm/disk/Entity.cpp
+    ltm/disk/EntitySnapshot.cpp
+
+    wm/memory_definitions.cpp
+    wm/ice_conversions.cpp
+    wm/detail/MaxHistorySize.cpp
+
+    plugins/Plugin.cpp
+    plugins/ReadOnlyPluginUser.cpp
+    plugins/ReadWritePluginUser.cpp
+
+    segment/Segment.cpp
+    segment/SpecializedSegment.cpp
+
+    query_proc/base/BaseQueryProcessorBase.cpp
+    query_proc/base/EntityQueryProcessorBase.cpp
+    query_proc/base/ProviderSegmentQueryProcessorBase.cpp
+    query_proc/base/CoreSegmentQueryProcessorBase.cpp
+    query_proc/base/MemoryQueryProcessorBase.cpp
+
+    query_proc/ltm/detail/EntityQueryProcessorBase.cpp
+    query_proc/ltm/detail/ProviderSegmentQueryProcessorBase.cpp
+    query_proc/ltm/detail/CoreSegmentQueryProcessorBase.cpp
+    query_proc/ltm/detail/MemoryQueryProcessorBase.cpp
+    query_proc/ltm/disk/ltm.cpp
+
+    query_proc/wm/detail/EntityQueryProcessorBase.cpp
+    query_proc/wm/detail/ProviderSegmentQueryProcessorBase.cpp
+    query_proc/wm/detail/CoreSegmentQueryProcessorBase.cpp
+    query_proc/wm/detail/MemoryQueryProcessorBase.cpp
+    query_proc/wm/wm.cpp
+)
+
+set(LIB_HEADERS
+    forward_declarations.h
+
+    MemoryToIceAdapter.h
+    MemoryRemoteGui.h
+    RemoteGuiAronDataVisitor.h
+
+    ltm/base/detail/MemoryItem.h
+    ltm/base/detail/MemoryBase.h
+    ltm/base/detail/BufferedMemoryBase.h
+    ltm/base/detail/LUTMemoryBase.h
+    ltm/base/detail/CoreSegmentBase.h
+    ltm/base/detail/ProviderSegmentBase.h
+    ltm/base/detail/EntityBase.h
+    ltm/base/detail/EntitySnapshotBase.h
+
+    ltm/base/filter/Filter.h
+    ltm/base/filter/frequencyFilter/FrequencyFilter.h
+
+    ltm/base/extractor/Extractor.h
+    ltm/base/extractor/imageExtractor/ImageExtractor.h
+    ltm/base/extractor/noExtractor/NoExtractor.h
+
+    ltm/base/converter/dict/Converter.h
+    ltm/base/converter/dict/json/JsonConverter.h
+    ltm/base/converter/dict/bson/BsonConverter.h
+    ltm/base/converter/image/Converter.h
+    ltm/base/converter/image/png/PngConverter.h
+
+
+    ltm/base/forgetter/Forgetter.h
+    ltm/base/forgetter/LRUForgetter/LRUForgetter.h
+
+    ltm/disk/detail/Data.h
+    ltm/disk/detail/DiskStorage.h
+    ltm/disk/Memory.h
+    ltm/disk/CoreSegment.h
+    ltm/disk/ProviderSegment.h
+    ltm/disk/Entity.h
+    ltm/disk/EntitySnapshot.h
+
+    wm/memory_definitions.h
+    wm/ice_conversions.h
+    wm/detail/MaxHistorySize.h
+
+    plugins.h
+    plugins/Plugin.h
+    plugins/ReadOnlyPluginUser.h
+    plugins/ReadWritePluginUser.h
+
+    segment/Segment.h
+    segment/SpecializedSegment.h
+
+    query_proc.h
+
+    query_proc/base.h
+    query_proc/base/BaseQueryProcessorBase.h
+    query_proc/base/EntityQueryProcessorBase.h
+    query_proc/base/ProviderSegmentQueryProcessorBase.h
+    query_proc/base/CoreSegmentQueryProcessorBase.h
+    query_proc/base/MemoryQueryProcessorBase.h
+
+    query_proc/ltm/detail/EntityQueryProcessorBase.h
+    query_proc/ltm/detail/ProviderSegmentQueryProcessorBase.h
+    query_proc/ltm/detail/CoreSegmentQueryProcessorBase.h
+    query_proc/ltm/detail/MemoryQueryProcessorBase.h
+    query_proc/ltm/disk/ltm.h
+
+    query_proc/wm/detail/EntityQueryProcessorBase.h
+    query_proc/wm/detail/ProviderSegmentQueryProcessorBase.h
+    query_proc/wm/detail/CoreSegmentQueryProcessorBase.h
+    query_proc/wm/detail/MemoryQueryProcessorBase.h
+    query_proc/wm/wm.h
+)
+
+# Clear variable set by CMakeLists.txt in parent directory.
+set(ARON_FILES "")
+
+armarx_add_library(
+    LIB_NAME
+        "${LIB_NAME}"
+    SOURCES
+        "${LIB_FILES}"
+    HEADERS
+        "${LIB_HEADERS}"
+    LIBS
+        "${LIBS}"
+)
+
+
+add_library(RobotAPI::armem_server ALIAS "${LIB_NAME}")
+
+target_include_directories("${LIB_NAME}" PUBLIC ${LIBMONGOCXX_INCLUDE_DIRS})
+target_include_directories("${LIB_NAME}" PUBLIC ${LIBBSONCXX_INCLUDE_DIRS})
+
+# add unit tests
+add_subdirectory(test)
diff --git a/source/RobotAPI/libraries/armem/test/ArMemLTMBenchmark.cpp b/source/RobotAPI/libraries/armem/server/test/ArMemLTMBenchmark.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/test/ArMemLTMBenchmark.cpp
rename to source/RobotAPI/libraries/armem/server/test/ArMemLTMBenchmark.cpp
diff --git a/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp b/source/RobotAPI/libraries/armem/server/test/ArMemLTMTest.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
rename to source/RobotAPI/libraries/armem/server/test/ArMemLTMTest.cpp
diff --git a/source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp b/source/RobotAPI/libraries/armem/server/test/ArMemMemoryTest.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/test/ArMemMemoryTest.cpp
rename to source/RobotAPI/libraries/armem/server/test/ArMemMemoryTest.cpp
diff --git a/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp b/source/RobotAPI/libraries/armem/server/test/ArMemQueryTest.cpp
similarity index 100%
rename from source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
rename to source/RobotAPI/libraries/armem/server/test/ArMemQueryTest.cpp
diff --git a/source/RobotAPI/libraries/armem/server/test/CMakeLists.txt b/source/RobotAPI/libraries/armem/server/test/CMakeLists.txt
new file mode 100644
index 000000000..c8f646815
--- /dev/null
+++ b/source/RobotAPI/libraries/armem/server/test/CMakeLists.txt
@@ -0,0 +1,8 @@
+
+# Libs required for the tests
+SET(LIBS ${LIBS} ArmarXCore ${LIB_NAME})
+
+armarx_add_test(ArMemLTMTest ArMemLTMTest.cpp "${LIBS}")
+armarx_add_test(ArMemLTMBenchmark ArMemLTMBenchmark.cpp "${LIBS}")
+armarx_add_test(ArMemMemoryTest ArMemMemoryTest.cpp "${LIBS}")
+armarx_add_test(ArMemQueryTest ArMemQueryTest.cpp "${LIBS}")
diff --git a/source/RobotAPI/libraries/armem/test/CMakeLists.txt b/source/RobotAPI/libraries/armem/test/CMakeLists.txt
index a80618cee..592b9aef3 100644
--- a/source/RobotAPI/libraries/armem/test/CMakeLists.txt
+++ b/source/RobotAPI/libraries/armem/test/CMakeLists.txt
@@ -5,9 +5,5 @@ SET(LIBS ${LIBS} ArmarXCore ${LIB_NAME})
 armarx_add_test(ArMemForEachTest ArMemForEachTest.cpp "${LIBS}")
 armarx_add_test(ArMemGetFindTest ArMemGetFindTest.cpp "${LIBS}")
 armarx_add_test(ArMemIceConversionsTest ArMemIceConversionsTest.cpp "${LIBS}")
-armarx_add_test(ArMemLTMTest ArMemLTMTest.cpp "${LIBS}")
-armarx_add_test(ArMemLTMBenchmark ArMemLTMBenchmark.cpp "${LIBS}")
-armarx_add_test(ArMemMemoryTest ArMemMemoryTest.cpp "${LIBS}")
 armarx_add_test(ArMemMemoryIDTest ArMemMemoryIDTest.cpp "${LIBS}")
 armarx_add_test(ArMemQueryBuilderTest ArMemQueryBuilderTest.cpp "${LIBS}")
-armarx_add_test(ArMemQueryTest ArMemQueryTest.cpp "${LIBS}")
-- 
GitLab