8#include <boost/make_shared.hpp>
28 template<
typename UserType,
typename TargetType>
34 "AccessMode::wait_for_new_data is disallowed through ForcePollingReadPlugin for register '" +
35 target->getName() +
"'.");
38 if constexpr(std::is_same<UserType, TargetType>::value) {
void remove(AccessMode flag)
Remove the given flag from the set.
bool has(AccessMode flag) const
Check if a certain flag is in the set.
LNMBackendRegisterInfo _info
RegisterInfo describing the the target register for which this plugin instance should work.
Base class for plugins that modify the behaviour of accessors in the logical name mapping backend.
boost::shared_ptr< NDRegisterAccessor< UserType > > decorateAccessor(boost::shared_ptr< LogicalNameMappingBackend > &backend, boost::shared_ptr< NDRegisterAccessor< TargetType > > &target, const UndecoratedParams &accessorParams)
void doRegisterInfoUpdate() override
Implementation of the plugin specific register information update.
ForcePollingReadPlugin(const LNMBackendRegisterInfo &info, size_t pluginIndex, const std::map< std::string, std::string > ¶meters)
RegisterInfo structure for the LogicalNameMappingBackend.
AccessModeFlags supportedFlags
Supported AccessMode flags.
N-dimensional register accessor.
Exception thrown when a logic error has occured.
@ wait_for_new_data
Make any read blocking until new data has arrived since the last read.
Helper struct to hold extra parameters needed by some plugins, used in decorateAccessor()