ChimeraTK-DeviceAccess-DoocsBackend 01.11.02
Loading...
Searching...
No Matches
RegisterInfo.h
Go to the documentation of this file.
1#pragma once
2
3#include <ChimeraTK/BackendRegisterCatalogue.h>
4#include <ChimeraTK/BackendRegisterInfoBase.h>
5
6/**********************************************************************************************************************/
7
9
10/**********************************************************************************************************************/
11
12class DoocsBackendRegisterCatalogue : public ChimeraTK::BackendRegisterCatalogue<DoocsBackendRegisterInfo> {
13 public:
14 // Add all registers for the given property. Registers which exist already in the catalogue (with the same name) are
15 // skipped.
16 void addProperty(const std::string& name, unsigned int length, int doocsType, ChimeraTK::AccessModeFlags flags);
17
18 [[nodiscard]] bool isComplete() const { return _isCatalogueComplete; }
19
20 private:
21 bool _isCatalogueComplete{false};
22 friend class CatalogueFetcher;
23};
24
25/**********************************************************************************************************************/
26
27class DoocsBackendRegisterInfo : public ChimeraTK::BackendRegisterInfoBase {
28 public:
29 ChimeraTK::RegisterPath getRegisterName() const override { return _name; }
30
31 unsigned int getNumberOfElements() const override { return _length; }
32
33 unsigned int getNumberOfChannels() const override { return 1; }
34
35 bool isReadable() const override { return _readable; }
36
37 bool isWriteable() const override { return _writable; }
38
39 ChimeraTK::AccessModeFlags getSupportedAccessModes() const override { return accessModeFlags; }
40
41 const ChimeraTK::DataDescriptor& getDataDescriptor() const override { return dataDescriptor; }
42
43 std::unique_ptr<BackendRegisterInfoBase> clone() const override;
44
45 ChimeraTK::RegisterPath _name;
46 unsigned int _length;
47 ChimeraTK::DataDescriptor dataDescriptor;
48 ChimeraTK::AccessModeFlags accessModeFlags{};
50 bool _readable{true};
51 bool _writable{true};
52};
void addProperty(const std::string &name, unsigned int length, int doocsType, ChimeraTK::AccessModeFlags flags)
bool isWriteable() const override
ChimeraTK::DataDescriptor dataDescriptor
unsigned int getNumberOfChannels() const override
ChimeraTK::RegisterPath getRegisterName() const override
ChimeraTK::AccessModeFlags accessModeFlags
std::unique_ptr< BackendRegisterInfoBase > clone() const override
const ChimeraTK::DataDescriptor & getDataDescriptor() const override
bool isReadable() const override
unsigned int getNumberOfElements() const override
ChimeraTK::RegisterPath _name
ChimeraTK::AccessModeFlags getSupportedAccessModes() const override