Skip to content
Snippets Groups Projects
Commit 78bce721 authored by Christian Dreher's avatar Christian Dreher
Browse files

refactor: Restructure client code, add combined plugins and reader/writer plugins

parent 1fbec4be
No related branches found
No related tags found
3 merge requests!102ArMem Memory Updates,!100Memory QueryBuilder,!99Memory subscriptions
Showing
with 235 additions and 67 deletions
......@@ -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();
......
......@@ -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:
......
......@@ -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())
......
......@@ -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;
......
......@@ -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
......
......@@ -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
......
#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
}
#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 "../mns/MemoryNameSystemClientPlugin.h"
#include "MemoryReader.h"
#include "MemoryWriter.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::plugins
{
class MemoryClientComponentPlugin : public MemoryNameSystemClientPlugin
{
public:
using MemoryNameSystemClientPlugin::MemoryNameSystemClientPlugin;
virtual ~MemoryClientComponentPlugin() override;
};
}
namespace armarx::armem
namespace armarx::armem::client
{
/**
* @brief Utility for connecting a Memory to Ice.
*/
class MemoryClientComponentPluginUser :
virtual public ManagedIceObject
, virtual public plugins::MemoryNameSystemClientPluginUser
class ComponentPluginUser :
virtual public ReaderComponentPluginUser,
virtual public WriterComponentPluginUser
{
public:
MemoryClientComponentPluginUser();
private:
armem::plugins::MemoryClientComponentPlugin* plugin = nullptr;
public:
ComponentPluginUser();
};
}
#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);
}
}
#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));
}
......
......@@ -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();
......
#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);
}
#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;
};
}
#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);
......
......@@ -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);
......
#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);
}
#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;
};
}
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