From 40306c483966bc6df5d0338c352d4fb8068786b4 Mon Sep 17 00:00:00 2001
From: Fabian Peller-Konrad <fabian.peller-konrad@kit.edu>
Date: Thu, 14 Jul 2022 17:24:45 +0200
Subject: [PATCH] added start and stop recording in ice adapter

---
 .../libraries/armem/server/MemoryToIceAdapter.cpp | 15 ++++++++++++++-
 .../libraries/armem/server/MemoryToIceAdapter.h   |  2 ++
 .../armem/server/plugins/ReadWritePluginUser.cpp  | 10 ++++++++++
 3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
index a10a39818..cea0a210f 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
@@ -335,7 +335,6 @@ namespace armarx::armem::server
     data::StoreResult MemoryToIceAdapter::store(const armem::data::StoreInput& input)
     {
         ARMARX_TRACE;
-        ARMARX_CHECK_NOT_NULL(workingMemory);
         ARMARX_CHECK_NOT_NULL(longtermMemory);
 
         data::StoreResult output;
@@ -359,6 +358,20 @@ namespace armarx::armem::server
         return output;
     }
 
+    void MemoryToIceAdapter::startRecording()
+    {
+        ARMARX_TRACE;
+        ARMARX_CHECK_NOT_NULL(longtermMemory);
+        longtermMemory->enabled = true;
+    }
+
+    void MemoryToIceAdapter::stopRecording()
+    {
+        ARMARX_TRACE;
+        ARMARX_CHECK_NOT_NULL(longtermMemory);
+        longtermMemory->enabled = false;
+    }
+
     // PREDICTION
     prediction::data::EngineSupportMap MemoryToIceAdapter::getAvailableEngines()
     {
diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
index 96c1e822d..37fce3278 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.h
@@ -51,6 +51,8 @@ namespace armarx::armem::server
 
         // LTM STORING
         data::StoreResult store(const armem::data::StoreInput& input);
+        void startRecording();
+        void stopRecording();
 
         // PREDICTION
         prediction::data::EngineSupportMap getAvailableEngines();
diff --git a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
index 44454b87d..7f3d87956 100644
--- a/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
+++ b/source/RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.cpp
@@ -67,6 +67,16 @@ namespace armarx::armem::server::plugins
         ARMARX_TRACE;
         return iceAdapter().store(input);
     }
+    void ReadWritePluginUser::startRecording(const Ice::Current&)
+    {
+        ARMARX_TRACE;
+        return iceAdapter().startRecording();
+    }
+    void ReadWritePluginUser::stopRecording(const Ice::Current&)
+    {
+        ARMARX_TRACE;
+        return iceAdapter().stopRecording();
+    }
 
 
     Plugin& ReadWritePluginUser::memoryServerPlugin()
-- 
GitLab