Skip to content
Snippets Groups Projects
Commit 32ace0cd authored by Rainer Kartmann's avatar Rainer Kartmann
Browse files

Move subscriptions from Reader to MemoryNameSystem client

parent f79c8384
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,8 @@
#include <RobotAPI/interface/armem/server/ReadingMemoryInterface.ice>
#include <RobotAPI/interface/armem/server/WritingMemoryInterface.ice>
#include <RobotAPI/interface/armem/client/MemoryListenerInterface.ice>
module armarx
{
......@@ -21,7 +23,10 @@ module armarx
{
};
interface MemoryInterface extends WorkingMemoryInterface, LongTermMemoryInterface
interface MemoryInterface extends
WorkingMemoryInterface,
LongTermMemoryInterface,
client::MemoryListenerInterface
{
};
};
......
......@@ -29,6 +29,7 @@
#include <RobotAPI/interface/armem/server/MemoryInterface.h>
#include <RobotAPI/libraries/armem/core/MemoryID.h>
#include <RobotAPI/libraries/armem/client/util/MemoryListener.h>
namespace armarx
......@@ -64,7 +65,7 @@ namespace armarx::armem::client
* memory servers, as well as retrieving the data for arbitrary entity or
* entity snapshot IDs.
*/
class MemoryNameSystem
class MemoryNameSystem : public util::MemoryListener
{
public:
......
......@@ -3,6 +3,7 @@
#include <ArmarXCore/core/exceptions/local/ExpressionException.h>
#include <RobotAPI/libraries/armem/core/error.h>
#include <RobotAPI/libraries/armem/core/ice_conversions.h>
......@@ -30,6 +31,8 @@ namespace armarx::armem::client::plugins
"Whether to use (and depend on) the Memory Name System (MNS)."
"\nSet to false to use this memory as a stand-alone.");
}
properties->topic<MemoryListenerInterface>("MemoryUpdates");
}
void MemoryNameSystemComponentPlugin::preOnInitComponent()
......@@ -85,6 +88,14 @@ namespace armarx::armem::client
{
}
void MemoryNameSystemComponentPluginUser::memoryUpdated(
const std::vector<data::MemoryID>& updatedSnapshotIDsIce, const Ice::Current&)
{
std::vector<MemoryID> updatedSnapshotIDs;
fromIce(updatedSnapshotIDsIce, updatedSnapshotIDs);
memoryNameSystem.updated(updatedSnapshotIDs);
}
armem::data::WaitForMemoryResult MemoryNameSystemComponentPluginUser::useMemoryServer(const MemoryID& id)
{
armem::data::WaitForMemoryResult result;
......
......@@ -3,6 +3,7 @@
#include <ArmarXCore/core/Component.h>
#include <RobotAPI/interface/armem/mns/MemoryNameSystemInterface.h>
#include <RobotAPI/interface/armem/client/MemoryListenerInterface.h>
#include <RobotAPI/libraries/armem/core/MemoryID.h>
#include <RobotAPI/libraries/armem/client/MemoryNameSystem.h>
......@@ -58,17 +59,26 @@ namespace armarx::armem::client
{
class MemoryNameSystemComponentPluginUser :
virtual public ManagedIceObject
virtual public ManagedIceObject,
virtual public MemoryListenerInterface
{
protected:
MemoryNameSystemComponentPluginUser();
virtual ~MemoryNameSystemComponentPluginUser();
virtual ~MemoryNameSystemComponentPluginUser() override;
virtual void memoryUpdated(const std::vector<data::MemoryID>& updatedSnapshotIDs, const Ice::Current& current) override;
[[deprecated("Use memoryNameSystem member instead of function inherited by MemoryNameSystemComponentPluginUser.")]]
armem::data::WaitForMemoryResult waitForMemoryServer(const std::string& memoryName);
[[deprecated("Use memoryNameSystem member instead of function inherited by MemoryNameSystemComponentPluginUser.")]]
armem::data::ResolveMemoryNameResult resolveMemoryServer(const std::string& memoryName);
[[deprecated("Use memoryNameSystem member instead of function inherited by MemoryNameSystemComponentPluginUser.")]]
armem::data::WaitForMemoryResult useMemoryServer(const MemoryID& id);
[[deprecated("Use memoryNameSystem member instead of function inherited by MemoryNameSystemComponentPluginUser.")]]
virtual armem::data::WaitForMemoryResult useMemoryServer(const std::string& memoryName);
......
......@@ -11,7 +11,6 @@
#include <RobotAPI/libraries/armem/core/workingmemory/ice_conversions.h>
#include <RobotAPI/libraries/armem/core/workingmemory/Memory.h>
#include <RobotAPI/libraries/armem/core/longtermmemory/Memory.h>
#include <RobotAPI/libraries/armem/client/util/MemoryListener.h>
#include "Query.h"
......@@ -22,7 +21,7 @@ namespace armarx::armem::client
/**
* @brief Reads data from a memory server.
*/
class Reader : public util::MemoryListener
class Reader
{
public:
......
......@@ -17,13 +17,9 @@ namespace armarx::armem::client::plugins
addPluginDependency(mnsPlugin);
}
ReaderComponentPlugin::~ReaderComponentPlugin()
{
}
void ReaderComponentPlugin::postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties)
ReaderComponentPlugin::~ReaderComponentPlugin()
{
properties->topic<MemoryListenerInterface>("MemoryUpdates");
}
}
......@@ -42,22 +38,13 @@ namespace armarx::armem::client
}
void
ReaderComponentPluginUser::memoryUpdated(
const std::vector<data::MemoryID>& updatedSnapshotIDsIce, const Ice::Current&)
{
std::vector<MemoryID> updatedSnapshotIDs;
fromIce(updatedSnapshotIDsIce, updatedSnapshotIDs);
memoryReader.updated(updatedSnapshotIDs);
}
void
ReaderComponentPluginUser::setReadingMemoryServer(server::ReadingMemoryInterfacePrx memory)
{
memoryReader.setReadingMemory(memory);
}
armem::data::WaitForMemoryResult ReaderComponentPluginUser::useMemoryServer(const std::string& memoryName)
{
armem::data::WaitForMemoryResult result = MemoryNameSystemComponentPluginUser::useMemoryServer(memoryName);
......
......@@ -11,7 +11,6 @@
#include <RobotAPI/libraries/aron/core/navigator/data/AllNavigators.h>
#include <RobotAPI/interface/armem/mns/MemoryNameSystemInterface.h>
#include <RobotAPI/interface/armem/server/ReadingMemoryInterface.h>
#include <RobotAPI/interface/armem/client/MemoryListenerInterface.h>
#include <RobotAPI/libraries/armem/client/Reader.h>
#include <RobotAPI/libraries/armem/client/MemoryNameSystemComponentPlugin.h>
......@@ -28,8 +27,6 @@ namespace armarx::armem::client::plugins
ReaderComponentPlugin(ManagedIceObject& parent, std::string pre);
~ReaderComponentPlugin() override;
void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
private:
......@@ -45,8 +42,7 @@ namespace armarx::armem::client
class ReaderComponentPluginUser :
virtual public ManagedIceObject,
virtual public MemoryNameSystemComponentPluginUser,
virtual public MemoryListenerInterface
virtual public MemoryNameSystemComponentPluginUser
{
public:
......@@ -54,11 +50,10 @@ namespace armarx::armem::client
ReaderComponentPluginUser();
~ReaderComponentPluginUser() override;
[[deprecated("Use memoryNameSystem member instead of function inherited by ReaderComponentPluginUser.")]]
virtual armem::data::WaitForMemoryResult useMemoryServer(const std::string& memoryName) override;
using MemoryNameSystemComponentPluginUser::useMemoryServer;
virtual void memoryUpdated(const std::vector<data::MemoryID>& updatedSnapshotIDs, const Ice::Current& current) override;
protected:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment