29#include <IceUtil/Exception.h>
37template class ::IceInternal::Handle<::armarx::DatafieldRef>;
51 const std::string& channelName,
52 const std::string& datafieldName,
53 bool performValidation)
55 channelRef =
new ChannelRef(observer, channelName);
56 this->datafieldName = datafieldName;
58 if (performValidation)
67 const std::string& channelName,
68 const std::string& datafieldName,
69 bool performValidation)
71 channelRef =
new ChannelRef(observerPrx, channelName);
72 this->datafieldName = datafieldName;
74 if (performValidation)
83 const std::string& datafieldName,
84 bool performValidation)
91 this->channelRef = channelRef;
92 this->datafieldName = datafieldName;
94 if (performValidation)
105 return this->
clone();
131 return ChannelRefPtr::dynamicCast(channelRef);
149 s <<
"Reference to datafield "
188 channelRef->serialize(serializer);
189 obj->setString(
"datafieldName", datafieldName);
197 channelRef->deserialize(serializer,
c);
198 datafieldName = obj->getString(
"datafieldName");
The ChannelRef class is a reference to a channel on an Observer.
VariantTypeId getType(const Ice::Current &c=Ice::emptyCurrent) const override
TimedVariantPtr getDataField() const
Retrieves the value of the datafield from the Observer.
std::string output(const Ice::Current &c=Ice::emptyCurrent) const override
VariantDataClassPtr clone(const Ice::Current &c=Ice::emptyCurrent) const override
ChannelRefPtr getChannelRef() const
bool validate(const Ice::Current &c=Ice::emptyCurrent) override
DataFieldIdentifierPtr getDataFieldIdentifier() const
void deserialize(const ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) override
Ice::ObjectPtr ice_clone() const override
void serialize(const ObjectSerializerBasePtr &serializer, const ::Ice::Current &=Ice::emptyCurrent) const override
Baseclass for all ArmarX Observers.
#define ARMARX_WARNING_S
The logging level for unexpected behaviour, but not a serious problem.
const VariantTypeId DatafieldRef
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceInternal::Handle< TimedVariant > TimedVariantPtr
IceInternal::Handle< ChannelRef > ChannelRefPtr
IceInternal::Handle< AbstractObjectSerializer > AbstractObjectSerializerPtr
IceInternal::Handle< DatafieldRef > DatafieldRefPtr
IceInternal::Handle< DataFieldIdentifier > DataFieldIdentifierPtr
Typedef of DataFieldIdentifierPtr as IceInternal::Handle<DataFieldIdentifier> for convenience.