From 50dcabd28115edb0bbff666707999bbf54d60cc7 Mon Sep 17 00:00:00 2001
From: Fabian Paus <fabian.paus@kit.edu>
Date: Wed, 14 Jul 2021 16:31:22 +0200
Subject: [PATCH] Memory: Prepare for use of different containers

- Use emplace(key, value)
- Do not use std::map directly for the getters
---
 .../RobotAPI/libraries/armem/core/base/CoreSegmentBase.h  | 8 ++++----
 source/RobotAPI/libraries/armem/core/base/MemoryBase.h    | 8 ++++----
 .../libraries/armem/core/base/ProviderSegmentBase.h       | 8 ++++----
 .../libraries/armem/core/diskmemory/CoreSegment.cpp       | 4 ++--
 .../RobotAPI/libraries/armem/core/diskmemory/Memory.cpp   | 4 ++--
 .../libraries/armem/core/diskmemory/ProviderSegment.cpp   | 4 ++--
 .../libraries/armem/core/longtermmemory/CoreSegment.cpp   | 4 ++--
 .../libraries/armem/core/longtermmemory/Memory.cpp        | 4 ++--
 .../armem/core/longtermmemory/ProviderSegment.cpp         | 4 ++--
 9 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
index eefb1b5ce..6dc77c576 100644
--- a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
@@ -85,13 +85,13 @@ namespace armarx::armem::base
         }
 
 
-        inline const std::map<std::string, ProviderSegmentT>& providerSegments() const
+        inline const auto& providerSegments() const
         {
             return this->_container;
         }
-        inline std::map<std::string, ProviderSegmentT>& providerSegments()
+        inline auto& providerSegments()
         {
-            return const_cast<std::map<std::string, ProviderSegmentT>&>(const_cast<const CoreSegmentBase*>(this)->providerSegments());
+            return this->_container;
         }
 
 
@@ -197,7 +197,7 @@ namespace armarx::armem::base
                 }
                 else
                 {
-                    auto wms = this->_container.emplace(std::make_pair(k, this->id().withProviderSegmentName(k)));
+                    auto wms = this->_container.emplace(k, this->id().withProviderSegmentName(k));
                     wms.first->second.append(s);
                 }
             }
diff --git a/source/RobotAPI/libraries/armem/core/base/MemoryBase.h b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
index 69cd01fc1..d7c8b8cd2 100644
--- a/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
@@ -82,13 +82,13 @@ namespace armarx::armem::base
         }
 
 
-        inline const std::map<std::string, CoreSegmentT>& coreSegments() const
+        inline auto& coreSegments() const
         {
             return this->_container;
         }
-        inline std::map<std::string, CoreSegmentT>& coreSegments()
+        inline auto& coreSegments()
         {
-            return const_cast<std::map<std::string, CoreSegmentT>&>(const_cast<const MemoryBase*>(this)->coreSegments());
+            return this->_container;
         }
 
 
@@ -272,7 +272,7 @@ namespace armarx::armem::base
                 }
                 else
                 {
-                    auto wms = this->_container.emplace(std::make_pair(k, this->id().withCoreSegmentName(k)));
+                    auto wms = this->_container.emplace(k, this->id().withCoreSegmentName(k));
                     wms.first->second.append(s);
                 }
             }
diff --git a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
index a53595c87..57ff32102 100644
--- a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
@@ -83,13 +83,13 @@ namespace armarx::armem::base
         }
 
 
-        inline const std::map<std::string, EntityT>& entities() const
+        inline const auto& entities() const
         {
             return this->_container;
         }
-        inline std::map<std::string, EntityT>& entities()
+        inline auto& entities()
         {
-            return const_cast<std::map<std::string, EntityT>&>(const_cast<const ProviderSegmentBase*>(this)->entities());
+            return this->_container;
         }
 
 
@@ -181,7 +181,7 @@ namespace armarx::armem::base
                 }
                 else
                 {
-                    auto wms = this->_container.emplace(std::make_pair(k, this->id().withEntityName(k)));
+                    auto wms = this->_container.emplace(k, this->id().withEntityName(k));
                     wms.first->second.append(s);
                 }
             }
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
index 6a26be9c7..dd25b0219 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/CoreSegment.cpp
@@ -58,7 +58,7 @@ namespace armarx::armem::d_ltm
                 if (d.is_directory())
                 {
                     std::string k = d.path().filename();
-                    auto wms = _container.emplace(std::make_pair(k, id().withProviderSegmentName(k)));
+                    auto wms = _container.emplace(k, id().withProviderSegmentName(k));
                     wms.first->second.reload(p_ptr);
                 }
 
@@ -87,7 +87,7 @@ namespace armarx::armem::d_ltm
             else
             {
                 std::filesystem::create_directory(_fullPath() / k);
-                auto wms = _container.emplace(std::make_pair(k, id().withProviderSegmentName(k)));
+                auto wms = _container.emplace(k, id().withProviderSegmentName(k));
                 wms.first->second.path = path;
                 wms.first->second.append(s);
             }
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/Memory.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/Memory.cpp
index 874d189d6..1038f5bfb 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/Memory.cpp
@@ -55,7 +55,7 @@ namespace armarx::armem::d_ltm
                 if (d.is_directory())
                 {
                     std::string k = d.path().filename();
-                    auto wms = _container.emplace(std::make_pair(k, id().withCoreSegmentName(k)));
+                    auto wms = _container.emplace(k, id().withCoreSegmentName(k));
                     wms.first->second.reload(path);
                 }
             }
@@ -75,7 +75,7 @@ namespace armarx::armem::d_ltm
             {
                 std::filesystem::create_directory(_fullPath() / k);
 
-                auto wms = _container.emplace(std::make_pair(k, id().withCoreSegmentName(k)));
+                auto wms = _container.emplace(k, id().withCoreSegmentName(k));
                 wms.first->second.path = path;
                 wms.first->second.append(s);
             }
diff --git a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
index 77d38171c..1132b2fca 100644
--- a/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/diskmemory/ProviderSegment.cpp
@@ -64,7 +64,7 @@ namespace armarx::armem::d_ltm
                 if (d.is_directory())
                 {
                     std::string k = d.path().filename();
-                    auto wms = _container.emplace(std::make_pair(k, id().withEntityName(k)));
+                    auto wms = _container.emplace(k, id().withEntityName(k));
                     wms.first->second.reload(p_ptr);
                 }
 
@@ -116,7 +116,7 @@ namespace armarx::armem::d_ltm
                     return;
                 }
 
-                auto wms = _container.emplace(std::make_pair(k, id().withEntityName(k)));
+                auto wms = _container.emplace(k, id().withEntityName(k));
                 wms.first->second.path = path;
                 wms.first->second.append(s);
             }
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
index 7c4307da5..a64a5982e 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/CoreSegment.cpp
@@ -51,7 +51,7 @@ namespace armarx::armem::ltm
             }
             else
             {
-                auto wms = _container.emplace(std::make_pair(k, id().withProviderSegmentName(k)));
+                auto wms = _container.emplace(k, id().withProviderSegmentName(k));
                 wms.first->second.dbsettings = dbsettings;
                 wms.first->second.reload();
             }
@@ -78,7 +78,7 @@ namespace armarx::armem::ltm
                                                        << bsoncxx::builder::stream::finalize;
                 coll.insert_one(foreign_key.view());
 
-                auto wms = _container.emplace(std::make_pair(k, id().withProviderSegmentName(k)));
+                auto wms = _container.emplace(k, id().withProviderSegmentName(k));
                 wms.first->second.dbsettings = dbsettings;
                 wms.first->second.append(s);
             }
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
index 7edf8946a..fbea444e9 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/Memory.cpp
@@ -82,7 +82,7 @@ namespace armarx::armem::ltm
             }
             else
             {
-                auto wms = _container.emplace(std::make_pair(k, id().withCoreSegmentName(k)));
+                auto wms = _container.emplace(k, id().withCoreSegmentName(k));
                 wms.first->second.dbsettings = dbsettings;
                 wms.first->second.reload();
             }
@@ -119,7 +119,7 @@ namespace armarx::armem::ltm
                                                        << bsoncxx::builder::stream::finalize;
                 coll.insert_one(foreign_key.view());
 
-                auto wms = _container.emplace(std::make_pair(k, id().withCoreSegmentName(k)));
+                auto wms = _container.emplace(k, id().withCoreSegmentName(k));
                 wms.first->second.dbsettings = dbsettings;
                 wms.first->second.append(s);
             }
diff --git a/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
index 7bf439bfe..aac804599 100644
--- a/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
+++ b/source/RobotAPI/libraries/armem/core/longtermmemory/ProviderSegment.cpp
@@ -50,7 +50,7 @@ namespace armarx::armem::ltm
             }
             else
             {
-                auto wms = _container.emplace(std::make_pair(k, id().withEntityName(k)));
+                auto wms = _container.emplace(k, id().withEntityName(k));
                 wms.first->second.dbsettings = dbsettings;
                 wms.first->second.reload();
             }
@@ -77,7 +77,7 @@ namespace armarx::armem::ltm
                                                        << bsoncxx::builder::stream::finalize;
                 coll.insert_one(foreign_key.view());
 
-                auto wms = _container.emplace(std::make_pair(k, id().withEntityName(k)));
+                auto wms = _container.emplace(k, id().withEntityName(k));
                 wms.first->second.dbsettings = dbsettings;
                 wms.first->second.append(s);
             }
-- 
GitLab