HLCC Documentation 2.2.0
Loading...
Searching...
No Matches
oldbInterface.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2020-2025 European Southern Observatory (ESO)
2//
3// SPDX-License-Identifier: LGPL-3.0-only
4
13#ifndef HLCC_LSVSIM_OLDBINTERFACE_HPP
14#define HLCC_LSVSIM_OLDBINTERFACE_HPP
15
16#include <string>
17#include <vector>
18#include <cinttypes>
19
22#include <rad/oldbInterface.hpp>
23#include <rad/config.hpp>
24#include <rad/exceptions.hpp>
25#include <rad/cii/oldbAdapter.hpp>
26#include "Stdif.hpp"
27
28#include "lsvsim/logger.hpp"
29
30
31namespace hlcc::lsvsim {
32
33class Config;
37class OldbInterface : public rad::OldbInterface {
38 public:
44 OldbInterface(const std::string& prefix = "");
45
49 virtual ~OldbInterface();
50
51 void Init(::hlcc::lsvsim::Config& config);
52
53 virtual void SetControlState(const std::string& value) override;
54
55 virtual void SetConfig(const rad::Config& cfg) override;
56
57 void UpdateHeartbeat();
58
59 OldbInterface(const OldbInterface&) = delete;
61
62private:
63
73 boost::asio::thread_pool m_async_exec {2};
74
80 log4cplus::Logger m_logger_oldb_async;
81
82 std::shared_ptr<::stdif::Status> status_data;
83 std::shared_ptr<::hlcc::oldbmux::ObservablePublisher<::stdif::Status>> status_data_publisher;
84 std::shared_ptr<::hlcc::oldbmux::CiiOldbDataPointAsync<double>> heartbeat_subscriber;
85
86};
87
88} // namespace hlcc::lsvsim
89
90#endif // HLCC_LSVSIM_OLDBINTERFACE_HPP
Definition config.hpp:143
Definition oldbInterface.hpp:37
OldbInterface(const std::string &prefix="")
Definition oldbInterface.cpp:40
void UpdateHeartbeat()
Definition oldbInterface.cpp:152
void Init(::hlcc::lsvsim::Config &config)
Definition oldbInterface.cpp:64
OldbInterface(const OldbInterface &)=delete
virtual void SetConfig(const rad::Config &cfg) override
Definition oldbInterface.cpp:159
virtual ~OldbInterface()
Definition oldbInterface.cpp:49
virtual void SetControlState(const std::string &value) override
Definition oldbInterface.cpp:145
OldbInterface & operator=(const OldbInterface &)=delete
Disable copy constructor.
Default logger name.
Definition actionMgr.cpp:30