|
void | read (uint64_t bar, uint64_t address, int32_t *data, size_t sizeInBytes) override |
| Read function to be implemented by backends. More...
|
|
| ExceptionDummy (std::string const &mapFileName) |
|
| DEFINE_VIRTUAL_FUNCTION_OVERRIDE_VTABLE (DummyBackendBase, getRegisterAccessor_impl, boost::shared_ptr< NDRegisterAccessor< T >>(const RegisterPath &, size_t, size_t, AccessModeFlags)) |
|
void | open () override |
| Open the device. More...
|
|
void | closeImpl () override |
| This closes the device, clears all internal registers, read-only settings and callback functions. More...
|
|
void | write (uint64_t bar, uint64_t address, int32_t const *data, size_t sizeInBytes) override |
| Write function to be implemented by backends. More...
|
|
void | triggerPush (RegisterPath path, VersionNumber v={}) |
| Function to trigger sending values for push-type variables. More...
|
|
size_t | getWriteOrder (const RegisterPath &path) |
| Function to obtain the write order number of a register. More...
|
|
size_t | getWriteCount (const RegisterPath &path) |
| Function to obtain the number of writes of a register since the creation of the backend. More...
|
|
void | activateAsyncRead () noexcept override |
| Activate asyncronous read for all transfer elements where AccessMode::wait_for_new_data is set. More...
|
|
void | setExceptionImpl () noexcept override |
| Function to be (optionally) implemented by backends if additional actions are needed when switching to the exception state. More...
|
|
bool | asyncReadActivated () |
| Function to test whether async read transfers are activated. More...
|
|
void | setValidity (RegisterPath path, DataValidity val) |
| Use decorator to overwrite returned data validity of individual (poll-type) variables. More...
|
|
DataValidity | getValidity (RegisterPath path) |
| Query map for overwritten data validities. More...
|
|
| DummyBackend (const std::string &mapFileName) |
|
| ~DummyBackend () override=default |
|
std::string | readDeviceInfo () override |
| Return a device information string containing hardware details like the firmware version number or the slot number used by the board. More...
|
|
DummyRegisterRawAccessor | getRawAccessor (const std::string &module, const std::string ®ister_name) |
| Get a raw accessor to the underlying memory with the convenience of using register names. More...
|
|
VersionNumber | triggerInterrupt (uint32_t interruptNumber) override |
| Simulate the arrival of an interrupt. More...
|
|
void | read ([[maybe_unused]] uint8_t bar,[[maybe_unused]] uint32_t address,[[maybe_unused]] int32_t *data,[[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the read version with 32 bit address any more. More...
|
|
void | write ([[maybe_unused]] uint8_t bar,[[maybe_unused]] uint32_t address,[[maybe_unused]] int32_t const *data,[[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the write version with 32 bit address any more. More...
|
|
| DummyBackendBase (std::string const &mapFileName) |
|
| ~DummyBackendBase () override=default |
|
size_t | minimumTransferAlignment ([[maybe_unused]] uint64_t bar) const override |
| Determines the supported minimum alignment for any read/write requests. More...
|
|
| DEFINE_VIRTUAL_FUNCTION_OVERRIDE_VTABLE (NumericAddressedBackend, getRegisterAccessor_impl, boost::shared_ptr< NDRegisterAccessor< T >>(const RegisterPath &, size_t, size_t, AccessModeFlags)) |
|
void | read ([[maybe_unused]] uint8_t bar, [[maybe_unused]] uint32_t address, [[maybe_unused]] int32_t *data, [[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the read version with 32 bit address any more. More...
|
|
void | write ([[maybe_unused]] uint8_t bar, [[maybe_unused]] uint32_t address, [[maybe_unused]] int32_t const *data, [[maybe_unused]] size_t sizeInBytes) final |
| You cannot override the write version with 32 bit address any more. More...
|
|
bool | barIndexValid ([[maybe_unused]] uint64_t bar) override |
| All bars are valid in dummies. More...
|
|
std::map< uint64_t, size_t > | getBarSizesInBytesFromRegisterMapping () const |
| Determines the size of each bar because the DummyBackends allocate memory per bar. More...
|
|
template<typename UserType > |
boost::shared_ptr< NDRegisterAccessor< UserType > > | getRegisterAccessor_impl (const RegisterPath ®isterPathName, size_t numberOfWords, size_t wordOffsetInRegister, AccessModeFlags flags) |
| Specific override which allows to create "DUMMY_INTEERRUPT_X" accessors. More...
|
|
| NumericAddressedBackend (const std::string &mapFileName="", std::unique_ptr< NumericAddressedRegisterCatalogue > registerMapPointer=std::make_unique< NumericAddressedRegisterCatalogue >()) |
|
| ~NumericAddressedBackend () override=default |
|
virtual bool | barIndexValid (uint64_t bar) |
| Function to be implemented by the backends. More...
|
|
virtual bool | canMergeRequests () const |
| Determines whether the backend supports merging of requests (read or write) More...
|
|
RegisterCatalogue | getRegisterCatalogue () const override |
| Return the register catalogue with detailed information on all registers. More...
|
|
MetadataCatalogue | getMetadataCatalogue () const override |
| Return the device metadata catalogue. More...
|
|
NumericAddressedRegisterInfo | getRegisterInfo (const RegisterPath ®isterPathName) |
| getRegisterInfo returns a NumericAddressedRegisterInfo object for the given register. More...
|
|
void | activateAsyncRead () noexcept override |
| Activate asyncronous read for all transfer elements where AccessMode::wait_for_new_data is set. More...
|
|
void | close () final |
| Deactivates all asynchronous accessors and calls closeImpl(). More...
|
|
virtual std::future< void > | activateSubscription (uint32_t interruptNumber, boost::shared_ptr< async::DomainImpl< std::nullptr_t >> asyncDomain) |
| Activate/create the subscription for a given interrupt (for instance by starting the according interrupt handling thread). More...
|
|
void | setExceptionImpl () noexcept override |
| Turn off the internal variable which remembers that async is active. More...
|
|
template<typename BackendSpecificUserType > |
std::pair< BackendSpecificUserType, VersionNumber > | getAsyncDomainInitialValue (size_t asyncDomainId) |
| Get the initial value for a certain async::Domain. More...
|
|
template<typename BackendSpecificUserType > |
std::pair< BackendSpecificUserType, VersionNumber > | getAsyncDomainInitialValue ([[maybe_unused]] size_t asyncDomainId) |
|
bool | isOpen () override |
| Return whether a device has been opened or not. More...
|
|
bool | isConnected () final |
| Deprecated since 2022-03-03. More...
|
|
void | checkActiveException () final |
| Function to be called by backends when needing to check for an active exception. More...
|
|
void | setException (const std::string &message) noexcept final |
| Set the backend into an exception state. More...
|
|
bool | isFunctional () const noexcept final |
| Return whether a device is working as intended, usually this means it is opened and does not have any errors. More...
|
|
std::string | getActiveExceptionMessage () noexcept |
|
virtual | ~DeviceBackend ()=default |
| Every virtual class needs a virtual desctructor. More...
|
|
template<typename UserType > |
boost::shared_ptr< NDRegisterAccessor< UserType > > | getRegisterAccessor (const RegisterPath ®isterPathName, size_t numberOfWords, size_t wordOffsetInRegister, AccessModeFlags flags) |
| Get a NDRegisterAccessor object from the register name. More...
|
|
| DEFINE_VIRTUAL_FUNCTION_TEMPLATE_VTABLE (getRegisterAccessor_impl, boost::shared_ptr< NDRegisterAccessor< T >>(const RegisterPath &, size_t, size_t, AccessModeFlags)) |
|
|
std::array< boost::barrier, 2 > | blockedInRead {boost::barrier{2}, boost::barrier{2}} |
|
std::array< boost::barrier, 2 > | unblockRead {boost::barrier{2}, boost::barrier{2}} |
|
std::mutex | _pushDecoratorsMutex |
| Mutex to protect data structures for push decorators. More...
|
|
std::map< RegisterPath, std::list< boost::weak_ptr< ExceptionDummyPushDecoratorBase > > > | _pushDecorators |
| Map of active ExceptionDummyPushDecorator. Protected by _pushDecoratorMutex. More...
|
|
std::map< RegisterPath, VersionNumber > | _pushVersions |
| Map of version numbers to use in push decorators. Protected by _pushDecoratorMutex. More...
|
|
bool | _activateNewPushAccessors {false} |
| Flag is toggled by activateAsyncRead (true), setException (false) and close (false). More...
|
|
std::mutex | _registerValiditiesMutex |
| mutex to protect map _registerValidities More...
|
|
std::map< RegisterPath, DataValidity > | _registerValidities |
| This map is used for setting individual (poll-type) variables to DataValidity=faulty. More...
|
|
std::map< std::pair< uint64_t, uint64_t >, std::atomic< size_t > > | _writeOrderMap |
| Map used allow determining order of writes by tests. Map key is pair of bar and address. More...
|
|
std::atomic< size_t > | _writeOrderCounter {0} |
| Global counter for order numbers going into _writeOrderMap. More...
|
|
std::map< std::pair< uint64_t, uint64_t >, std::atomic< size_t > > | _writeCounterMap |
| Map used allow determining number of writes of a specific register by tests. Map key is pair of bar and address. More...
|
|
std::atomic< bool > | throwExceptionOpen {false} |
|
std::atomic< bool > | throwExceptionRead {false} |
|
std::atomic< bool > | throwExceptionWrite {false} |
|
std::atomic< size_t > | throwExceptionCounter {0} |
|
dummy backend used for testing the double buffering handshake.
a double-buffer read consists of (write ctrl, read buffernumber, read other buffer, write ctrl) The overwritten functions of this class refer to the inner protocol
Definition at line 28 of file testDoubleBuffering.cpp.