ddt  1.0.0
ddtRemoteControl.hpp
Go to the documentation of this file.
1 
19 #ifndef DATAVISUALISATION_REMOTECONTROL_SRC_INCLUDE_DDT_DDTREMOTECONTROL_HPP_
20 #define DATAVISUALISATION_REMOTECONTROL_SRC_INCLUDE_DDT_DDTREMOTECONTROL_HPP_
21 
22 #include <Ddtremotecontrolicd.hpp>
23 #include <boost/signals2/signal.hpp>
24 #include <future>
25 #include <iostream>
26 #include <mal/Cii.hpp>
27 #include <mal/rr/ServerAmi.hpp>
28 #include <mal/rr/ServerContextProvider.hpp>
29 #include <mal/rr/qos/ReplyTime.hpp>
30 #include <mal/utility/LoadMal.hpp>
31 #include <string>
32 
33 #include "ddt/ddtConstants.hpp"
34 #include "ddt/ddtLogger.hpp"
35 
36 namespace mal = ::elt::mal;
37 namespace remotecontrol = ::elt::ddt::remotecontrol;
38 
42 typedef boost::signals2::signal<void(const std::string&, const std::string&,
43  const std::vector<std::string>&)>
45 
49 typedef signal_remote::slot_type slot_remote;
50 
51 namespace ddt {
52 
54  : public virtual remotecontrol::AsyncRemoteControlRegistration {
55  public:
61  explicit DdtRemoteControl(const std::string server_uri,
62  DdtLogger* ddt_logger);
63 
67  virtual ~DdtRemoteControl();
68 
73 
81  mal::future<std::string> HandleRemoteCommand(
82  const std::string& image_widget_name, const std::string& command_name,
83  const std::vector<std::string>& command_arguments) override;
84 
89  void ProcessResponse(const std::string& response);
90 
95 
96  protected:
101 
102  private:
108  void Init(const std::string server_uri, DdtLogger* ddt_logger);
109 
115  const std::string ListCommands();
116 
120  void ServerThread();
121 
122  std::string uri_string;
123  std::unique_ptr<::elt::mal::rr::Server> server;
124 
125  const std::string SERVICE = "RemoteControl";
126  const std::string URI_PATH = "/viewer";
127 
128  boost::promise<std::string>* promise;
129  std::atomic<bool> server_busy;
130 };
131 
132 } // namespace ddt
133 
134 #endif /* DATAVISUALISATION_REMOTECONTROL_SRC_INCLUDE_DDT_DDTREMOTECONTROL_HPP_ \
135  */
136 
Definition: ddtLogger.hpp:51
Definition: ddtRemoteControl.hpp:54
mal::future< std::string > HandleRemoteCommand(const std::string &image_widget_name, const std::string &command_name, const std::vector< std::string > &command_arguments) override
Definition: ddtRemoteControl.cpp:88
DdtRemoteControl(const std::string server_uri, DdtLogger *ddt_logger)
Definition: ddtRemoteControl.cpp:23
signal_remote remote_command_signal
Definition: ddtRemoteControl.hpp:94
virtual ~DdtRemoteControl()
Definition: ddtRemoteControl.cpp:28
void ProcessResponse(const std::string &response)
Definition: ddtRemoteControl.cpp:128
void StartRemoteControlServer()
Definition: ddtRemoteControl.cpp:52
DdtLogger * logger
Definition: ddtRemoteControl.hpp:100
Contains common used constants. This file shall contain constants that can be used by all application...
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
signal_remote::slot_type slot_remote
Definition: ddtRemoteControl.hpp:49
boost::signals2::signal< void(const std::string &, const std::string &, const std::vector< std::string > &)> signal_remote
Definition: ddtRemoteControl.hpp:44
Definition: ddtClient.hpp:39