36 void addAccessor(
const boost::shared_ptr<TransferElement>& accessor);
95 void runPostReads(
const std::set<boost::shared_ptr<TransferElement>>& elements,
96 const std::exception_ptr& firstDetectedRuntimeError);
Base class for register accessors abstractors independent of the UserType.
Group multiple data accessors to efficiently trigger data transfers on the whole group.
std::set< boost::shared_ptr< TransferElement > > _copyDecorators
List of all CopyRegisterDecorators in the group.
void addAccessor(TransferElementAbstractor &accessor)
Add a register accessor to the group.
bool _isReadable
Cached value whether all elements are readable.
bool _isWriteable
Cached value whether all elements are writeable.
std::set< boost::shared_ptr< TransferElement > > _highLevelElements
List of high-level TransferElements in this group which are directly used by the user.
bool _cachedReadableWriteableIsValid
Flag whether to update the cached information.
bool isReadOnly()
Check if transfer group is read-only.
std::map< boost::shared_ptr< TransferElement >, bool > _lowLevelElementsAndExceptionFlags
List of low-level TransferElements in this group, which are directly responsible for the hardware acc...
bool isWriteable()
Check if transfer group is writeable.
bool isReadable()
Check if transfer group is readable.
void dump()
Print information about the accessors in this group to screen, which might help to understand which t...
void updateIsReadableWriteable()
Helper function to update the cached state variables.
void runPostReads(const std::set< boost::shared_ptr< TransferElement > > &elements, const std::exception_ptr &firstDetectedRuntimeError)
void read()
Trigger read transfer for all accessors in the group.
Class for generating and holding version numbers without exposing a numeric representation.