8#include <ChimeraTK/VoidRegisterAccessor.h>
21 void replace(
const ChimeraTK::NDRegisterAccessorAbstractor<ChimeraTK::Void>& newAccessor) =
delete;
24 using ChimeraTK::VoidRegisterAccessor::operator=;
32 bool write(ChimeraTK::VersionNumber versionNumber) =
delete;
46 UpdateMode mode,
const std::string& description,
const std::unordered_set<std::string>& tags = {});
49 const std::string& description,
const std::unordered_set<std::string>& tags = {});
61 const std::unordered_set<std::string>& tags = {})
65 using VoidAccessor::operator=;
74 const std::unordered_set<std::string>& tags = {})
78 using VoidAccessor::operator=;
91 catch(ChimeraTK::logic_error& e) {
92 std::cerr <<
"ChimeraTK::logic_error caught: " << e.what() << std::endl;
105 catch(ChimeraTK::logic_error& e) {
106 std::cerr <<
"ChimeraTK::logic_error caught: " << e.what() << std::endl;
116 bool dataLoss = ChimeraTK::VoidRegisterAccessor::write(versionNumber);
127 bool dataLoss = ChimeraTK::VoidRegisterAccessor::writeDestructively(versionNumber);
137 std::string& unit,
UpdateMode mode,
const std::string& description,
const std::unordered_set<std::string>& tags)
139 owner, name, direction, unit, 1, mode, description, &typeid(
ChimeraTK::Void), tags) {
146 UpdateMode mode,
const std::string& description,
const std::unordered_set<std::string>& tags)
148 owner, name, direction,
"", 1, mode, description, &typeid(
ChimeraTK::Void), tags) {
static void incrementDataLossCounter(const std::string &name)
Increment counter for how many write() operations have overwritten unread data.
virtual VersionNumber getCurrentVersionNumber() const =0
Return the current version number which has been received with the last push-type read operation.
Adds features required for inversion of control to an accessor.
void deinit()
Early deinitialisation of stuff we cannot do in our destructor.
void init()
Late initialisation of stuff we cannot do in our constructor.
VariableNetworkNode _node
void replace(Derived &&other)
Replace with other accessor.
EntityOwner * getOwner() const
Return the owning module.
Base class for ApplicationModule and DeviceModule, to have a common interface for these module types.
Class describing a node of a variable network.
std::string getQualifiedName() const
Accessor for void variables (i.e.
VoidAccessor & operator=(VoidAccessor &other)=delete
void replace(const ChimeraTK::NDRegisterAccessorAbstractor< ChimeraTK::Void > &newAccessor)=delete
VoidAccessor()=default
Default constructor creates a dysfunctional accessor (to be assigned with a real accessor later)
bool writeDestructively(ChimeraTK::VersionNumber versionNumber)=delete
bool write(ChimeraTK::VersionNumber versionNumber)=delete
bool writeDestructively()
Convenience class for output void (always UpdateMode::push)
VoidOutput(Module *owner, const std::string &name, const std::string &description, const std::unordered_set< std::string > &tags={})
InvalidityTracer application module.
UpdateMode
Enum to define the update mode of variables.
Struct to define the direction of variables.