From 5d2abce6847b1b8561cb06409f3e639ef8b81925 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Wed, 11 Aug 2021 11:57:34 +0200
Subject: [PATCH] Fixes

---
 .../RobotAPI/libraries/armem/core/base/CoreSegmentBase.h  | 4 +++-
 source/RobotAPI/libraries/armem/core/base/MemoryBase.h    | 8 ++++----
 .../libraries/armem/core/base/ProviderSegmentBase.h       | 8 ++++----
 .../libraries/armem/core/base/detail/lookup_mixins.cpp    | 8 ++++----
 4 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
index 06833c954..1cc0a66fd 100644
--- a/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/CoreSegmentBase.h
@@ -157,6 +157,8 @@ namespace armarx::armem::base
         // get/findInstance are provided by GetFindInstanceMixin
         // get/findSnapshot are provided by GetFindSnapshotMixin
         // get/findEntity are provided by GetFindEntityMixin
+        using detail::GetFindEntityMixin<DerivedT>::hasEntity;
+        using detail::GetFindEntityMixin<DerivedT>::findEntity;
 
         // Search all provider segments for the first matching entity.
 
@@ -276,7 +278,7 @@ namespace armarx::armem::base
         /// Copy and insert a provider segment.
         ProviderSegmentT& addProviderSegment(const ProviderSegmentT& providerSegment)
         {
-            return addProviderSegment(ProviderSegment(providerSegment));
+            return addProviderSegment(ProviderSegmentT(providerSegment));
         }
 
         /// Move and insert a provider segment.
diff --git a/source/RobotAPI/libraries/armem/core/base/MemoryBase.h b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
index f4699b6ac..be49e20c7 100644
--- a/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/MemoryBase.h
@@ -130,24 +130,24 @@ namespace armarx::armem::base
         CoreSegmentT* findCoreSegment(const MemoryID& coreSegmentID)
         {
             detail::checkHasCoreSegmentName(coreSegmentID);
-            return this->findCoreSegment(coreSegmentID.providerSegmentName);
+            return this->findCoreSegment(coreSegmentID.coreSegmentName);
         }
         const CoreSegmentT* findCoreSegment(const MemoryID& coreSegmentID) const
         {
             detail::checkHasCoreSegmentName(coreSegmentID);
-            return this->findCoreSegment(coreSegmentID.providerSegmentName);
+            return this->findCoreSegment(coreSegmentID.coreSegmentName);
         }
 
         // Get child by MemoryID
         CoreSegmentT& getCoreSegment(const MemoryID& coreSegmentID)
         {
             detail::checkHasCoreSegmentName(coreSegmentID);
-            return this->getCoreSegment(coreSegmentID.providerSegmentName);
+            return this->getCoreSegment(coreSegmentID.coreSegmentName);
         }
         const CoreSegmentT& getCoreSegment(const MemoryID& coreSegmentID) const
         {
             detail::checkHasCoreSegmentName(coreSegmentID);
-            return this->getCoreSegment(coreSegmentID.providerSegmentName);
+            return this->getCoreSegment(coreSegmentID.coreSegmentName);
         }
 
         // get/findInstance are provided by GetFindInstanceMixin
diff --git a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
index 2f76aa839..27dae3122 100644
--- a/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
+++ b/source/RobotAPI/libraries/armem/core/base/ProviderSegmentBase.h
@@ -128,24 +128,24 @@ namespace armarx::armem::base
         // Find child by MemoryID
         EntityT* findEntity(const MemoryID& entityID)
         {
-            detail::checkHasTimestamp(entityID);
+            detail::checkHasEntityName(entityID);
             return this->findEntity(entityID.entityName);
         }
         const EntityT* findEntity(const MemoryID& entityID) const
         {
-            detail::checkHasTimestamp(entityID);
+            detail::checkHasEntityName(entityID);
             return this->findEntity(entityID.entityName);
         }
 
         // Get child by MemoryID
         EntityT& getEntity(const MemoryID& entityID)
         {
-            detail::checkHasTimestamp(entityID);
+            detail::checkHasEntityName(entityID);
             return this->getEntity(entityID.entityName);
         }
         const EntityT& getEntity(const MemoryID& entityID) const
         {
-            detail::checkHasTimestamp(entityID);
+            detail::checkHasEntityName(entityID);
             return this->getEntity(entityID.entityName);
         }
 
diff --git a/source/RobotAPI/libraries/armem/core/base/detail/lookup_mixins.cpp b/source/RobotAPI/libraries/armem/core/base/detail/lookup_mixins.cpp
index ceaf41d3c..84082b424 100644
--- a/source/RobotAPI/libraries/armem/core/base/detail/lookup_mixins.cpp
+++ b/source/RobotAPI/libraries/armem/core/base/detail/lookup_mixins.cpp
@@ -10,7 +10,7 @@ namespace armarx::armem::base
     {
         if (not instanceID.hasInstanceIndex())
         {
-            throw armem::error::InvalidMemoryID(instanceID, "Entity instance ID has no instance index.");
+            throw armem::error::InvalidMemoryID(instanceID, "Instance ID has no instance index.");
         }
     }
 
@@ -19,7 +19,7 @@ namespace armarx::armem::base
     {
         if (not snapshotID.hasTimestamp())
         {
-            throw armem::error::InvalidMemoryID(snapshotID, "Entity snapshot ID has no timestamp.");
+            throw armem::error::InvalidMemoryID(snapshotID, "Snapshot ID has no timestamp.");
         }
     }
 
@@ -44,7 +44,7 @@ namespace armarx::armem::base
 
     void detail::checkHasCoreSegmentName(const MemoryID& coreSegmentID)
     {
-        if (not coreSegmentID.hasEntityName())
+        if (not coreSegmentID.hasCoreSegmentName())
         {
             throw armem::error::InvalidMemoryID(coreSegmentID, "Core Segment ID has no core segment name.");
         }
@@ -53,7 +53,7 @@ namespace armarx::armem::base
 
     void detail::checkHasMemoryName(const MemoryID& memoryID)
     {
-        if (not memoryID.hasEntityName())
+        if (not memoryID.hasMemoryName())
         {
             throw armem::error::InvalidMemoryID(memoryID, "Memory ID has no memory name.");
         }
-- 
GitLab