From ee699a475aef09c4665b69ccb63d26a3f5e27ec5 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Mon, 16 Aug 2021 09:51:21 +0200
Subject: [PATCH] Cleanup, add ARMARX_TRACE

---
 .../ExampleMemoryClient.cpp                   |  5 +++--
 .../RobotAPI/libraries/armem/core/Commit.cpp  |  4 ++--
 .../armem/core/base/ice_conversions.h         |  2 --
 .../libraries/armem/core/error/ArMemError.cpp |  2 +-
 .../armem/core/wm/ice_conversions.cpp         |  1 -
 .../armem/server/ComponentPlugin.cpp          |  9 +++++----
 .../armem/server/MemoryToIceAdapter.cpp       | 20 ++++++++++++-------
 .../libraries/armem/test/ArMemQueryTest.cpp   |  2 ++
 8 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
index 036d27d2b..3678ecd55 100644
--- a/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
+++ b/source/RobotAPI/components/armem/client/ExampleMemoryClient/ExampleMemoryClient.cpp
@@ -34,6 +34,7 @@
 #include <RobotAPI/libraries/armem/client/query/query_fns.h>
 #include <RobotAPI/libraries/armem/core/error.h>
 #include <RobotAPI/libraries/armem/core/aron_conversions.h>
+#include <RobotAPI/libraries/armem/core/operations.h>
 #include <RobotAPI/libraries/armem/core/wm/ice_conversions.h>
 
 #include <RobotAPI/components/armem/server/ExampleMemory/aron/ExampleData.aron.generated.h>
@@ -257,7 +258,6 @@ namespace armarx
 
         armem::client::QueryResult qResult = memoryReader.query(builder.buildQueryInput());
         ARMARX_INFO << qResult;
-
         if (qResult.success)
         {
             ARMARX_IMPORTANT << "Getting entity via ID";
@@ -266,7 +266,8 @@ namespace armarx
             ARMARX_CHECK_GREATER_EQUAL(memory.size(), 1);
 
             const armem::wm::Entity* entity = memory.findEntity(entityID);
-            ARMARX_CHECK_NOT_NULL(entity);
+            ARMARX_CHECK_NOT_NULL(entity)
+                    << "Entity " << entityID << " was not found in " << armem::print(memory);
             ARMARX_CHECK_GREATER_EQUAL(entity->size(), 1);
 
             const armem::wm::EntitySnapshot& snapshot = entity->getLatestSnapshot();
diff --git a/source/RobotAPI/libraries/armem/core/Commit.cpp b/source/RobotAPI/libraries/armem/core/Commit.cpp
index fed012450..db5f1b630 100644
--- a/source/RobotAPI/libraries/armem/core/Commit.cpp
+++ b/source/RobotAPI/libraries/armem/core/Commit.cpp
@@ -14,7 +14,7 @@ namespace armarx::armem
     {
         return os << "Entity update: "
                << "\n- success:    \t" << rhs.entityID
-               << "\n- timestamp:  \t" << rhs.timeCreated
+               << "\n- timestamp:  \t" << toDateTimeMilliSeconds(rhs.timeCreated)
                << "\n- #instances: \t" << rhs.instancesData.size()
                << "\n"
                ;
@@ -25,7 +25,7 @@ namespace armarx::armem
         return os << "Entity update result: "
                << "\n- success:       \t" << (rhs.success ? "true" : "false")
                << "\n- snapshotID:    \t" << rhs.snapshotID
-               << "\n- time arrived:  \t" << rhs.timeArrived.toDateTime()
+               << "\n- time arrived:  \t" << toDateTimeMilliSeconds(rhs.timeArrived)
                << "\n- error message: \t" << rhs.errorMessage
                << "\n"
                ;
diff --git a/source/RobotAPI/libraries/armem/core/base/ice_conversions.h b/source/RobotAPI/libraries/armem/core/base/ice_conversions.h
index dba990834..182e0c0a4 100644
--- a/source/RobotAPI/libraries/armem/core/base/ice_conversions.h
+++ b/source/RobotAPI/libraries/armem/core/base/ice_conversions.h
@@ -110,7 +110,6 @@ namespace armarx::armem::base
         detail::toIce(ice.aronType, providerSegment.aronType());
         ARMARX_CHECK(!providerSegment.aronType() || ice.aronType);
 
-        // toIce(ice.entities, providerSegment.entities());
         ice.entities.clear();
         providerSegment.forEachEntity([&ice](const auto & entity)
         {
@@ -125,7 +124,6 @@ namespace armarx::armem::base
         detail::fromIce(ice.aronType, providerSegment.aronType());
         ARMARX_CHECK(!providerSegment.aronType() || ice.aronType);
 
-        // fromIce(ice.entities, providerSegment.entities());
         providerSegment.clear();
         for (const auto& [key, entity] : ice.entities)
         {
diff --git a/source/RobotAPI/libraries/armem/core/error/ArMemError.cpp b/source/RobotAPI/libraries/armem/core/error/ArMemError.cpp
index 8936fab6f..003ef9fb5 100644
--- a/source/RobotAPI/libraries/armem/core/error/ArMemError.cpp
+++ b/source/RobotAPI/libraries/armem/core/error/ArMemError.cpp
@@ -59,7 +59,7 @@ namespace armarx::armem::error
     {
         std::stringstream ss;
         ss << simox::alg::capitalize_words(existingTerm) << " with name '" << existingName << "' "
-           << " already exists in " << ownTerm << " '" << ownName << "'.";
+           << "already exists in " << ownTerm << " '" << ownName << "'.";
         return ss.str();
     }
 
diff --git a/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp b/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp
index 70a905a93..ba6c9782e 100644
--- a/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp
+++ b/source/RobotAPI/libraries/armem/core/wm/ice_conversions.cpp
@@ -15,7 +15,6 @@ namespace armarx::armem
         base::fromIce(ice, data);
     }
 
-
     void wm::toIce(data::EntitySnapshot& ice, const EntitySnapshot& snapshot)
     {
         base::toIce(ice, snapshot);
diff --git a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
index 28bf14da2..86b1d93ef 100644
--- a/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/server/ComponentPlugin.cpp
@@ -124,13 +124,14 @@ namespace armarx::armem::server
     // WRITING
     data::AddSegmentsResult ComponentPluginUser::addSegments(const data::AddSegmentsInput& input, const Ice::Current&)
     {
+        ARMARX_TRACE;
         bool addCoreSegmentOnUsage = false;
         return addSegments(input, addCoreSegmentOnUsage);
     }
 
     data::AddSegmentsResult ComponentPluginUser::addSegments(const data::AddSegmentsInput& input, bool addCoreSegments)
     {
-        // std::scoped_lock lock(workingMemoryMutex);
+        ARMARX_TRACE;
         data::AddSegmentsResult result = iceMemory.addSegments(input, addCoreSegments);
         return result;
     }
@@ -138,7 +139,7 @@ namespace armarx::armem::server
 
     data::CommitResult ComponentPluginUser::commit(const data::Commit& commitIce, const Ice::Current&)
     {
-        // std::scoped_lock lock(workingMemoryMutex);
+        ARMARX_TRACE;
         return iceMemory.commit(commitIce);
     }
 
@@ -146,7 +147,7 @@ namespace armarx::armem::server
     // READING
     armem::query::data::Result ComponentPluginUser::query(const armem::query::data::Input& input, const Ice::Current&)
     {
-        // std::scoped_lock lock(workingMemoryMutex);
+        ARMARX_TRACE;
         return iceMemory.query(input);
     }
 
@@ -154,7 +155,7 @@ namespace armarx::armem::server
     // LTM STORING
     data::StoreResult ComponentPluginUser::store(const data::StoreInput& input, const Ice::Current&)
     {
-        //std::scoped_lock lock(workingMemoryMutex, longtermMemoryMutex);
+        ARMARX_TRACE;
         return iceMemory.store(input);
     }
 
diff --git a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
index b47c7f313..73d00c3a3 100644
--- a/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
+++ b/source/RobotAPI/libraries/armem/server/MemoryToIceAdapter.cpp
@@ -34,6 +34,7 @@ namespace armarx::armem::server
     data::AddSegmentResult
     MemoryToIceAdapter::addSegment(const data::AddSegmentInput& input, bool addCoreSegments)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(workingMemory);
 
         data::AddSegmentResult output;
@@ -92,6 +93,7 @@ namespace armarx::armem::server
     data::AddSegmentsResult
     MemoryToIceAdapter::addSegments(const data::AddSegmentsInput& input, bool addCoreSegments)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(workingMemory);
 
         data::AddSegmentsResult output;
@@ -106,6 +108,7 @@ namespace armarx::armem::server
     data::CommitResult
     MemoryToIceAdapter::commit(const data::Commit& commitIce, Time timeArrived)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(workingMemory);
         auto handleException = [](const std::string & what)
         {
@@ -143,6 +146,7 @@ namespace armarx::armem::server
     data::CommitResult
     MemoryToIceAdapter::commit(const data::Commit& commitIce)
     {
+        ARMARX_TRACE;
         return commit(commitIce, armem::Time::now());
     }
 
@@ -150,18 +154,21 @@ namespace armarx::armem::server
     armem::CommitResult
     MemoryToIceAdapter::commit(const armem::Commit& commit)
     {
+        ARMARX_TRACE;
         return this->_commit(commit, false);
     }
 
 
     armem::CommitResult MemoryToIceAdapter::commitLocking(const armem::Commit& commit)
     {
+        ARMARX_TRACE;
         return this->_commit(commit, true);
     }
 
 
     armem::CommitResult MemoryToIceAdapter::_commit(const armem::Commit& commit, bool locking)
     {
+        ARMARX_TRACE;
         std::vector<data::MemoryID> updatedIDs;
         const bool publishUpdates = bool(memoryListenerTopic);
 
@@ -228,6 +235,7 @@ namespace armarx::armem::server
     armem::query::data::Result
     MemoryToIceAdapter::query(const armem::query::data::Input& input)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(workingMemory);
 
         // Core segment processors will aquire the core segment locks.
@@ -257,13 +265,13 @@ namespace armarx::armem::server
 
             query_proc::wm::MemoryQueryProcessor wm2wmProcessor(
                 input.withData ? armem::DataMode::WithData : armem::DataMode::NoData);
-            armem::wm::Memory merged_result = wm2wmProcessor.process(queryInput.toIce(), wmResult);
-            if (merged_result.empty())
+            armem::wm::Memory mergedResult = wm2wmProcessor.process(queryInput.toIce(), wmResult);
+            if (mergedResult.empty())
             {
                 ARMARX_ERROR << "A merged and postprocessed Memory has no data although at least the LTM result contains data. This indicates that something is wrong.";
             }
 
-            result.memory = toIce<data::MemoryPtr>(merged_result);
+            result.memory = toIce<data::MemoryPtr>(mergedResult);
 
             // also move results of ltm to wm
             //this->commit(toCommit(ltm_converted));
@@ -289,6 +297,7 @@ namespace armarx::armem::server
 
     client::QueryResult MemoryToIceAdapter::query(const client::QueryInput& input)
     {
+        ARMARX_TRACE;
         return client::QueryResult::fromIce(query(input.toIce()));
     }
 
@@ -298,6 +307,7 @@ namespace armarx::armem::server
     // LTM STORING
     data::StoreResult MemoryToIceAdapter::store(const armem::data::StoreInput& input)
     {
+        ARMARX_TRACE;
         ARMARX_CHECK_NOT_NULL(workingMemory);
         ARMARX_CHECK_NOT_NULL(longtermMemoryManager);
         data::StoreResult output;
@@ -322,8 +332,4 @@ namespace armarx::armem::server
         return output;
     }
 
-
-
-
-
 }
diff --git a/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
index b97ac5e3c..13d050572 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemQueryTest.cpp
@@ -30,6 +30,8 @@
 #include <RobotAPI/libraries/armem/core/base/detail/negative_index_semantics.h>
 #include <RobotAPI/libraries/armem/server/query_proc/wm.h>
 
+#include <ArmarXCore/core/exceptions/LocalException.h>
+
 #include <SimoxUtility/algorithm/get_map_keys_values.h>
 #include <SimoxUtility/algorithm/string.h>
 
-- 
GitLab