Newer
Older
// SPDX-FileCopyrightText: Deutsches Elektronen-Synchrotron DESY, MSK, ChimeraTK Project <chimeratk-support@desy.de>
// SPDX-License-Identifier: LGPL-3.0-or-later
#pragma once
Martin Christoph Hierholzer
committed
#include "Application.h"
#include <ChimeraTK/NDRegisterAccessorDecorator.h>
Martin Christoph Hierholzer
committed
namespace ChimeraTK {
/********************************************************************************************************************/
/**
* Decorator of the NDRegisterAccessor which facilitates tests of the application
*/
template<typename UserType>
class DebugPrintAccessorDecorator : public ChimeraTK::NDRegisterAccessorDecorator<UserType> {
public:
DebugPrintAccessorDecorator(
boost::shared_ptr<ChimeraTK::NDRegisterAccessor<UserType>> accessor, std::string fullyQualifiedName);
bool doWriteTransfer(ChimeraTK::VersionNumber versionNumber) override;
bool doWriteTransferDestructively(ChimeraTK::VersionNumber versionNumber) override;
void doReadTransferSynchronously() override;
void doPreRead(TransferType type) override;
void doPostRead(TransferType type, bool hasNewData) override;
void doPreWrite(TransferType type, VersionNumber versionNumber) override;
void doPostWrite(TransferType type, VersionNumber versionNumber) override;
protected:
std::string _fullyQualifiedName;
};
Martin Christoph Hierholzer
committed
/********************************************************************************************************************/
DECLARE_TEMPLATE_FOR_CHIMERATK_USER_TYPES(DebugPrintAccessorDecorator);
/********************************************************************************************************************/
Martin Christoph Hierholzer
committed
} /* namespace ChimeraTK */