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