pvxs
pvxs copied to clipboard
(De)serialization of Value fields
Is there a way to (de)serialize Value fields, or something similar like the example below in pvData?
epics::pvData::PVStructure::shared_pointer structure_;
std::shared_ptr<epics::pvData::ByteBuffer> buffer_;
....
for (size_t i = 0U; i < structure_->getNumberFields(); ++i) {
// Request subfield
const epics::pvData::PVFieldPtr field = structure_->getSubField(i);
// If subfield has no children i.e. represents actual value then
// serialize it
if ((field != nullptr) && (field->getNumberFields() == 1)) {
field->serialize(buffer_.get(), serializable_control_.get());
}
}
// deserialize
for (size_t i = 0U; i < structure_->getNumberFields(); ++i) {
const epics::pvData::PVFieldPtr field = structure_->getSubField(i);
if ((field != nullptr) && (field->getNumberFields() == 1)) {
field->deserialize(buffer_.get(), deserializable_control_.get());
}
}