diff --git a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp index 2e59775c3a5fad62e963d481ea90482968290b70..6525be6b5414daa0d3052f3bc2d6effc7acf5c46 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp +++ b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.cpp @@ -23,7 +23,7 @@ namespace armarx::plugins void ObjectPoseClientPlugin::preOnConnectComponent() { - parent<ObjectPoseClientPluginUser>().objectPoseStorage = createObjectPoseStorage(); + _objectPoseStorage = createObjectPoseStorage(); } objpose::ObjectPoseStorageInterfacePrx ObjectPoseClientPlugin::createObjectPoseStorage() @@ -63,23 +63,18 @@ namespace armarx objpose::ObjectPoseClient ObjectPoseClientPluginUser::getClient() const { - return objpose::ObjectPoseClient(objectPoseStorage, getObjectFinder()); + return plugin->createClient(); } objpose::ObjectPoseSeq ObjectPoseClientPluginUser::getObjectPoses() { - if (!objectPoseStorage) - { - ARMARX_WARNING << "No object pose observer."; - return {}; - } - return objpose::fromIce(objectPoseStorage->getObjectPoses()); + return getClient().fetchObjectPoses(); } objpose::ObjectPoseSeq ObjectPoseClientPluginUser::getObjectPosesByProvider(const std::string& providerName) { - return objpose::ObjectPoseClient(objectPoseStorage, getObjectFinder()).fetchObjectPosesFromProvider(providerName); + return getClient().fetchObjectPosesFromProvider(providerName); } diff --git a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h index 22998723862c963ad38985f81e37204e35da7ac9..7f27d9768474ea7ff916d3b65fb03c7fff97aa56 100644 --- a/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h +++ b/source/RobotAPI/libraries/ArmarXObjects/plugins/ObjectPoseClientPlugin.h @@ -16,9 +16,7 @@ namespace armarx::plugins using ComponentPlugin::ComponentPlugin; - void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override; objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage(); - objpose::ObjectPoseClient createClient(); template<class...Ts> @@ -45,12 +43,15 @@ namespace armarx::plugins private: + void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override; + void preOnInitComponent() override; void preOnConnectComponent() override; static constexpr const char* PROPERTY_NAME = "ObjectMemoryName"; ObjectFinder _finder; + objpose::ObjectPoseStorageInterfacePrx _objectPoseStorage; }; } @@ -73,12 +74,8 @@ namespace armarx ObjectPoseClientPluginUser(); - objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage(); - objpose::ObjectPoseStorageInterfacePrx objectPoseStorage; - - objpose::ObjectPoseClient getClient() const; - + objpose::ObjectPoseStorageInterfacePrx createObjectPoseStorage(); objpose::ObjectPoseSeq getObjectPoses(); objpose::ObjectPoseSeq getObjectPosesByProvider(const std::string& providerName);