29 #include <IceUtil/Exception.h>
37 template 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)
62 << getDataFieldIdentifier()->getIdentifierStr();
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)
78 << getDataFieldIdentifier()->getIdentifierStr();
83 const std::string& datafieldName,
84 bool performValidation)
91 this->channelRef = channelRef;
92 this->datafieldName = datafieldName;
94 if (performValidation)
98 << getDataFieldIdentifier()->getIdentifierStr();
105 return this->clone();
116 id = getChannelRef()->getDataFieldIdentifier(datafieldName);
125 return getChannelRef()->getDataField(datafieldName);
131 return ChannelRefPtr::dynamicCast(channelRef);
149 s <<
"Reference to datafield "
150 << DataFieldIdentifierPtr::dynamicCast(getDataFieldIdentifier())->getIdentifierStr();
165 if (!getChannelRef())
170 if (!getChannelRef()->hasDatafield(datafieldName))
175 if (!getChannelRef()->getDataField(datafieldName)->getInitialized())
188 channelRef->serialize(serializer);
189 obj->setString(
"datafieldName", datafieldName);
197 channelRef->deserialize(serializer,
c);
198 datafieldName = obj->getString(
"datafieldName");