From 5f04ce8d4364d4fb2fe2a0a75f6c4cf58ff343ce Mon Sep 17 00:00:00 2001 From: "Christian R. G. Dreher" <c.dreher@kit.edu> Date: Tue, 12 Jan 2021 12:08:30 +0100 Subject: [PATCH] feature: Add setter methods to initialize plugins with a Memory from component. --- .../armem/ArMemExampleClient/ArMemExampleClient.cpp | 1 + source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp | 7 +++++++ source/RobotAPI/libraries/armem/client/ComponentPlugin.h | 4 ++++ source/RobotAPI/libraries/armem/client/Reader.cpp | 7 +++++++ source/RobotAPI/libraries/armem/client/Reader.h | 3 ++- .../libraries/armem/client/ReaderComponentPlugin.cpp | 7 +++++++ .../libraries/armem/client/ReaderComponentPlugin.h | 4 ++++ source/RobotAPI/libraries/armem/client/Writer.cpp | 7 +++++++ source/RobotAPI/libraries/armem/client/Writer.h | 2 +- .../libraries/armem/client/WriterComponentPlugin.cpp | 7 +++++++ .../libraries/armem/client/WriterComponentPlugin.h | 4 ++++ 11 files changed, 51 insertions(+), 2 deletions(-) diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp index 37a59b28d..fb757767b 100644 --- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp +++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp @@ -84,6 +84,7 @@ namespace armarx << " (took " << armem::toStringMilliSeconds(armem::Time::now() - start) << ")."; } ARMARX_CHECK_NOT_NULL(memory); + setMemory(memory); if (true) { diff --git a/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp index f67ed63b5..853e41cf6 100644 --- a/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp +++ b/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp @@ -19,3 +19,10 @@ armarx::armem::client::ComponentPluginUser::~ComponentPluginUser() // pass } + +void +armarx::armem::client::ComponentPluginUser::setMemory(MemoryInterfacePrx memory) +{ + setReadingMemory(memory); + setWritingMemory(memory); +} diff --git a/source/RobotAPI/libraries/armem/client/ComponentPlugin.h b/source/RobotAPI/libraries/armem/client/ComponentPlugin.h index cb8f3cd0b..2bcf857c2 100644 --- a/source/RobotAPI/libraries/armem/client/ComponentPlugin.h +++ b/source/RobotAPI/libraries/armem/client/ComponentPlugin.h @@ -28,6 +28,10 @@ namespace armarx::armem::client ComponentPluginUser(); ~ComponentPluginUser() override; + protected: + + void setMemory(MemoryInterfacePrx memory); + }; } diff --git a/source/RobotAPI/libraries/armem/client/Reader.cpp b/source/RobotAPI/libraries/armem/client/Reader.cpp index 0a0985bd2..07a00a40e 100644 --- a/source/RobotAPI/libraries/armem/client/Reader.cpp +++ b/source/RobotAPI/libraries/armem/client/Reader.cpp @@ -99,4 +99,11 @@ namespace armarx::armem::client callbacks[id] = callback; } + + void + Reader::setReadingMemory(ReadingInterfacePrx memory) + { + this->memory = memory; + } + } diff --git a/source/RobotAPI/libraries/armem/client/Reader.h b/source/RobotAPI/libraries/armem/client/Reader.h index 3ab4b5e45..d169cb539 100644 --- a/source/RobotAPI/libraries/armem/client/Reader.h +++ b/source/RobotAPI/libraries/armem/client/Reader.h @@ -32,7 +32,6 @@ namespace armarx::armem::client */ Reader(ReadingInterfacePrx memory = nullptr); - MemoryPtr getLatestSnapshots(); MemoryPtr getAllData(); @@ -45,6 +44,8 @@ namespace armarx::armem::client void updated(const std::vector<MemoryID>& updatedIDs); void subscribe(const MemoryID& entityID, callback callback); + void setReadingMemory(ReadingInterfacePrx memory); + operator bool() const { return bool(memory); diff --git a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp index ed1fc7b87..357e3d690 100644 --- a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp +++ b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp @@ -41,3 +41,10 @@ armarx::armem::client::ReaderComponentPluginUser::memoryUpdated(const std::vecto fromIce(updatedIDsIce, updatedIDs); memoryReader.updated(updatedIDs); } + + +void +armarx::armem::client::ReaderComponentPluginUser::setReadingMemory(ReadingInterfacePrx memory) +{ + memoryReader.setReadingMemory(memory); +} diff --git a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h index 20680ab18..54a77363c 100644 --- a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h +++ b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h @@ -45,6 +45,10 @@ namespace armarx::armem::client void memoryUpdated(const std::vector<data::MemoryID>& updatedIDs, const Ice::Current& current) override; + protected: + + void setReadingMemory(ReadingInterfacePrx memory); + protected: Reader memoryReader; diff --git a/source/RobotAPI/libraries/armem/client/Writer.cpp b/source/RobotAPI/libraries/armem/client/Writer.cpp index cd6b409f8..7941b1768 100644 --- a/source/RobotAPI/libraries/armem/client/Writer.cpp +++ b/source/RobotAPI/libraries/armem/client/Writer.cpp @@ -84,4 +84,11 @@ namespace armarx::armem::client return result.results.at(0); } + + void + Writer::setWritingMemory(WritingInterfacePrx memory) + { + this->memory = memory; + } + } diff --git a/source/RobotAPI/libraries/armem/client/Writer.h b/source/RobotAPI/libraries/armem/client/Writer.h index e7c7d67c1..acd1a575b 100644 --- a/source/RobotAPI/libraries/armem/client/Writer.h +++ b/source/RobotAPI/libraries/armem/client/Writer.h @@ -32,7 +32,7 @@ namespace armarx::armem::client CommitResult commit(Commit commit); EntityUpdateResult commit(const EntityUpdate& update); - + void setWritingMemory(WritingInterfacePrx memory); public: diff --git a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp index 7b8780f32..f5c648090 100644 --- a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp +++ b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp @@ -24,3 +24,10 @@ armarx::armem::client::WriterComponentPluginUser::~WriterComponentPluginUser() { // pass } + + +void +armarx::armem::client::WriterComponentPluginUser::setWritingMemory(WritingInterfacePrx memory) +{ + memoryWriter.setWritingMemory(memory); +} diff --git a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h index ea8136d97..f93c9a230 100644 --- a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h +++ b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h @@ -36,6 +36,10 @@ namespace armarx::armem::client WriterComponentPluginUser(); ~WriterComponentPluginUser() override; + protected: + + void setWritingMemory(WritingInterfacePrx memory); + protected: Writer memoryWriter; -- GitLab