Set of AccessMode flags with additional functionality for an easier handling.
BackendFactory is a the factory class to create devices.
static BackendFactory & getInstance()
Static function to get an instance of factory.
boost::shared_ptr< DeviceBackend > createBackend(const std::string &aliasOrUri)
Create a new backend and return the instance as a shared pointer.
bool isOpened() const
Check if the device is currently opened.
std::set< DeviceBackend::BackendID > getInvolvedBackendIDs()
Recursively obtain the set of all backend IDs that are used withing the device.
void open()
Re-open the device after previously closeing it by calling close(), or when it was constructed with a...
MetadataCatalogue getMetadataCatalogue() const
Return the register catalogue with detailed information on all registers.
boost::shared_ptr< DeviceBackend > _deviceBackendPointer
void close()
Close the device.
void setException(const std::string &message)
Set the device into an exception state.
boost::shared_ptr< DeviceBackend > getBackend()
Obtain the backend.
VoidRegisterAccessor getVoidRegisterAccessor(const RegisterPath ®isterPathName, const AccessModeFlags &flags=AccessModeFlags({})) const
Get a VoidRegisterAccessor object for the given register.
void checkPointersAreNotNull() const
RegisterCatalogue getRegisterCatalogue() const
Return the register catalogue with detailed information on all registers.
std::string readDeviceInfo() const
Return a device information string.
bool isFunctional() const
Return wether a device is working as intended, usually this means it is opened and does not have any ...
void activateAsyncRead() noexcept
Activate asyncronous read for all transfer elements where AccessMode::wait_for_new_data is set.
Device()=default
Create device instance without associating a backend yet.
Catalogue of register information.
Class to store a register path name.
Accessor class to read and write void-typed registers.
Exception thrown when a logic error has occured.