25#include <Ice/ObjectAdapter.h>
28#include <ArmarXCore/interface/serialization/JSONSerialization.h>
41 this->entityName = entityName;
45 const std::string& segmentName,
46 const std::string& memoryName,
47 MemoryInterfacePrx memoryPrx,
48 EntityMemorySegmentInterfacePrx segmentPrx)
50 this->entityId = entity->getId();
51 this->entityName = entity->getName();
52 this->memory = memoryPrx;
53 this->segment = segmentPrx;
54 this->segmentName = segmentName;
55 this->memoryName = memoryName;
59 IceUtil::Shared(entityRef), EntityRefBase(entityRef)
61 this->entityId = entityRef.entityId;
62 this->segment = entityRef.segment;
63 this->segmentName = entityRef.segmentName;
64 this->memory = entityRef.memory;
65 this->memoryName = entityRef.memoryName;
66 this->entityName = entityRef.entityName;
71 const Ice::Current&
c)
const
74 armarx::AbstractObjectSerializerPtr::dynamicCast(serializer);
76 obj->setString(
"entityId", entityId);
77 obj->setString(
"entityName", entityName);
78 obj->setString(
"segmentName", this->segmentName);
79 obj->setString(
"memoryName", this->memoryName);
84 const Ice::Current&
c)
87 armarx::AbstractObjectSerializerPtr::dynamicCast(serializer);
88 entityId = obj->getString(
"entityId");
89 entityName = obj->getString(
"entityName");
90 memoryName = obj->getString(
"memoryName");
91 segmentName = obj->getString(
"segmentName");
94 if (
c.adapter &&
c.adapter->getCommunicator())
96 memory = MemoryInterfacePrx::checkedCast(
97 c.adapter->getCommunicator()->stringToProxy(memoryName));
101 segment = memoryx::EntityMemorySegmentInterfacePrx::checkedCast(
102 memory->getSegment(segmentName));
111 ARMARX_ERROR_S <<
"cannot create proxy to segment " << segmentName <<
" in memory "
117 ARMARX_ERROR_S <<
"adapter or communicator zero - cannot create proxy to segment "
122 armarx::VariantDataClassPtr
131 return this->
clone();
137 return entityName +
"_" + entityId +
" in segment (" + segmentName +
")";
143 return ::armarx::VariantType::EntityRef;
157 return segment->getEntityById(entityId);
170 return entityId == other->entityId && segmentName == other->segmentName &&
171 memoryName == other->memoryName;
EntityBasePtr getEntity(const Ice::Current &c=Ice::emptyCurrent) const override
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
void deserialize(const armarx::ObjectSerializerBasePtr &serializer, const Ice::Current &c=Ice::emptyCurrent) override
void serialize(const armarx::ObjectSerializerBasePtr &serializer, const Ice::Current &c=Ice::emptyCurrent) const override
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
bool equals(const EntityRefBasePtr &other, const Ice::Current &c=Ice::emptyCurrent) const override
armarx::VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
Ice::Int getType(const Ice::Current &c=Ice::emptyCurrent) const override
Ice::ObjectPtr ice_clone() const override
#define ARMARX_ERROR_S
The logging level for unexpected behaviour, that must be fixed.
IceInternal::Handle< AbstractObjectSerializer > AbstractObjectSerializerPtr