ChimeraTK-ApplicationCore 04.06.00
Loading...
Searching...
No Matches
ReverseRecoveryDecorator.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
5#include "RecoveryHelper.h"
6
7#include <ChimeraTK/Exception.h>
8#include <ChimeraTK/NDRegisterAccessorDecorator.h>
9
10namespace ChimeraTK {
11
12 template<typename UserType>
13 class ReverseRecoveryDecorator : public ChimeraTK::NDRegisterAccessorDecorator<UserType> {
14 public:
15 ReverseRecoveryDecorator(boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> accessor,
16 boost::shared_ptr<RecoveryHelper> recoveryHelper);
17
18 void doPreRead(TransferType) override;
19 void doPostRead(TransferType, bool updateBuffer) override;
20
21 void interrupt() override;
22
23 void setInReadAnyGroup(ReadAnyGroup* rag) override;
24
25 protected:
26 boost::shared_ptr<RecoveryHelper> _recoveryHelper;
27 using ChimeraTK::NDRegisterAccessorDecorator<UserType>::_target;
28 };
29
31} // namespace ChimeraTK
void doPostRead(TransferType, bool updateBuffer) override
boost::shared_ptr< RecoveryHelper > _recoveryHelper
void setInReadAnyGroup(ReadAnyGroup *rag) override
InvalidityTracer application module.
DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES(DebugPrintAccessorDecorator)