From 61f0e72582ccd16e96af7201b9e78c8f05dbd1b0 Mon Sep 17 00:00:00 2001
From: Rainer Kartmann <rainer.kartmann@kit.edu>
Date: Tue, 12 Jan 2021 11:29:09 +0100
Subject: [PATCH] Refactor details in client example

---
 .../ArMemExampleClient/ArMemExampleClient.cpp | 34 ++++++++-----------
 .../ArMemExampleClient/ArMemExampleClient.h   |  7 ++--
 2 files changed, 18 insertions(+), 23 deletions(-)

diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp
index a0f5ccb84..c964031dd 100644
--- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp
+++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp
@@ -76,9 +76,7 @@ namespace armarx
         ARMARX_CHECK_NOT_NULL(memory);
 
         providerID = addProviderSegment();
-
-        entityID = providerID;
-        entityID.entityName = "example_entity";
+        entityID = providerID.withEntityName("example_entity");
 
         // Subscribe to example_entity updates
         memoryReader.subscribe(entityID, [&](const armem::MemoryID & sid, const std::vector<armem::MemoryID>& sids)
@@ -106,6 +104,7 @@ namespace armarx
         sleep(2);
         ARMARX_IMPORTANT << "Running now.";
 
+        armem::client::Reader reader(memory);
         armem::Writer writer(memory);
 
         armem::MemoryID snapshotID = commitSingleSnapshot(writer, entityID);
@@ -117,16 +116,17 @@ namespace armarx
         }
         if (true)
         {
-            querySnapshot(snapshotID);
+            querySnapshot(reader, snapshotID);
         }
         if (true)
         {
-            primitives(writer);
+            commitPrimitives(writer);
+            queryPrimitives(reader);
         }
     }
 
 
-    bool ArMemExampleClient::queryLatestRawIce(const armem::MemoryID& entityID)
+    void ArMemExampleClient::queryLatestRawIce(const armem::MemoryID& entityID)
     {
         ARMARX_IMPORTANT
                 << "Querying latest snapshot (via raw ice query types):"
@@ -192,18 +192,15 @@ namespace armarx
         {
             ARMARX_ERROR << qResult.errorMessage;
         }
-        return qResult.success;
     }
 
-    bool ArMemExampleClient::querySnapshot(const armem::MemoryID& snapshotID)
+    void ArMemExampleClient::querySnapshot(armem::client::Reader& reader, const armem::MemoryID& snapshotID)
     {
         ARMARX_IMPORTANT
                 << "Querying exact snapshot of entity: (via query builder)"
                 << "\n- snapshotID:     \t'" << snapshotID << "'"
                 ;
 
-        armem::client::Reader reader(memory);
-
         armem::client::QueryBuilder qb;
         qb
         .coreSegments().withID(snapshotID)
@@ -231,13 +228,11 @@ namespace armarx
         {
             ARMARX_ERROR << qResult.errorMessage;
         }
-
-        return qResult.success;
     }
 
     void ArMemExampleClient::example_entityUpdated(const armem::MemoryID& id)
     {
-        ARMARX_IMPORTANT << "example_entity got updated";
+        ARMARX_IMPORTANT << "example_entity got updated: " << id;
         // Fetch new data of example_entity and do something with it.
     }
 
@@ -330,7 +325,7 @@ namespace armarx
     }
 
 
-    bool ArMemExampleClient::primitives(armem::Writer& writer)
+    void ArMemExampleClient::commitPrimitives(armem::Writer& writer)
     {
         ARMARX_IMPORTANT << "Adding segment " << "Primitive" << "/" << getName();
 
@@ -338,7 +333,7 @@ namespace armarx
         if (!addSegmentResult.success)
         {
             ARMARX_ERROR << addSegmentResult.errorMessage;
-            return false;
+            return;
         }
         armem::MemoryID providerID = armem::MemoryID::fromString(addSegmentResult.segmentID);
 
@@ -374,9 +369,11 @@ namespace armarx
         if (!commitResult.allSuccess())
         {
             ARMARX_WARNING << commitResult.allErrorMessages();
-            return false;
         }
+    }
 
+    void ArMemExampleClient::queryPrimitives(armem::client::Reader& reader)
+    {
         // Query all entities from provider.
         armem::client::QueryBuilder qb;
         qb
@@ -385,9 +382,8 @@ namespace armarx
         .entities().all()
         .snapshots().all();
 
-        armem::client::Reader reader(memory);
         armem::client::QueryResult result = reader.query(qb.buildQueryInput());
-        if (result.success)
+        if (result)
         {
             tab.queryResult = std::move(result.memory);
             tab.rebuild = true;
@@ -396,8 +392,6 @@ namespace armarx
         {
             ARMARX_ERROR << result.errorMessage;
         }
-
-        return true;
     }
 
 
diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
index 85356d056..e40edf2c8 100644
--- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
+++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
@@ -116,10 +116,11 @@ namespace armarx
         armem::MemoryID commitSingleSnapshot(armem::Writer& writer, const armem::MemoryID& entityID);
         void commitMultipleSnapshots(armem::Writer& writer, const armem::MemoryID& entityID, int num = 3);
 
-        bool queryLatestRawIce(const armem::MemoryID& entityID);
-        bool querySnapshot(const armem::MemoryID& snapshotID);
+        void queryLatestRawIce(const armem::MemoryID& entityID);
+        void querySnapshot(armem::client::Reader& reader, const armem::MemoryID& snapshotID);
 
-        bool primitives(armem::Writer& writer);
+        void commitPrimitives(armem::Writer& writer);
+        void queryPrimitives(armem::client::Reader& reader);
 
 
     private:
-- 
GitLab