From 4158af318e8d3dcc09406f4d0d6ba191de4d2330 Mon Sep 17 00:00:00 2001
From: Joana <joana.plewnia@kit.edu>
Date: Tue, 30 Jul 2024 17:36:58 +0200
Subject: [PATCH] fix for CoreSegment-Memory IDs

---
 .../RobotAPI/libraries/armem/server/ltm/Memory.cpp  | 13 +++++--------
 .../server/ltm/detail/mixins/util/filesystem.cpp    | 12 ++++++++++++
 .../server/ltm/detail/mixins/util/filesystem.h      |  2 ++
 3 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp b/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp
index 516e15c04..640eaa0d2 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/Memory.cpp
@@ -88,7 +88,8 @@ namespace armarx::armem::server::ltm
         {
             for (const auto& subdirName : getAllDirectories())
             {
-                std::string segmentName = util::fs::detail::unescapeName(subdirName);
+                const std::string& segmentName_one = util::fs::detail::unescapeName(subdirName);
+                auto segmentName = util::fs::detail::extractLastDirectoryFromPath(segmentName_one);
                 CoreSegment c(getMemoryBasePath(),
                               getSettings(),
                               getExportName(),
@@ -252,6 +253,7 @@ namespace armarx::armem::server::ltm
 
                 // 2. store data
                 c.store(core);
+                
 
                 // 3. update statistics
                 statistics.recordedCoreSegments++;
@@ -263,13 +265,8 @@ namespace armarx::armem::server::ltm
 
     void
     Memory::_loadOnStartup(){
-        try{
-            armem::wm::Memory memory = this->loadAllAndResolve();
-            ARMARX_INFO << "Loading LTM from " << this->p.export_path << "/" << this->p.export_name << " on startup successful.";
-        }
-        catch(...){
-            ARMARX_INFO << "Could not load memory " << this->name() << " on startup.";
-        }
+        //not used any more
+        
     }
 
     void
diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.cpp b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.cpp
index 0e78e8f01..bb8f36bb2 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.cpp
@@ -40,6 +40,18 @@ namespace armarx::armem::server::ltm ::util::fs
             return ret;
         }
 
+        std::string 
+        extractLastDirectoryFromPath(const std::string& path)
+        {
+            size_t pos = path.rfind('/');
+    
+            if (pos != std::string::npos) {
+                return path.substr(pos + 1);
+            } else {
+                return path;
+            }
+        }
+
         std::string
         toDayString(const Time& t)
         {
diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.h b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.h
index 9b5b778cc..5bce52edd 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.h
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/util/filesystem.h
@@ -24,6 +24,8 @@ namespace armarx::armem::server::ltm::util::fs
         bool isNumberString(const std::string& s);
 
         bool isDateString(const std::string& s);
+
+        std::string extractLastDirectoryFromPath(const std::string& path);
     } // namespace detail
 
     std::filesystem::path toPath(const std::filesystem::path& base, const armem::MemoryID& id);
-- 
GitLab