15 template<
typename UserType>
24 template<
typename UserType,
typename TargetType>
26 boost::shared_ptr<LogicalNameMappingBackend>& backend,
34 std::map<std::string, std::string> _parameters;
35 std::string _targetDeviceName;
37 ReaderCount _readerCount;
40 template<
typename UserType>
56 [[nodiscard]]
bool isWriteable()
const override {
return false; }
74 [[nodiscard]]
bool mayReplaceOther(
const boost::shared_ptr<TransferElement const>& other)
const override;
80 boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> _secondBufferReg;
82 boost::shared_ptr<ChimeraTK::NDRegisterAccessor<uint32_t>> _enableDoubleBufferReg;
83 boost::shared_ptr<ChimeraTK::NDRegisterAccessor<uint32_t>> _currentBufferNumberReg;
84 uint32_t _currentBuffer{0};
86 uint32_t _testUSleep{0};
Base class for plugins that modify the behaviour of accessors in the logical name mapping backend.
void doPreWrite(TransferType, VersionNumber) override
Backend specific implementation of preWrite().
void doReadTransferSynchronously() override
Implementation version of readTransfer() for synchronous reads.
void doPostRead(TransferType type, bool hasNewData) override
Backend specific implementation of postRead().
void replaceTransferElement(boost::shared_ptr< ChimeraTK::TransferElement >) override
bool isWriteable() const override
Check if transfer element is writeable.
std::list< boost::shared_ptr< TransferElement > > getInternalElements() override
Obtain the full list of TransferElements internally used by this TransferElement.
std::vector< boost::shared_ptr< TransferElement > > getHardwareAccessingElements() override
Obtain the underlying TransferElements with actual hardware access.
bool mayReplaceOther(const boost::shared_ptr< TransferElement const > &other) const override
Check whether the TransferElement can be used in places where the TransferElement "other" is currentl...
void doPostWrite(TransferType, VersionNumber) override
Backend specific implementation of postWrite().
void doPreRead(TransferType type) override
Backend specific implementation of preRead().
void doRegisterInfoUpdate() override
Implementation of the plugin specific register information update.
boost::shared_ptr< NDRegisterAccessor< UserType > > decorateAccessor(boost::shared_ptr< LogicalNameMappingBackend > &backend, boost::shared_ptr< NDRegisterAccessor< TargetType > > &target, const UndecoratedParams &accessorParams)
RegisterInfo structure for the LogicalNameMappingBackend.
Base class for decorators of the NDRegisterAccessor.
N-dimensional register accessor.
std::vector< std::vector< UserType > > buffer_2D
Buffer of converted data elements.
Class for generating and holding version numbers without exposing a numeric representation.
Exception thrown when a logic error has occured.
TransferType
Used to indicate the applicable operation on a Transferelement.
Helper struct to hold extra parameters needed by some plugins, used in decorateAccessor()