From 21c2b6be0b3e857348189e16122684f95f102854 Mon Sep 17 00:00:00 2001 From: Martin Hierholzer <martin.hierholzer@desy.de> Date: Thu, 16 Feb 2017 13:12:55 +0100 Subject: [PATCH] eliminated the DeviceAccessor class, since a standard NDRegisterAccessor can be used instead --- include/Application.h | 3 -- include/DeviceAccessor.h | 94 ---------------------------------------- src/Application.cc | 9 +--- 3 files changed, 2 insertions(+), 104 deletions(-) delete mode 100644 include/DeviceAccessor.h diff --git a/include/Application.h b/include/Application.h index 4eac33d7..0491110d 100644 --- a/include/Application.h +++ b/include/Application.h @@ -29,9 +29,6 @@ namespace ChimeraTK { template<typename UserType> class Accessor; - template<typename UserType> - class DeviceAccessor; - class Application : public ApplicationBase, public EntityOwner { public: diff --git a/include/DeviceAccessor.h b/include/DeviceAccessor.h deleted file mode 100644 index 4dcd249c..00000000 --- a/include/DeviceAccessor.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * DeviceAccessor.h - * - * Created on: Jun 10, 2016 - * Author: Martin Hierholzer - */ - -#ifndef CHIMERATK_DEVICE_ACCESSOR_H -#define CHIMERATK_DEVICE_ACCESSOR_H - -#include <mtca4u/NDRegisterAccessor.h> - -#include "Accessor.h" - -namespace ChimeraTK { - - /** A DeviceAccessor is used to provide access to register accessors from the DeviceAccess library. It is a temporary - * adapter class which harmonises the different interfaces. @todo TODO Once the control system adapter and the - * DeviceAccess interfaces have been harmonised, this class is no longer needed! */ - template< typename UserType > - class DeviceAccessor : public mtca4u::NDRegisterAccessor<UserType> { - public: - - /** */ - DeviceAccessor(boost::shared_ptr<mtca4u::NDRegisterAccessor<UserType>> ndRegisterAccessor, VariableDirection direction, - UpdateMode mode) - : mtca4u::NDRegisterAccessor<UserType>(ndRegisterAccessor->getName()), - impl(ndRegisterAccessor), - _direction(direction), - _mode(mode) - { - mtca4u::NDRegisterAccessor<UserType>::buffer_2D.resize( impl->getNumberOfChannels() ); - for(size_t i=0; i<impl->getNumberOfChannels(); i++) { - mtca4u::NDRegisterAccessor<UserType>::buffer_2D[i].resize( impl->getNumberOfSamples() ); - } - } - - void doReadTransfer() override { - impl->read(); - } - - bool doReadTransferNonBlocking() override { - return impl->readNonBlocking(); - } - - void postRead() override { - mtca4u::NDRegisterAccessor<UserType>::buffer_2D[0].swap(impl->accessChannel(0)); - } - - void write() override { - mtca4u::NDRegisterAccessor<UserType>::buffer_2D[0].swap(impl->accessChannel(0)); - impl->write(); - mtca4u::NDRegisterAccessor<UserType>::buffer_2D[0].swap(impl->accessChannel(0)); - } - - unsigned int getNInputQueueElements() const override { - return impl->getNInputQueueElements(); - } - - bool isSameRegister(const boost::shared_ptr<const mtca4u::TransferElement>& other) const override { - return impl->isSameRegister(other); - } - - bool isReadOnly() const override { - return impl->isReadOnly(); - } - - bool isReadable() const override { - return impl->isReadable(); - } - - bool isWriteable() const override { - return impl->isWriteable(); - } - - std::vector<boost::shared_ptr<mtca4u::TransferElement> > getHardwareAccessingElements() override { - return impl->getHardwareAccessingElements(); - } - - void replaceTransferElement(boost::shared_ptr<mtca4u::TransferElement> other) override { - impl->replaceTransferElement(other); - } - - protected: - - boost::shared_ptr<mtca4u::NDRegisterAccessor<UserType>> impl; - VariableDirection _direction; - UpdateMode _mode; - }; - - -} /* namespace ChimeraTK */ - -#endif /* CHIMERATK_DEVICE_ACCESSOR_H */ diff --git a/src/Application.cc b/src/Application.cc index 5f3b08f7..cd097dee 100644 --- a/src/Application.cc +++ b/src/Application.cc @@ -18,7 +18,6 @@ #include "Application.h" #include "ApplicationModule.h" #include "Accessor.h" -#include "DeviceAccessor.h" #include "ThreadedFanOut.h" #include "ConsumingFanOut.h" #include "FeedingFanOut.h" @@ -265,12 +264,8 @@ boost::shared_ptr<mtca4u::NDRegisterAccessor<UserType>> Application::createDevic mtca4u::AccessModeFlags flags{}; if(mode == UpdateMode::push && direction == VariableDirection::consuming) flags = {AccessMode::wait_for_new_data}; - // create DeviceAccessor for the proper UserType - boost::shared_ptr<mtca4u::NDRegisterAccessor<UserType>> impl; - auto regacc = deviceMap[deviceAlias]->getRegisterAccessor<UserType>(registerName, nElements, 0, flags); - impl.reset(new DeviceAccessor<UserType>(regacc, direction, mode)); - - return impl; + // return the register accessor from the device + return deviceMap[deviceAlias]->getRegisterAccessor<UserType>(registerName, nElements, 0, flags); } /*********************************************************************************************************************/ -- GitLab