ddt  0.1
ddtRemoteClient.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special
5 // legal conditions apply.
6 //
7 // @file ddtRemoteClient.hpp
8 // @brief DDT Remote client. A library for the remote interface to the
9 // DDT Viewer.
10 //
11 // Class for the remote client library.
12 //
13 // @author Carsten Mannel, CGI
14 // @since 2021/04/22
15 //
16 
17 #ifndef DATAVISUALISATION_REMOTECLIENT_SRC_INCLUDE_DDT_DDTREMOTECLIENT_HPP_
18 #define DATAVISUALISATION_REMOTECLIENT_SRC_INCLUDE_DDT_DDTREMOTECLIENT_HPP_
19 
20 #include <Ddtremotecontrolicd.hpp>
21 #include <future>
22 #include <mal/Cii.hpp>
23 #include <mal/rr/qos/ReplyTime.hpp>
24 #include <mal/utility/LoadMal.hpp>
25 #include <thread>
26 
28 #include "ddt/ddtConstants.hpp"
29 #include "ddt/ddtLogger.hpp"
30 
31 namespace mal = ::elt::mal;
32 namespace remotecontrol = ::elt::ddt::remotecontrol;
33 
34 namespace ddt {
35 
37  public:
42 
46  virtual ~DdtRemoteClient();
47 
52  std::string Run();
53 
57  bool Init(int argc, char** argv);
58 
59  private:
63  void FreeResources();
64 
68  void WaitForQuit();
69 
70  DdtLogger* logger;
71  CommandLineParserBuilder* builder;
72 
76  std::unique_ptr<
77  remotecontrol::RemoteControlRegistrationAsync,
78  std::default_delete<remotecontrol::RemoteControlRegistrationAsync> >
79  client;
80 
81  std::string server_uri;
82  std::string image_widget;
83  std::string command;
84  std::vector<std::string> arguments;
85  int32_t timeout; // in [s]
86  bool infinite; // if set to true, the timeout is set to 24 h!
87 
88  const std::string SERVER_PATH{"/viewer/RemoteControl"};
89 };
90 
91 } // namespace ddt
92 
93 #endif /* DATAVISUALISATION_REMOTECLIENT_SRC_INCLUDE_DDT_DDTREMOTECLIENT_HPP_ \
94  */
commandLineParserBuilder.hpp
ddt::DdtLogger
Definition: ddtLogger.hpp:48
ddtConstants.hpp
ddt
Definition: ddtClient.hpp:36
ddt::DdtRemoteClient
Definition: ddtRemoteClient.hpp:36
ddt::DdtRemoteClient::Init
bool Init(int argc, char **argv)
Definition: ddtRemoteClient.cpp:93
ddt::DdtRemoteClient::Run
std::string Run()
Definition: ddtRemoteClient.cpp:163
ddt::CommandLineParserBuilder
Definition: commandLineParserBuilder.hpp:24
ddt::DdtRemoteClient::DdtRemoteClient
DdtRemoteClient()
ddt::DdtRemoteClient::~DdtRemoteClient
virtual ~DdtRemoteClient()
Definition: ddtRemoteClient.cpp:59
ddtLogger.hpp