#ifndef _CHIMERATK_DOOCS_ADAPTER_H_ #define _CHIMERATK_DOOCS_ADAPTER_H_ #include "CSAdapterEqFct.h" #include "DoocsAdapter.h" #include "DoocsPVFactory.h" namespace ChimeraTK { /** The main adapter class. With this tool the EqFct should shrink to about 4 * lines of code (plus boiler plate). */ class DoocsAdapter { public: DoocsAdapter(); boost::shared_ptr<DevicePVManager> const& getDevicePVManager() const; boost::shared_ptr<ControlSystemPVManager> const& getControlSystemPVManager() const; boost::shared_ptr<DoocsUpdater> updater; // An atomic bool which is set true in post_init_epilog to indicate that doocs // is ready. Only used in testing. static std::atomic<bool> isInitialised; // A convenience function to wait until the adapter is initialised. static void waitUntilInitialised(); protected: boost::shared_ptr<ControlSystemPVManager> _controlSystemPVManager; boost::shared_ptr<DevicePVManager> _devicePVManager; }; } // namespace ChimeraTK #endif // _CHIMERATK_DOOCS_ADAPTER_H_