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

Add class segment to ObjectMemory

parent 690bde46
No related branches found
No related tags found
2 merge requests!140armem/dev -> master,!133Add Object Memory with Class and Instance Segments
......@@ -49,6 +49,7 @@ namespace armarx::armem::server::obj
memory.name() = defaultMemoryName;
defs->optional(memory.name(), prefix + "MemoryName", "Name of this memory server.");
classSegment.defineProperties(defs, prefix + "cls.");
instance::SegmentAdapter::defineProperties(defs, prefix + "inst.");
return defs;
......@@ -56,7 +57,8 @@ namespace armarx::armem::server::obj
ObjectMemory::ObjectMemory() :
server::ComponentPluginUser(),
instance::SegmentAdapter(server::ComponentPluginUser::iceMemory, server::ComponentPluginUser::memoryMutex)
instance::SegmentAdapter(server::ComponentPluginUser::iceMemory, server::ComponentPluginUser::memoryMutex),
classSegment(server::ComponentPluginUser::iceMemory)
{
}
......@@ -70,6 +72,23 @@ namespace armarx::armem::server::obj
memory.name() = defaultMemoryName;
instance::SegmentAdapter::init();
try
{
classSegment.init();
}
catch (const LocalException& e)
{
ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what();
}
catch (const std::exception& e)
{
ARMARX_ERROR << "Failed to init class segment. Reason: \n" << e.what();
}
catch (...)
{
ARMARX_ERROR << "Failed to init class segment for unknown reason.";
}
}
void ObjectMemory::onConnectComponent()
......
......@@ -22,6 +22,7 @@
#pragma once
#include <memory>
#include <mutex>
#include <VirtualRobot/VirtualRobot.h>
......@@ -30,11 +31,14 @@
#include <RobotAPI/interface/armem/server/ObjectMemoryInterface.h>
#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
#include <RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h>
#include <RobotAPI/libraries/RobotAPIComponentPlugins/ArVizComponentPlugin.h>
#include <RobotAPI/libraries/RobotAPIComponentPlugins/RobotStateComponentPlugin.h>
#include <RobotAPI/libraries/armem/server/ComponentPlugin.h>
#include <RobotAPI/libraries/armem_objects/server/class/Segment.h>
#include <RobotAPI/libraries/armem_objects/server/instance/SegmentAdapter.h>
#define ICE_CURRENT_ARG const Ice::Current& = Ice::emptyCurrent
......@@ -105,6 +109,9 @@ namespace armarx::armem::server::obj
VirtualRobot::RobotPtr robot;
clazz::Segment classSegment;
struct RemoteGuiTab : armarx::RemoteGui::Client::Tab
{
instance::SegmentAdapter::RemoteGui instance;
......
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