HLCC Documentation 2.2.0
Loading...
Searching...
No Matches
seqServerFacade.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_SEQSERVERFACADE_HPP
14#define HLCC_TELIF_TELIF_SEQSERVERFACADE_HPP
15
16#include <string>
17#include <vector>
18#include <atomic>
19#include <thread>
20
21namespace hlcc::telif {
22
24
25 public:
26
34 SeqServerFacade(std::string ip, std::string port, std::string script);
35
40 virtual ~SeqServerFacade();
41
47 bool IsConnected();
48
54 void SetObVariable(std::string var_name, std::string var_value);
55
60 void SkipUserActions();
61
66 void SkipDefaultActions();
67
71 void RunScript();
72
79
88 static bool RunSystemCommand(
89 const std::string& cmd, const std::vector<std::string>& args, std::string& cmd_output
90 );
91
97 static std::string GetHostIp();
98
101
102 private:
103
107 void Initialize();
108
112 void LoadObScript();
113
126 std::string GetParameterIndex(std::string param_name);
127
141 std::vector<std::string> GetUserActionSteps();
142
157 std::vector<std::string> GetDefaultActionSteps();
158
164 bool Connect();
165
169 void SendCommand(std::string command);
170
174 void Disconnect();
175
177 std::string m_seq_ip; // Sequencer server ip address
178 std::string m_seq_port; // Sequencer server port
179 std::string m_seq_script; // Sequencer script to be loaded
180 int m_conn_status; // Status of connection to seq server (0 = success, -1 = errors.)
181 int m_client_fd; // Client file descriptor
182 std::atomic_bool m_socket_reader_loop; // While is true we will keep reading from the socket
183 std::thread m_socket_reader_thread; // Thread to handle the reading from the socket
184};
185
186} // namespace hlcc::telif
187
188#endif // HLCC_TELIF_TELIF_SEQSERVERFACADE_HPP
Definition seqServerFacade.hpp:23
SeqServerFacade(const SeqServerFacade &)=delete
static bool RunSystemCommand(const std::string &cmd, const std::vector< std::string > &args, std::string &cmd_output)
Definition seqServerFacade.cpp:359
void SetObVariable(std::string var_name, std::string var_value)
Definition seqServerFacade.cpp:83
void RunScript()
Definition seqServerFacade.cpp:128
static std::string GetHostIp()
Definition seqServerFacade.cpp:399
SeqServerFacade(std::string ip, std::string port, std::string script)
Definition seqServerFacade.cpp:36
void RunScriptInteractive()
Definition seqServerFacade.cpp:136
virtual ~SeqServerFacade()
Definition seqServerFacade.cpp:56
bool IsConnected()
Definition seqServerFacade.cpp:62
void SkipUserActions()
Definition seqServerFacade.cpp:97
void SkipDefaultActions()
Definition seqServerFacade.cpp:113
SeqServerFacade & operator=(const SeqServerFacade &)=delete
Disable copy constructor.
Definition configTest.cpp:22