pvDatabaseCPP
4.7.0
|
Support for subset of fields in a pvStructure. More...
#include <pvStructureCopy.h>
Public Member Functions | |
POINTER_DEFINITIONS (PVCopy) | |
virtual | ~PVCopy () |
epics::pvData::PVStructurePtr | getPVMaster () |
void | traverseMaster (PVCopyTraverseMasterCallbackPtr const &callback) |
epics::pvData::StructureConstPtr | getStructure () |
epics::pvData::PVStructurePtr | createPVStructure () |
std::size_t | getCopyOffset (epics::pvData::PVFieldPtr const &masterPVField) |
std::size_t | getCopyOffset (epics::pvData::PVStructurePtr const &masterPVStructure, epics::pvData::PVFieldPtr const &masterPVField) |
epics::pvData::PVFieldPtr | getMasterPVField (std::size_t structureOffset) |
void | initCopy (epics::pvData::PVStructurePtr const ©PVStructure, epics::pvData::BitSetPtr const &bitSet) |
bool | updateCopySetBitSet (epics::pvData::PVStructurePtr const ©PVStructure, epics::pvData::BitSetPtr const &bitSet) |
bool | updateCopyFromBitSet (epics::pvData::PVStructurePtr const ©PVStructure, epics::pvData::BitSetPtr const &bitSet) |
void | updateMaster (epics::pvData::PVStructurePtr const ©PVStructure, epics::pvData::BitSetPtr const &bitSet) |
epics::pvData::PVStructurePtr | getOptions (std::size_t fieldOffset) |
std::string | dump () |
Static Public Member Functions | |
static PVCopyPtr | create (epics::pvData::PVStructurePtr const &pvMaster, epics::pvData::PVStructurePtr const &pvRequest, std::string const &structureName) |
Support for subset of fields in a pvStructure.
Class that manages one or more PVStructures that holds an arbitrary subset of the fields in another PVStructure called master.
Definition at line 65 of file pvStructureCopy.h.
|
inlinevirtual |
Definition at line 81 of file pvStructureCopy.h.
|
static |
Create a new pvCopy
pvMaster | The top-level structure for which a copy of an arbitrary subset of the fields in master will be created and managed. |
pvRequest | Selects the set of subfields desired and options for each field. |
structureName | The name for the top level of any PVStructure created. |
Definition at line 73 of file pvCopy.cpp.
PVStructurePtr epics::pvCopy::PVCopy::createPVStructure | ( | ) |
Create a copy instance. Monitors keep a queue of monitor elements. Since each element needs a PVStructure, multiple top-level structures will be created.
Definition at line 109 of file pvCopy.cpp.
string epics::pvCopy::PVCopy::dump | ( | ) |
For debugging.
Definition at line 326 of file pvCopy.cpp.
std::size_t epics::pvCopy::PVCopy::getCopyOffset | ( | epics::pvData::PVFieldPtr const & | masterPVField | ) |
Given a field in pvMaster. return the offset in copy for the same field. A value of std::string::npos means that the copy does not have this field.
masterPVField | The field in master. |
std::size_t epics::pvCopy::PVCopy::getCopyOffset | ( | epics::pvData::PVStructurePtr const & | masterPVStructure, |
epics::pvData::PVFieldPtr const & | masterPVField | ||
) |
Given a field in pvMaster. return the offset in copy for the same field. A value of std::string::npos means that the copy does not have this field.
masterPVStructure | A structure in master that has masterPVField. |
masterPVField | The field in master. |
PVFieldPtr epics::pvCopy::PVCopy::getMasterPVField | ( | std::size_t | structureOffset | ) |
Given an offset in the copy get the corresponding field in pvMaster.
structureOffset | The offset in the copy. |
Definition at line 160 of file pvCopy.cpp.
PVStructurePtr epics::pvCopy::PVCopy::getOptions | ( | std::size_t | fieldOffset | ) |
Get the options for the field at the specified offset.
fieldOffset | the offset in copy. |
Definition at line 299 of file pvCopy.cpp.
PVStructurePtr epics::pvCopy::PVCopy::getPVMaster | ( | ) |
Get the top-level structure of master
Definition at line 94 of file pvCopy.cpp.
StructureConstPtr epics::pvCopy::PVCopy::getStructure | ( | ) |
Get the introspection interface for a PVStructure for e copy.
Definition at line 104 of file pvCopy.cpp.
void epics::pvCopy::PVCopy::initCopy | ( | epics::pvData::PVStructurePtr const & | copyPVStructure, |
epics::pvData::BitSetPtr const & | bitSet | ||
) |
Initialize the fields in copyPVStructure by giving each field the value from the corresponding field in pvMaster. bitSet will be set to show that all fields are changed.
copyPVStructure | A copy top-level structure. |
bitSet | A bitSet for copyPVStructure. |
Definition at line 182 of file pvCopy.cpp.
epics::pvCopy::PVCopy::POINTER_DEFINITIONS | ( | PVCopy | ) |
void epics::pvCopy::PVCopy::traverseMaster | ( | PVCopyTraverseMasterCallbackPtr const & | callback | ) |
Traverse all the fields in master.
callback | This is called for each field on master. |
Definition at line 99 of file pvCopy.cpp.
bool epics::pvCopy::PVCopy::updateCopyFromBitSet | ( | epics::pvData::PVStructurePtr const & | copyPVStructure, |
epics::pvData::BitSetPtr const & | bitSet | ||
) |
For each set bit in bitSet set the field in copyPVStructure to the value of the corresponding field in pvMaster.
copyPVStructure | A copy top-level structure. |
bitSet | A bitSet for copyPVStructure. |
bool epics::pvCopy::PVCopy::updateCopySetBitSet | ( | epics::pvData::PVStructurePtr const & | copyPVStructure, |
epics::pvData::BitSetPtr const & | bitSet | ||
) |
Set all fields in copyPVStructure to the value of the corresponding field in pvMaster. Each field that is changed has it's corresponding bit set in bitSet.
copyPVStructure | A copy top-level structure. |
bitSet | A bitSet for copyPVStructure. |
void epics::pvCopy::PVCopy::updateMaster | ( | epics::pvData::PVStructurePtr const & | copyPVStructure, |
epics::pvData::BitSetPtr const & | bitSet | ||
) |
For each set bit in bitSet set the field in pvMaster to the value of the corresponding field in copyPVStructure
copyPVStructure | A copy top-level structure. |
bitSet | A bitSet for copyPVStructure. |
Definition at line 279 of file pvCopy.cpp.