From 78bce7212ed4f06758b8048a33fa2b4d518f4d5d Mon Sep 17 00:00:00 2001 From: "Christian R. G. Dreher" <c.dreher@kit.edu> Date: Fri, 8 Jan 2021 13:29:26 +0100 Subject: [PATCH] refactor: Restructure client code, add combined plugins and reader/writer plugins --- .../ArMemExampleClient/ArMemExampleClient.cpp | 5 +- .../ArMemExampleClient/ArMemExampleClient.h | 16 +++--- .../ArMemMemoryViewerWidgetController.cpp | 2 +- .../ArMemMemoryViewerWidgetController.h | 4 +- source/RobotAPI/interface/armem.ice | 2 +- .../RobotAPI/libraries/armem/CMakeLists.txt | 16 ++++-- .../armem/client/ComponentPlugin.cpp | 14 +++++ .../libraries/armem/client/ComponentPlugin.h | 35 ++++++++++++ .../client/MemoryClientComponentPlugin.cpp | 26 --------- .../client/MemoryClientComponentPlugin.h | 55 ------------------- .../client/{MemoryReader.cpp => Reader.cpp} | 16 +++--- .../armem/client/{MemoryReader.h => Reader.h} | 4 +- .../armem/client/ReaderComponentPlugin.cpp | 21 +++++++ .../armem/client/ReaderComponentPlugin.h | 51 +++++++++++++++++ .../client/{MemoryWriter.cpp => Writer.cpp} | 14 ++--- .../armem/client/{MemoryWriter.h => Writer.h} | 4 +- .../armem/client/WriterComponentPlugin.cpp | 21 +++++++ .../armem/client/WriterComponentPlugin.h | 51 +++++++++++++++++ 18 files changed, 235 insertions(+), 122 deletions(-) create mode 100644 source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp create mode 100644 source/RobotAPI/libraries/armem/client/ComponentPlugin.h delete mode 100644 source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.cpp delete mode 100644 source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.h rename source/RobotAPI/libraries/armem/client/{MemoryReader.cpp => Reader.cpp} (79%) rename source/RobotAPI/libraries/armem/client/{MemoryReader.h => Reader.h} (91%) create mode 100644 source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp create mode 100644 source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h rename source/RobotAPI/libraries/armem/client/{MemoryWriter.cpp => Writer.cpp} (77%) rename source/RobotAPI/libraries/armem/client/{MemoryWriter.h => Writer.h} (91%) create mode 100644 source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp create mode 100644 source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp index c591b97c9..0172f1375 100644 --- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp +++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.cpp @@ -28,7 +28,6 @@ #include <RobotAPI/interface/aron.h> #include <RobotAPI/libraries/armem/component/MemoryRemoteGui.h> -#include <RobotAPI/libraries/armem/client/MemoryWriter.h> #include <RobotAPI/libraries/armem/memory/ice_conversions.h> #include <RobotAPI/components/armem/ArMemExampleMemory/aron/Primitive.aron.generated.h> @@ -111,7 +110,7 @@ namespace armarx providerID = armem::MemoryID::fromString(result.segmentID); } - armem::MemoryWriter writer(memory); + armem::Writer writer(memory); armem::MemoryID entityID = providerID; entityID.entityName = "example_entity"; @@ -280,7 +279,7 @@ namespace armarx } - bool ArMemExampleClient::primitives(armem::MemoryWriter& writer) + bool ArMemExampleClient::primitives(armem::Writer& writer) { ARMARX_IMPORTANT << "Adding segment " << "Primitive" << "/" << getName(); diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h index af51519fd..2c97cd15a 100644 --- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h +++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h @@ -20,21 +20,20 @@ * GNU General Public License */ + #pragma once +// ArmarX #include <ArmarXCore/core/Component.h> - #include <ArmarXCore/interface/observers/ObserverInterface.h> - #include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h> -// #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> - +// RobotAPI +//#include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> #include <RobotAPI/interface/armem/MemoryInterface.h> #include <RobotAPI/interface/armem/MemoryNameSystemInterface.h> - -#include <RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.h> +#include <RobotAPI/libraries/armem/client/ComponentPlugin.h> #include <RobotAPI/libraries/armem/memory/Memory.h> @@ -52,7 +51,6 @@ namespace armarx }; - /** * @defgroup Component-ArMemExampleClient ArMemExampleClient * @ingroup RobotAPI-Components @@ -66,7 +64,7 @@ namespace armarx */ class ArMemExampleClient : virtual public armarx::Component - , virtual public armarx::armem::MemoryClientComponentPluginUser + , virtual public armarx::armem::client::ComponentPluginUser , virtual public LightweightRemoteGuiComponentPluginUser { public: @@ -101,7 +99,7 @@ namespace armarx private: // Examples - bool primitives(armem::MemoryWriter& writer); + bool primitives(armem::Writer& writer); private: diff --git a/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp b/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp index fcd59af30..f121e160a 100644 --- a/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp +++ b/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.cpp @@ -142,7 +142,7 @@ namespace armarx if (memoryName.size() > 0) { getProxy(memory, memoryName); - memoryReader = armem::MemoryReader(memory); + memoryReader = armem::Reader(memory); } // DebugObserver is optional (check for null on every call) if (!debugObserverName.empty()) diff --git a/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.h b/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.h index 36d618adb..aad49aecd 100644 --- a/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.h +++ b/source/RobotAPI/gui-plugins/ArMemMemoryViewer/ArMemMemoryViewerWidgetController.h @@ -33,7 +33,7 @@ #include <ArmarXCore/core/system/ImportExportComponent.h> #include <RobotAPI/interface/armem/MemoryInterface.h> -#include <RobotAPI/libraries/armem/client/MemoryReader.h> +#include <RobotAPI/libraries/armem/client/Reader.h> #include <RobotAPI/libraries/armem_gui/InstanceTreeWidget.h> #include <RobotAPI/libraries/armem_gui/MemoryQueryWidget.h> #include <RobotAPI/libraries/armem_gui/MemoryTreeWidget.h> @@ -126,7 +126,7 @@ namespace armarx std::string memoryName; armem::MemoryInterfacePrx memory; - armem::MemoryReader memoryReader; + armem::Reader memoryReader; armem::MemoryPtr memoryData; diff --git a/source/RobotAPI/interface/armem.ice b/source/RobotAPI/interface/armem.ice index 9777fd79d..a01037e52 100644 --- a/source/RobotAPI/interface/armem.ice +++ b/source/RobotAPI/interface/armem.ice @@ -3,7 +3,7 @@ #include <RobotAPI/interface/armem/ReadingInterface.ice> #include <RobotAPI/interface/armem/WritingInterface.ice> #include <RobotAPI/interface/armem/MemoryInterface.ice> -#include <RobotAPI/interface/armem/MemoryListenerInterface.h> +#include <RobotAPI/interface/armem/MemoryListenerInterface.ice> module armarx diff --git a/source/RobotAPI/libraries/armem/CMakeLists.txt b/source/RobotAPI/libraries/armem/CMakeLists.txt index da280dd43..d3505babc 100644 --- a/source/RobotAPI/libraries/armem/CMakeLists.txt +++ b/source/RobotAPI/libraries/armem/CMakeLists.txt @@ -40,9 +40,11 @@ set(LIB_FILES mns/MemoryNameSystemClientPlugin.cpp mns/MemoryNameSystemComponentPlugin.cpp - client/MemoryWriter.cpp - client/MemoryReader.cpp - client/MemoryClientComponentPlugin.cpp + client/ComponentPlugin.cpp + client/Reader.cpp + client/ReaderComponentPlugin.cpp + client/Writer.cpp + client/WriterComponentPlugin.cpp component/IceMemory.cpp component/MemoryComponentPlugin.cpp @@ -83,9 +85,11 @@ set(LIB_HEADERS mns/MemoryNameSystemClientPlugin.h mns/MemoryNameSystemComponentPlugin.h - client/MemoryWriter.h - client/MemoryReader.h - client/MemoryClientComponentPlugin.h + client/ComponentPlugin.h + client/Reader.h + client/ReaderComponentPlugin.h + client/Writer.h + client/WriterComponentPlugin.h component/IceMemory.h component/MemoryComponentPlugin.h diff --git a/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp new file mode 100644 index 000000000..e49e46c15 --- /dev/null +++ b/source/RobotAPI/libraries/armem/client/ComponentPlugin.cpp @@ -0,0 +1,14 @@ +#include <RobotAPI/libraries/armem/client/ComponentPlugin.h> + + +// ArmarX +#include <ArmarXCore/core/exceptions/local/ExpressionException.h> + +// RobotAPI +#include <RobotAPI/libraries/armem/error.h> + + +armarx::armem::client::ComponentPluginUser::ComponentPluginUser() +{ + // pass +} diff --git a/source/RobotAPI/libraries/armem/client/ComponentPlugin.h b/source/RobotAPI/libraries/armem/client/ComponentPlugin.h new file mode 100644 index 000000000..da3dc0f5b --- /dev/null +++ b/source/RobotAPI/libraries/armem/client/ComponentPlugin.h @@ -0,0 +1,35 @@ +#pragma once + + +// STD/STL +#include <mutex> + +// ArmarX +#include <ArmarXCore/core/Component.h> + +// RobotAPI +#include <RobotAPI/interface/armem/MemoryInterface.h> +#include <RobotAPI/interface/armem/MemoryNameSystemInterface.h> +#include <RobotAPI/libraries/armem/client/ReaderComponentPlugin.h> +#include <RobotAPI/libraries/armem/client/WriterComponentPlugin.h> +#include <RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h> + + +namespace armarx::armem::client +{ + + /** + * @brief Utility for connecting a Memory to Ice. + */ + class ComponentPluginUser : + virtual public ReaderComponentPluginUser, + virtual public WriterComponentPluginUser + { + + public: + + ComponentPluginUser(); + + }; + +} diff --git a/source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.cpp deleted file mode 100644 index 1d480535c..000000000 --- a/source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "MemoryClientComponentPlugin.h" - -#include <ArmarXCore/core/exceptions/local/ExpressionException.h> - -#include "../error.h" - - -namespace armarx::armem::plugins -{ - - MemoryClientComponentPlugin::~MemoryClientComponentPlugin() - { - } - -} - - -namespace armarx::armem -{ - - MemoryClientComponentPluginUser::MemoryClientComponentPluginUser() - { - addPlugin(plugin); - } - -} diff --git a/source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.h b/source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.h deleted file mode 100644 index 318c08c4c..000000000 --- a/source/RobotAPI/libraries/armem/client/MemoryClientComponentPlugin.h +++ /dev/null @@ -1,55 +0,0 @@ -#pragma once - -#include <mutex> - -#include <ArmarXCore/core/Component.h> - -#include <RobotAPI/interface/armem/MemoryInterface.h> -#include <RobotAPI/interface/armem/MemoryNameSystemInterface.h> - -#include "../mns/MemoryNameSystemClientPlugin.h" -#include "MemoryReader.h" -#include "MemoryWriter.h" - - - -namespace armarx::armem::plugins -{ - - class MemoryClientComponentPlugin : public MemoryNameSystemClientPlugin - { - public: - - using MemoryNameSystemClientPlugin::MemoryNameSystemClientPlugin; - virtual ~MemoryClientComponentPlugin() override; - - - }; - -} - - -namespace armarx::armem -{ - - /** - * @brief Utility for connecting a Memory to Ice. - */ - class MemoryClientComponentPluginUser : - virtual public ManagedIceObject - , virtual public plugins::MemoryNameSystemClientPluginUser - { - public: - - MemoryClientComponentPluginUser(); - - - private: - - armem::plugins::MemoryClientComponentPlugin* plugin = nullptr; - - - }; - - -} diff --git a/source/RobotAPI/libraries/armem/client/MemoryReader.cpp b/source/RobotAPI/libraries/armem/client/Reader.cpp similarity index 79% rename from source/RobotAPI/libraries/armem/client/MemoryReader.cpp rename to source/RobotAPI/libraries/armem/client/Reader.cpp index c14180fd4..068b910cb 100644 --- a/source/RobotAPI/libraries/armem/client/MemoryReader.cpp +++ b/source/RobotAPI/libraries/armem/client/Reader.cpp @@ -1,4 +1,4 @@ -#include "MemoryReader.h" +#include "Reader.h" #include <ArmarXCore/core/logging/Logging.h> @@ -8,12 +8,12 @@ namespace armarx::armem { - MemoryReader::MemoryReader(ReadingInterfacePrx memory) : memory(memory) + Reader::Reader(ReadingInterfacePrx memory) : memory(memory) { } - MemoryPtr MemoryReader::getLatestSnapshots() + MemoryPtr Reader::getLatestSnapshots() { armem::query::EntityQueryPtr entityQuery = new armem::query::entity::Single(); armem::query::ProviderSegmentQueryPtr providerQuery = new armem::query::provider::All({entityQuery}); @@ -23,7 +23,7 @@ namespace armarx::armem return queryToCpp(memoryQuery); } - MemoryPtr MemoryReader::getAllData() + MemoryPtr Reader::getAllData() { armem::query::EntityQueryPtr entityQuery = new armem::query::entity::All(); armem::query::ProviderSegmentQueryPtr providerQuery = new armem::query::provider::All({entityQuery}); @@ -33,12 +33,12 @@ namespace armarx::armem return queryToCpp(memoryQuery); } - data::MemoryPtr MemoryReader::query(query::MemoryQueryPtr query) + data::MemoryPtr Reader::query(query::MemoryQueryPtr query) { return this->query(query::MemoryQuerySeq{query}); } - data::MemoryPtr MemoryReader::query(query::MemoryQuerySeq queries) + data::MemoryPtr Reader::query(query::MemoryQuerySeq queries) { try { @@ -59,12 +59,12 @@ namespace armarx::armem return nullptr; } - MemoryPtr MemoryReader::queryToCpp(query::MemoryQueryPtr query) + MemoryPtr Reader::queryToCpp(query::MemoryQueryPtr query) { return armem::fromIce<armem::MemoryPtr>(this->query(query)); } - MemoryPtr MemoryReader::queryToCpp(query::MemoryQuerySeq queries) + MemoryPtr Reader::queryToCpp(query::MemoryQuerySeq queries) { return armem::fromIce<armem::MemoryPtr>(this->query(queries)); } diff --git a/source/RobotAPI/libraries/armem/client/MemoryReader.h b/source/RobotAPI/libraries/armem/client/Reader.h similarity index 91% rename from source/RobotAPI/libraries/armem/client/MemoryReader.h rename to source/RobotAPI/libraries/armem/client/Reader.h index 240c2a3ef..3198671f3 100644 --- a/source/RobotAPI/libraries/armem/client/MemoryReader.h +++ b/source/RobotAPI/libraries/armem/client/Reader.h @@ -12,7 +12,7 @@ namespace armarx::armem /** * @brief Helps sending data to a memory. */ - class MemoryReader + class Reader { public: @@ -20,7 +20,7 @@ namespace armarx::armem * @brief Construct a memory reader. * @param memory The memory proxy. */ - MemoryReader(ReadingInterfacePrx memory = nullptr); + Reader(ReadingInterfacePrx memory = nullptr); MemoryPtr getLatestSnapshots(); diff --git a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp new file mode 100644 index 000000000..0d9bd7d76 --- /dev/null +++ b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.cpp @@ -0,0 +1,21 @@ +#include <RobotAPI/libraries/armem/client/ReaderComponentPlugin.h> + + +// ArmarX +#include <ArmarXCore/core/exceptions/local/ExpressionException.h> + +// RobotAPI +#include <RobotAPI/libraries/armem/error.h> + + +armarx::armem::client::ReaderComponentPlugin::~ReaderComponentPlugin() +{ + // pass +} + + +armarx::armem::client::ReaderComponentPluginUser::ReaderComponentPluginUser() : + memoryReader{nullptr} +{ + addPlugin(plugin); +} diff --git a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h new file mode 100644 index 000000000..b67727b5a --- /dev/null +++ b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h @@ -0,0 +1,51 @@ +#pragma once + + +// STD/STL +#include <mutex> + +// ArmarX +#include <ArmarXCore/core/Component.h> + +// RobotAPI +#include <RobotAPI/interface/armem/MemoryInterface.h> +#include <RobotAPI/interface/armem/MemoryNameSystemInterface.h> +#include <RobotAPI/libraries/armem/client/Reader.h> +#include <RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h> + + +namespace armarx::armem::client +{ + + class ReaderComponentPlugin : + public plugins::MemoryNameSystemClientPlugin + { + + public: + + using plugins::MemoryNameSystemClientPlugin::MemoryNameSystemClientPlugin; + virtual ~ReaderComponentPlugin() override; + + }; + + + class ReaderComponentPluginUser : + virtual public ManagedIceObject, + virtual public plugins::MemoryNameSystemClientPluginUser + { + + public: + + ReaderComponentPluginUser(); + + protected: + + Reader memoryReader; + + private: + + ReaderComponentPlugin* plugin = nullptr; + + }; + +} diff --git a/source/RobotAPI/libraries/armem/client/MemoryWriter.cpp b/source/RobotAPI/libraries/armem/client/Writer.cpp similarity index 77% rename from source/RobotAPI/libraries/armem/client/MemoryWriter.cpp rename to source/RobotAPI/libraries/armem/client/Writer.cpp index 03025a45d..3d9fb1b81 100644 --- a/source/RobotAPI/libraries/armem/client/MemoryWriter.cpp +++ b/source/RobotAPI/libraries/armem/client/Writer.cpp @@ -1,4 +1,4 @@ -#include "MemoryWriter.h" +#include "Writer.h" #include <ArmarXCore/core/exceptions/local/ExpressionException.h> @@ -8,11 +8,11 @@ namespace armarx::armem { - MemoryWriter::MemoryWriter(WritingInterfacePrx memory) : memory(memory) + Writer::Writer(WritingInterfacePrx memory) : memory(memory) { } - data::AddSegmentResult MemoryWriter::addSegment(const std::string& coreSegmentName, const std::string& providerSegmentName) + data::AddSegmentResult Writer::addSegment(const std::string& coreSegmentName, const std::string& providerSegmentName) { data::AddSegmentInput input; input.coreSegmentName = coreSegmentName; @@ -20,14 +20,14 @@ namespace armarx::armem return addSegment(input); } - data::AddSegmentResult MemoryWriter::addSegment(const data::AddSegmentInput& input) + data::AddSegmentResult Writer::addSegment(const data::AddSegmentInput& input) { data::AddSegmentsResult results = addSegments({input}); ARMARX_CHECK_EQUAL(results.size(), 1); return results.at(0); } - data::AddSegmentsResult MemoryWriter::addSegments(const data::AddSegmentsInput& inputs) + data::AddSegmentsResult Writer::addSegments(const data::AddSegmentsInput& inputs) { ARMARX_CHECK_NOT_NULL(memory); data::AddSegmentsResult results = memory->addSegments(inputs); @@ -36,7 +36,7 @@ namespace armarx::armem } - CommitResult MemoryWriter::commit(Commit commit) + CommitResult Writer::commit(Commit commit) { ARMARX_CHECK_NOT_NULL(memory); @@ -74,7 +74,7 @@ namespace armarx::armem } - EntityUpdateResult MemoryWriter::commit(const EntityUpdate& update) + EntityUpdateResult Writer::commit(const EntityUpdate& update) { armem::Commit commit; commit.updates.push_back(update); diff --git a/source/RobotAPI/libraries/armem/client/MemoryWriter.h b/source/RobotAPI/libraries/armem/client/Writer.h similarity index 91% rename from source/RobotAPI/libraries/armem/client/MemoryWriter.h rename to source/RobotAPI/libraries/armem/client/Writer.h index eda2d506e..f2f493d4a 100644 --- a/source/RobotAPI/libraries/armem/client/MemoryWriter.h +++ b/source/RobotAPI/libraries/armem/client/Writer.h @@ -11,7 +11,7 @@ namespace armarx::armem /** * @brief Helps sending data to a memory. */ - class MemoryWriter + class Writer { public: @@ -19,7 +19,7 @@ namespace armarx::armem * @brief Construct a memory writer. * @param memory The memory proxy. */ - MemoryWriter(WritingInterfacePrx memory = nullptr); + Writer(WritingInterfacePrx memory = nullptr); data::AddSegmentResult addSegment(const std::string& coreSegmentName, const std::string& providerSegmentName); diff --git a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp new file mode 100644 index 000000000..3a4885596 --- /dev/null +++ b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp @@ -0,0 +1,21 @@ +#include <RobotAPI/libraries/armem/client/WriterComponentPlugin.h> + + +// ArmarX +#include <ArmarXCore/core/exceptions/local/ExpressionException.h> + +// RobotAPI +#include <RobotAPI/libraries/armem/error.h> + + +armarx::armem::client::WriterComponentPlugin::~WriterComponentPlugin() +{ + // pass +} + + +armarx::armem::client::WriterComponentPluginUser::WriterComponentPluginUser() : + memoryWriter{nullptr} +{ + addPlugin(plugin); +} diff --git a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h new file mode 100644 index 000000000..179f3227c --- /dev/null +++ b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h @@ -0,0 +1,51 @@ +#pragma once + + +// STD/STL +#include <mutex> + +// ArmarX +#include <ArmarXCore/core/Component.h> + +// RobotAPI +#include <RobotAPI/interface/armem/MemoryInterface.h> +#include <RobotAPI/interface/armem/MemoryNameSystemInterface.h> +#include <RobotAPI/libraries/armem/client/Writer.h> +#include <RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h> + + +namespace armarx::armem::client +{ + + class WriterComponentPlugin : + public plugins::MemoryNameSystemClientPlugin + { + + public: + + using plugins::MemoryNameSystemClientPlugin::MemoryNameSystemClientPlugin; + virtual ~WriterComponentPlugin() override; + + }; + + + class WriterComponentPluginUser : + virtual public ManagedIceObject, + virtual public plugins::MemoryNameSystemClientPluginUser + { + + public: + + WriterComponentPluginUser(); + + protected: + + Writer memoryWriter; + + private: + + WriterComponentPlugin* plugin = nullptr; + + }; + +} -- GitLab