From f2ef0dddb463db51c04b0d1538900d4b92d350a8 Mon Sep 17 00:00:00 2001 From: Fabian Reister <fabian.reister@kit.edu> Date: Mon, 10 May 2021 08:21:04 +0200 Subject: [PATCH] articulated object reader and writer: taking (memory) Client**ComponentPluginUser via c'tor --- .../client/articulated_object/Reader.cpp | 2 +- .../client/articulated_object/Reader.h | 9 +++++---- .../client/articulated_object/Writer.cpp | 16 ++++++++-------- .../client/articulated_object/Writer.h | 11 +++++++---- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp index 03173cf87..91b9337bc 100644 --- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp +++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.cpp @@ -18,7 +18,7 @@ namespace fs = ::std::filesystem; namespace armarx::armem::articulated_object { - Reader::Reader(ManagedIceObject& component) : MemoryConnector(component) {} + Reader::Reader(armem::ClientReaderComponentPluginUser& component) : component(component) {} std::optional<ArticulatedObject> Reader::get(const std::string& name, const armem::Time& timestamp) { diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.h b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.h index 2ad108d0f..2e2403ec9 100644 --- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.h +++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Reader.h @@ -24,7 +24,7 @@ #include <mutex> #include <optional> -#include "RobotAPI/libraries/armem/client/MemoryConnector.h" +#include "RobotAPI/libraries/armem/client.h" #include "RobotAPI/libraries/armem/client/Reader.h" #include "interfaces.h" @@ -32,11 +32,11 @@ namespace armarx::armem::articulated_object { class Reader: - virtual public ReaderInterface, - virtual public ::armarx::armem::MemoryConnector + virtual public ReaderInterface + // virtual public ::armarx::armem::MemoryConnector { public: - Reader(ManagedIceObject& component); + Reader(armem::ClientReaderComponentPluginUser& component); virtual ~Reader() = default; void synchronize(ArticulatedObject& obj, const armem::Time& timestamp) override; @@ -69,6 +69,7 @@ namespace armarx::armem::articulated_object armem::client::Reader memoryReader; std::mutex memoryWriterMutex; + armem::ClientReaderComponentPluginUser& component; }; diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp index 53e5f925a..97b2ce981 100644 --- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp +++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.cpp @@ -15,15 +15,15 @@ namespace armarx::armem::articulated_object { - Writer::Writer(ManagedIceObject& component): MemoryConnector(component) {} + Writer::Writer(armem::ClientComponentPluginUser& component): component(component) {} void Writer::registerPropertyDefinitions(armarx::PropertyDefinitionsPtr& def) { ARMARX_DEBUG << "Writer: registerPropertyDefinitions"; - MemoryConnector::registerPropertyDefinitions(def); + // MemoryConnector::registerPropertyDefinitions(def); - const std::string prefix = getPropertyPrefix(); + const std::string prefix = propertyPrefix; def->optional(properties.memoryName, prefix + "MemoryName"); @@ -40,7 +40,7 @@ namespace armarx::armem::articulated_object { // Wait for the memory to become available and add it as dependency. ARMARX_IMPORTANT << "Writer: Waiting for memory '" << properties.memoryName << "' ..."; - auto result = useMemory(properties.memoryName); + auto result = component.useMemory(properties.memoryName); if (not result.success) { ARMARX_ERROR << result.errorMessage; @@ -217,9 +217,9 @@ namespace armarx::armem::articulated_object return storeInstance(obj); } - const std::string& Writer::getPropertyPrefix() const - { - return propertyPrefix; - } + // const std::string& Writer::getPropertyPrefix() const + // { + // return propertyPrefix; + // } } // namespace armarx::armem::articulated_object \ No newline at end of file diff --git a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.h b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.h index 9e9b20758..042554566 100644 --- a/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.h +++ b/source/RobotAPI/libraries/armem_objects/client/articulated_object/Writer.h @@ -26,6 +26,7 @@ #include "RobotAPI/libraries/armem/client/MemoryConnector.h" #include "RobotAPI/libraries/armem/client/Reader.h" #include "RobotAPI/libraries/armem/client/Writer.h" +#include "RobotAPI/libraries/armem/client.h" #include "interfaces.h" @@ -34,11 +35,11 @@ namespace armarx::armem::articulated_object { class Writer: - virtual public WriterInterface, - virtual public MemoryConnector + virtual public WriterInterface //, + // virtual public MemoryConnector { public: - Writer(ManagedIceObject& component); + Writer(armem::ClientComponentPluginUser& component); virtual ~Writer() = default; @@ -51,7 +52,7 @@ namespace armarx::armem::articulated_object bool storeInstance(const ArticulatedObject& obj); std::optional<armem::MemoryID> storeClass(const ArticulatedObject& obj); - const std::string& getPropertyPrefix() const override; + // const std::string& getPropertyPrefix() const override; private: std::optional<armem::MemoryID> storeOrGetClass(const ArticulatedObject& obj); @@ -77,6 +78,8 @@ namespace armarx::armem::articulated_object // key: name of object: RobotDescription::name std::map<std::string, MemoryID> knownObjects; + + armem::ClientComponentPluginUser& component; }; -- GitLab