ddt 1.2.1
Loading...
Searching...
No Matches
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
36namespace mal = ::elt::mal;
37namespace remotecontrol = ::elt::ddt::remotecontrol;
38
42typedef boost::signals2::signal<void(const std::string&, const std::string&,
43 const std::vector<std::string>&)>
45
49typedef signal_remote::slot_type slot_remote;
50
51namespace 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