HLCC Documentation 3.0.0
Loading...
Searching...
No Matches
offsetHandler.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_TELIF_TELIF_OFFSETHANDLER_HPP
14#define HLCC_TELIF_TELIF_OFFSETHANDLER_HPP
15
16#include <mutex>
17#include <rad/application.hpp>
18
19#include <boost/asio/thread_pool.hpp>
20#include <gtest/gtest_prod.h>
21#include "Ccsinsif.hpp"
22#include "Telifif.hpp"
23#include "telif/logger.hpp"
25#include <Eltpkif.hpp>
26#include <ptk/angles.hpp>
27#include <ptk/posastro.hpp>
28
29namespace hlcc::telif {
30
31class DataContext;
32
37 public:
41 OffsetHandler(DataContext& data_ctx);
42
43 void Init(rad::Application& appl);
44
48 virtual ~OffsetHandler();
49
53 std::optional<ptk::EquatorialPosition> GetAbsolutePosition();
54
60 void PostOffset(const std::shared_ptr<::ccsinsif::OffsetSkyArgs> &offset_sky_args);
61
62
63 private:
64
69 void ProcessOffset();
70
71 rad::Application* m_appl;
72
73 /* Member variables */
74 DataContext& m_data_ctx; // Reference to data context
75
76 boost::asio::thread_pool m_offset_thread_pool; // Pool of 1 thread for sending offset
77
78 uint16_t m_last_session_id; // We will use this var to store the id of the
79 // last sequence execution session
80 // This way we ensure to use always a different
81 // session id for each execution of a sequence.
82};
83
84} // namespace hlcc::telif
85
86#endif // HLCC_TELIF_TELIF_OFFSETHANDLER_HPP
Default logger name.
Definition dataContext.hpp:43
void PostOffset(const std::shared_ptr<::ccsinsif::OffsetSkyArgs > &offset_sky_args)
Definition offsetHandler.cpp:57
OffsetHandler(DataContext &data_ctx)
Definition offsetHandler.cpp:41
virtual ~OffsetHandler()
Definition offsetHandler.cpp:50
std::optional< ptk::EquatorialPosition > GetAbsolutePosition()
Definition offsetHandler.cpp:71
void Init(rad::Application &appl)
Definition offsetHandler.cpp:46
Definition configTest.cpp:22
Requestor class header file.