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