From 66455f7493022ebcb2e0ffef5b77e71154e19195 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Tue, 29 Jun 2021 15:57:55 +0200
Subject: [PATCH] Revise ltm properties

---
 .../armem/server/ComponentPlugin.cpp          | 23 +++++++++++--------
 .../libraries/armem/server/ComponentPlugin.h  |  1 +
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
index 41ef71d9d..7b3a1d058 100644
--- a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
@@ -18,13 +18,16 @@ namespace armarx::armem::server::plugins
     void ComponentPlugin::postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties)
     {
         MemoryNameSystemComponentPlugin::postCreatePropertyDefinitions(properties);
-        properties->topic(memoryListener, this->parent<ComponentPluginUser>().memoryListenerDefaultName);
 
-        properties->optional(this->parent<ComponentPluginUser>().longtermMemory.dbsettings.host, "Longtermmemoryhost");
-        properties->optional(this->parent<ComponentPluginUser>().longtermMemory.dbsettings.port, "Longtermmemoryport");
-        properties->optional(this->parent<ComponentPluginUser>().longtermMemory.dbsettings.user, "Longtermmemoryuser");
-        properties->optional(this->parent<ComponentPluginUser>().longtermMemory.dbsettings.password, "Longtermmemorypassword");
-        properties->optional(this->parent<ComponentPluginUser>().longtermMemory.dbsettings.database, "Longtermmemorydatabase");
+        ComponentPluginUser& parent = this->parent<ComponentPluginUser>();
+        properties->topic(memoryListener, parent.memoryListenerDefaultName);
+
+        properties->optional(parent.longtermMemoryEnabled, "ltm.00_enabled");
+        properties->optional(parent.longtermMemory.dbsettings.host, "ltm.10_host");
+        properties->optional(parent.longtermMemory.dbsettings.port, "ltm.11_port");
+        properties->optional(parent.longtermMemory.dbsettings.user, "ltm.20_user");
+        properties->optional(parent.longtermMemory.dbsettings.password, "ltm.21_password");
+        properties->optional(parent.longtermMemory.dbsettings.database, "ltm.22_database");
     }
 
 
@@ -39,7 +42,10 @@ namespace armarx::armem::server::plugins
         parent.iceMemory.setMemoryListener(memoryListener);
 
         // establishing connection to ltm and mongodb
-        parent.longtermMemory.reload();
+        if (parent.longtermMemoryEnabled)
+        {
+            parent.longtermMemory.reload();
+        }
     }
 
 
@@ -145,8 +151,7 @@ namespace armarx::armem::server
     // LTM LOADING
     data::StoreResult ComponentPluginUser::store(const data::StoreInput& input, const Ice::Current&)
     {
-        std::scoped_lock lock(workingMemoryMutex);
-        std::scoped_lock lock2(longtermMemoryMutex);
+        std::scoped_lock lock(workingMemoryMutex, longtermMemoryMutex);
         return iceMemory.store(input);
     }
 
diff --git a/source/RobotAPI/libraries/armem/server/ComponentPlugin.h b/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
index 4ed6c107e..5f9ef1d57 100644
--- a/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/server/ComponentPlugin.h
@@ -100,6 +100,7 @@ namespace armarx::armem::server
         wm::Memory workingMemory;
         std::mutex workingMemoryMutex;
 
+        bool longtermMemoryEnabled = true;
         ltm::Memory longtermMemory;
         std::mutex longtermMemoryMutex;
 
-- 
GitLab