ChimeraTK-DeviceAccess 03.25.00
Loading...
Searching...
No Matches
DummyInterruptTriggerAccessor.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Deutsches Elektronen-Synchrotron DESY, MSK, ChimeraTK Project <chimeratk-support@desy.de>
2// SPDX-License-Identifier: LGPL-3.0-or-later
3#pragma once
4
6
7#include <utility>
8
9namespace ChimeraTK {
10 class DummyBackendBase;
11
20 template<typename UserType>
22 public:
23 DummyInterruptTriggerAccessor(boost::shared_ptr<DeviceBackend> backend,
24 std::function<VersionNumber(void)> interruptTrigger, const RegisterPath& registerPathName,
25 size_t numberOfElements = 1, size_t elementsOffset = 0, const AccessModeFlags& flags = {});
26
28
29 void doReadTransferSynchronously() override {}
30
31 void doPreRead(TransferType) override;
32
34
35 [[nodiscard]] bool isReadOnly() const override { return false; }
36 [[nodiscard]] bool isReadable() const override { return false; }
37 [[nodiscard]] bool isWriteable() const override { return true; }
38
39 protected:
40 std::vector<boost::shared_ptr<TransferElement>> getHardwareAccessingElements() override {
41 return {boost::enable_shared_from_this<TransferElement>::shared_from_this()};
42 }
43
44 std::list<boost::shared_ptr<TransferElement>> getInternalElements() override { return {}; }
45
46 private:
47 boost::shared_ptr<DummyBackendBase> _backend;
48 std::function<VersionNumber(void)> _interruptTrigger;
49 };
50
52
53} // namespace ChimeraTK
#define DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES(TemplateClass)
Set of AccessMode flags with additional functionality for an easier handling.
Definition AccessMode.h:48
The DummyInterruptTriggerAccessor class.
std::list< boost::shared_ptr< TransferElement > > getInternalElements() override
Obtain the full list of TransferElements internally used by this TransferElement.
bool isReadOnly() const override
Check if transfer element is read only, i.e.
bool isWriteable() const override
Check if transfer element is writeable.
void doReadTransferSynchronously() override
Implementation version of readTransfer() for synchronous reads.
bool isReadable() const override
Check if transfer element is readable.
bool doWriteTransfer(ChimeraTK::VersionNumber) override
Implementation version of writeTransfer().
std::vector< boost::shared_ptr< TransferElement > > getHardwareAccessingElements() override
Obtain the underlying TransferElements with actual hardware access.
void doPreRead(TransferType) override
Backend specific implementation of preRead().
void doPreWrite(TransferType, VersionNumber) override
Backend specific implementation of preWrite().
N-dimensional register accessor.
Class to store a register path name.
Class for generating and holding version numbers without exposing a numeric representation.
TransferType
Used to indicate the applicable operation on a Transferelement.