diff --git a/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt b/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt index 99070a2c52f970a6ac9f64992a5a9a113de7f227..cc053e479e74106b7a682d6c2c40549eb486f5d0 100644 --- a/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt +++ b/source/RobotAPI/components/armem/server/ExampleMemory/CMakeLists.txt @@ -8,7 +8,6 @@ set(COMPONENT_LIBS ArmarXCore ArmarXCoreInterfaces # for DebugObserverInterface ArmarXGuiComponentPlugins RobotAPICore RobotAPIInterfaces armem - # RobotAPIComponentPlugins # for ArViz and other plugins ${IVT_LIBRARIES} ) diff --git a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp index 86db9939460d3661a0f358df3f5e41f76f7acf2d..446c0e2294ba03c7b9042d98416fc5a27f1513a7 100644 --- a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp +++ b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.cpp @@ -76,7 +76,7 @@ namespace armarx void ExampleMemory::onConnectComponent() { - RemoteGui__createTab(); + createRemoteGuiTab(); RemoteGui_startRunningTask(); } @@ -95,7 +95,7 @@ namespace armarx armem::data::AddSegmentsResult ExampleMemory::addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&) { // This function is overloaded to trigger the remote gui rebuild. - armem::data::AddSegmentsResult result = ComponentPluginUser::addSegments(input, p.core.addOnUsage); + armem::data::AddSegmentsResult result = ReadWritePluginUser::addSegments(input, p.core.addOnUsage); tab.rebuild = true; return result; } @@ -104,7 +104,7 @@ namespace armarx armem::data::CommitResult ExampleMemory::commit(const armem::data::Commit& commit, const Ice::Current&) { // This function is overloaded to trigger the remote gui rebuild. - armem::data::CommitResult result = ComponentPluginUser::commit(commit); + armem::data::CommitResult result = ReadWritePluginUser::commit(commit); tab.rebuild = true; return result; } @@ -118,7 +118,7 @@ namespace armarx // REMOTE GUI - void ExampleMemory::RemoteGui__createTab() + void ExampleMemory::createRemoteGuiTab() { using namespace armarx::RemoteGui::Client; @@ -136,7 +136,7 @@ namespace armarx { if (tab.rebuild.exchange(false)) { - RemoteGui__createTab(); + createRemoteGuiTab(); } } diff --git a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h index 86741dcff79045c02e04c1bf7b7f68df60ccacdc..a7dda191aa96c14567899a4f9064edf5f69d2bcf 100644 --- a/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h +++ b/source/RobotAPI/components/armem/server/ExampleMemory/ExampleMemory.h @@ -27,9 +27,8 @@ #include <ArmarXCore/interface/observers/ObserverInterface.h> #include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h> -#include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> -#include <RobotAPI/libraries/armem/server/ComponentPlugin.h> +#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h> namespace armarx @@ -47,9 +46,8 @@ namespace armarx */ class ExampleMemory : virtual public armarx::Component - , virtual public armem::server::ComponentPluginUser + , virtual public armem::server::ReadWritePluginUser , virtual public LightweightRemoteGuiComponentPluginUser - // , virtual public armarx::ArVizComponentPluginUser { public: @@ -65,7 +63,7 @@ namespace armarx // LightweightRemoteGuiComponentPluginUser interface public: - void RemoteGui__createTab(); + void createRemoteGuiTab(); void RemoteGui_update() override; diff --git a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp index 02a4c51c8c501b28c63e589537b957c0bab7cc7e..756ffdcabdaa97085db88e4d186058d24790dfb7 100644 --- a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp +++ b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.cpp @@ -76,7 +76,7 @@ namespace armarx armem::data::AddSegmentsResult GeneralPurposeMemory::addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&) { // Allowing adding core segments. - armem::data::AddSegmentsResult result = ComponentPluginUser::addSegments(input, addCoreSegmentOnUsage); + armem::data::AddSegmentsResult result = ReadWritePluginUser::addSegments(input, addCoreSegmentOnUsage); return result; } diff --git a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h index fe0aa7989fbe6108ae7b162777b9746dd77c0e78..0ee828883381d8e8272b2d49a1fdfa81179e69ed 100644 --- a/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h +++ b/source/RobotAPI/components/armem/server/GeneralPurposeMemory/GeneralPurposeMemory.h @@ -28,7 +28,7 @@ #include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h> #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> -#include <RobotAPI/libraries/armem/server/ComponentPlugin.h> +#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h> namespace armarx @@ -45,8 +45,8 @@ namespace armarx * Detailed description of class GeneralPurposeMemory. */ class GeneralPurposeMemory : - virtual public armarx::Component, - virtual public armem::server::ComponentPluginUser + virtual public armarx::Component + , virtual public armem::server::ReadWritePluginUser { public: diff --git a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp index f44ee600791e3bfaae64b9c119b458241c4a8ab4..3555cb2d4ed20b423c43dcc127f35f9983001ad3 100644 --- a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp +++ b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.cpp @@ -22,12 +22,6 @@ #include "MotionMemory.h" -#include <ArmarXCore/core/exceptions/local/ExpressionException.h> - -#include <SimoxUtility/algorithm/string.h> - -#include <RobotAPI/libraries/armem/core/error.h> - namespace armarx { @@ -44,7 +38,7 @@ namespace armarx MotionMemory::MotionMemory() : - mdbMotions(armem::server::ComponentPluginUser::iceAdapter()) + mdbMotions(iceAdapter()) { } diff --git a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h index 2363dae593ffe51693cec3cca45ce8eef54b206c..b457d713a58a369b83f8f176d8bd241de95be37f 100644 --- a/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h +++ b/source/RobotAPI/components/armem/server/MotionMemory/MotionMemory.h @@ -22,11 +22,11 @@ #pragma once +#include <RobotAPI/libraries/armem_motions/server/MotionDatabase/MDBMotions/Segment.h> -#include <ArmarXCore/core/Component.h> -#include <RobotAPI/libraries/armem/server/ComponentPlugin.h> +#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h> -#include <RobotAPI/libraries/armem_motions/server/MotionDatabase/MDBMotions/Segment.h> +#include <ArmarXCore/core/Component.h> namespace armarx @@ -44,7 +44,7 @@ namespace armarx */ class MotionMemory : virtual public armarx::Component - , virtual public armem::server::ComponentPluginUser + , virtual public armem::server::ReadWritePluginUser { public: diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp index 23a8210166eada153da6fe5542c37676bd61d4a0..c605df2efece207f0a0b11337dd96c61ca534470 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.cpp @@ -58,10 +58,9 @@ namespace armarx::armem::server::obj ObjectMemory::ObjectMemory() : - server::ComponentPluginUser(), - instance::SegmentAdapter(server::ComponentPluginUser::iceAdapter()), - classSegment(server::ComponentPluginUser::iceAdapter()), - attachmentSegment(server::ComponentPluginUser::iceAdapter()) + instance::SegmentAdapter(iceAdapter()), + classSegment(iceAdapter()), + attachmentSegment(iceAdapter()) { } diff --git a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h index 44332653fc095f826aac0ccf5e5e79c124769dfd..91217c90cc0dcb5be302663a0b472cac3327f3c0 100644 --- a/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h +++ b/source/RobotAPI/components/armem/server/ObjectMemory/ObjectMemory.h @@ -26,7 +26,7 @@ #include <RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h> #include <RobotAPI/libraries/armem_objects/server/attachments/Segment.h> -#include <RobotAPI/libraries/armem/server/ComponentPlugin.h> +#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h> #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> #include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotStateComponentPlugin.h> @@ -59,7 +59,7 @@ namespace armarx::armem::server::obj virtual public Component , virtual public armarx::armem::server::ObjectMemoryInterface - , virtual public armarx::armem::server::ComponentPluginUser + , virtual public armarx::armem::server::ReadWritePluginUser , virtual public armarx::armem::server::obj::instance::SegmentAdapter , virtual public armarx::RobotStateComponentPluginUser @@ -120,6 +120,6 @@ namespace armarx::armem::server::obj }; -} // namespace armarx::armem::server::obj +} #undef ICE_CURRENT_ARG diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp index 2b6edb972a904b10b8893c67d4564f286d0ea9dd..27aaa07ddf1c0f0dc819a9a74366036cdadfe11c 100644 --- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp +++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.cpp @@ -22,32 +22,25 @@ #include "RobotStateMemory.h" -// STD -#include <memory> +#include <RobotAPI/libraries/armem_robot_state/server/proprioception/aron_conversions.h> -// Simox -#include <SimoxUtility/algorithm/string.h> +#include <RobotAPI/libraries/armem_robot_state/server/common/Visu.h> +#include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h> -// ArmarX #include <ArmarXCore/core/exceptions/local/ExpressionException.h> -#include <ArmarXCore/core/logging/Logging.h> -#include <ArmarXCore/core/system/ArmarXDataPath.h> #include <ArmarXCore/libraries/ArmarXCoreComponentPlugins/DebugObserverComponentPlugin.h> +#include <ArmarXCore/core/logging/Logging.h> -#include <RobotAPI/libraries/armem/core/error.h> -#include <RobotAPI/libraries/armem_robot_state/server/common/Visu.h> -#include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotUnitComponentPlugin.h> - -#include <RobotAPI/libraries/armem_robot_state/server/proprioception/aron_conversions.h> +#include <SimoxUtility/algorithm/string.h> namespace armarx::armem::server::robot_state { RobotStateMemory::RobotStateMemory() : - descriptionSegment(server::ComponentPluginUser::iceAdapter()), - proprioceptionSegment(server::ComponentPluginUser::iceAdapter()), - localizationSegment(server::ComponentPluginUser::iceAdapter()), + descriptionSegment(iceAdapter()), + proprioceptionSegment(iceAdapter()), + localizationSegment(iceAdapter()), commonVisu(descriptionSegment, proprioceptionSegment, localizationSegment) { addPlugin(debugObserver); @@ -59,19 +52,17 @@ namespace armarx::armem::server::robot_state robotUnit.writer.setTag(getName()); } - RobotStateMemory::~RobotStateMemory() = default; + + RobotStateMemory::~RobotStateMemory() + { + } armarx::PropertyDefinitionsPtr RobotStateMemory::createPropertyDefinitions() { armarx::PropertyDefinitionsPtr defs = new ComponentPropertyDefinitions(getConfigIdentifier()); - const std::string prefix = "mem."; - - this->setMemoryName("RobotState"); - defs->optional(workingMemory().name(), prefix + "MemoryName", "Name of this memory server."); - - const std::string robotUnitPrefix{sensorValuePrefix}; + const std::string robotUnitPrefix = sensorValuePrefix; defs->optional(robotUnit.reader.properties.sensorPrefix, robotUnitPrefix + "SensorValuePrefix", "Prefix of all sensor values."); @@ -83,6 +74,11 @@ namespace armarx::armem::server::robot_state "Minimum is 1, max is " + std::to_string(ROBOT_UNIT_MAXIMUM_FREQUENCY) + ".") .setMin(1).setMax(ROBOT_UNIT_MAXIMUM_FREQUENCY); + + const std::string prefix = "mem."; + + workingMemory().name() = "RobotState"; + descriptionSegment.defineProperties(defs, prefix + "desc."); proprioceptionSegment.defineProperties(defs, prefix + "prop."); localizationSegment.defineProperties(defs, prefix + "loc."); @@ -105,7 +101,7 @@ namespace armarx::armem::server::robot_state localizationSegment.onInit(); commonVisu.init(); - robotUnit.pollFrequency = std::clamp(robotUnit.pollFrequency, 1, ROBOT_UNIT_MAXIMUM_FREQUENCY); + robotUnit.pollFrequency = std::clamp(robotUnit.pollFrequency, 0.f, ROBOT_UNIT_MAXIMUM_FREQUENCY); robotUnit.writer.properties.memoryBatchSize = std::max(static_cast<unsigned int>(1), robotUnit.writer.properties.memoryBatchSize); std::vector<std::string> includePaths; @@ -185,7 +181,6 @@ namespace armarx::armem::server::robot_state void RobotStateMemory::startRobotUnitStream() { - std::lock_guard lock{startStopMutex}; if (robotUnit.reader.task->isRunning() || robotUnit.writer.task->isRunning()) { if (robotUnit.reader.task->isRunning() && robotUnit.writer.task->isRunning()) @@ -213,7 +208,6 @@ namespace armarx::armem::server::robot_state void RobotStateMemory::stopRobotUnitStream() { - std::lock_guard lock{startStopMutex}; robotUnit.reader.task->stop(); robotUnit.writer.task->stop(); } diff --git a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h index 2cd2be9e3a5838f16b1a385e829416429b7869cd..74dd4a3fa12fea08186ec14d1b93fdf6872ac7dd 100644 --- a/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h +++ b/source/RobotAPI/components/armem/server/RobotStateMemory/RobotStateMemory.h @@ -22,17 +22,14 @@ #pragma once -// STD -#include <atomic> -#include <optional> +#include <mutex> #include <queue> -// ArmarX #include <ArmarXCore/core/Component.h> #include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> #include <RobotAPI/libraries/RobotUnitDataStreamingReceiver/RobotUnitDataStreamingReceiver.h> -#include <RobotAPI/libraries/armem/server/ComponentPlugin.h> +#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h> #include <RobotAPI/libraries/armem_robot_state/server/description/Segment.h> #include <RobotAPI/libraries/armem_robot_state/server/localization/Segment.h> @@ -64,7 +61,7 @@ namespace armarx::armem::server::robot_state */ class RobotStateMemory : virtual public armarx::Component, - virtual public armem::server::ComponentPluginUser, + virtual public armem::server::ReadWritePluginUser, virtual public armarx::ArVizComponentPluginUser { public: @@ -96,7 +93,6 @@ namespace armarx::armem::server::robot_state armarx::plugins::DebugObserverComponentPlugin* debugObserver = nullptr; - mutable std::recursive_mutex startStopMutex; // Core segments // - description @@ -115,7 +111,7 @@ namespace armarx::armem::server::robot_state struct RobotUnit { - int pollFrequency = 50; + float pollFrequency = 50; armarx::plugins::RobotUnitComponentPlugin* plugin = nullptr; proprioception::RobotUnitReader reader; @@ -123,13 +119,13 @@ namespace armarx::armem::server::robot_state // queue std::queue<proprioception::RobotUnitData> dataQueue; - mutable std::mutex dataMutex; + std::mutex dataMutex; }; RobotUnit robotUnit; // params - static constexpr int ROBOT_UNIT_MAXIMUM_FREQUENCY = 100; + static constexpr float ROBOT_UNIT_MAXIMUM_FREQUENCY = 100; static constexpr const char* sensorValuePrefix = "RobotUnit."; diff --git a/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt b/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt index b9d1d4fd44ed2bf58f8eccd64faa9ab0eafc83ef..eee41fad2917ac3689f98d103f1a927a0715d205 100644 --- a/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt +++ b/source/RobotAPI/components/armem/server/SkillsMemory/CMakeLists.txt @@ -2,10 +2,9 @@ armarx_component_set_name("SkillsMemory") set(COMPONENT_LIBS - ArmarXCore ArmarXCoreInterfaces ArmarXCoreObservers # for DebugObserverInterface - ArmarXGuiComponentPlugins - RobotAPICore RobotAPIInterfaces armem armem_skills - # RobotAPIComponentPlugins # for ArViz and other plugins + ArmarXCore ArmarXCoreInterfaces + RobotAPICore RobotAPIInterfaces + armem armem_skills ${IVT_LIBRARIES} ) diff --git a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp index 2899736c93b1437772dea19f9cd83ce15610f4c2..f7741f3d3991896c43f2d3172c515bfec35af0ef 100644 --- a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp +++ b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.cpp @@ -31,8 +31,6 @@ #include <RobotAPI/libraries/armem/core/error.h> #include <RobotAPI/libraries/armem/core/wm/memory_definitions.h> #include <RobotAPI/libraries/armem/server/wm/memory_definitions.h> -#include <RobotAPI/libraries/armem/server/MemoryRemoteGui.h> - #include <RobotAPI/libraries/armem_skills/aron_conversions.h> @@ -51,9 +49,6 @@ namespace armarx workingMemory().name() = "Skills"; - // Publish - defs->topic(debugObserver); - // Statechart Logging defs->optional(p.statechartCoreSegmentName, "StatechartCoreSegmentName", "Name of the core segment for statecharts."); defs->optional(p.statechartTransitionsProviderSegmentName, "TransitionsProviderSegmentName", "Name of the provider segment for statechart transitions."); @@ -102,14 +97,7 @@ namespace armarx // WRITING armem::data::AddSegmentsResult SkillsMemory::addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&) { - armem::data::AddSegmentsResult result = ComponentPluginUser::addSegments({input}, p.core.addOnUsage); - return result; - } - - - armem::data::CommitResult SkillsMemory::commit(const armem::data::Commit& commit, const Ice::Current&) - { - armem::data::CommitResult result = ComponentPluginUser::commit(commit); + armem::data::AddSegmentsResult result = ReadWritePluginUser::addSegments({input}, p.core.addOnUsage); return result; } diff --git a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h index 0c64f675160bb12c3937aee8561e58868d8abb28..6eb9114c94a94c851ba6e7437bb74338353b90db 100644 --- a/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h +++ b/source/RobotAPI/components/armem/server/SkillsMemory/SkillsMemory.h @@ -24,12 +24,9 @@ #include <ArmarXCore/core/Component.h> -#include <ArmarXCore/interface/observers/ObserverInterface.h> -#include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/LightweightRemoteGuiComponentPlugin.h> +#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h> -#include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h> -#include <RobotAPI/libraries/armem/server/ComponentPlugin.h> #include <RobotAPI/libraries/armem_skills/aron/Statechart.aron.generated.h> #include <RobotAPI/libraries/armem_skills/StatechartListener.h> @@ -49,8 +46,7 @@ namespace armarx */ class SkillsMemory : virtual public armarx::Component, - virtual public armem::server::ComponentPluginUser - // , virtual public armarx::ArVizComponentPluginUser + virtual public armem::server::ReadWritePluginUser { public: @@ -64,7 +60,6 @@ namespace armarx public: armem::data::AddSegmentsResult addSegments(const armem::data::AddSegmentsInput& input, const Ice::Current&) override; - armem::data::CommitResult commit(const armem::data::Commit& commit, const Ice::Current&) override; protected: @@ -87,8 +82,6 @@ namespace armarx private: - DebugObserverInterfacePrx debugObserver; - struct Properties { // Statechart transition logging diff --git a/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h b/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h index 2382459ee2fa0ad5bd52300c25cbad0562ed5921..8018df78fc2b92de1353089521c8649aded3b377 100644 --- a/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h +++ b/source/RobotAPI/components/armem/server/SubjectMemory/SubjectMemory.h @@ -24,7 +24,7 @@ #include <ArmarXCore/core/Component.h> -#include <RobotAPI/libraries/armem/server/ComponentPlugin.h> +#include <RobotAPI/libraries/armem/server/plugins/ReadWritePluginUser.h> #include <RobotAPI/libraries/armem_subjects/server/MotionDatabase/Segment.h> @@ -43,7 +43,7 @@ namespace armarx */ class SubjectMemory : virtual public armarx::Component - , virtual public armem::server::ComponentPluginUser + , virtual public armem::server::ReadWritePluginUser { public: