19 #ifndef DDTCLIENT_HPP_
20 #define DDTCLIENT_HPP_
22 #include <Ddtdatatransfericd.hpp>
24 #include <mal/Cii.hpp>
25 #include <mal/rr/qos/ReplyTime.hpp>
26 #include <mal/utility/LoadMal.hpp>
33 namespace mal = ::elt::mal;
34 namespace datatransfer = ::elt::ddt::datatransfer;
49 DdtClient(
const std::string remote_broker,
const int32_t repl_time,
50 const int32_t hb_interval,
const int32_t hb_timeout,
51 const std::string broker,
DdtLogger* ddt_logger);
61 void AddUuid(std::string uuid, std::string dsi);
86 const std::string& data_stream_identifier,
87 const int32_t latency,
88 const int32_t deadline);
117 void Init(
const std::string remote_broker,
const int32_t repl_time,
118 const int32_t hb_interval,
const int32_t hb_timeout,
119 const std::string broker,
DdtLogger* ddt_logger);
124 int32_t InitMalClient();
129 void StartHeartbeat();
134 void StopHeartbeat();
139 void HeartbeatThread();
151 datatransfer::DataBrokerRegistrationSync,
152 std::default_delete<datatransfer::DataBrokerRegistrationSync> >
158 elt::mal::rr::ListenerRegistration connection_listener;
163 std::atomic<bool> connected_to_broker;
169 std::map<std::string, std::string>
172 std::promise<void> exit_signal;
173 std::future<void> future_object;
174 std::atomic<bool> heartbeat_active;
175 std::string remote_broker_uri;
176 std::string broker_uri;
178 int32_t heartbeat_interval;
179 int32_t heartbeat_timeout;
180 std::mutex subscriber_mutex;
183 const int32_t NUM_RETRIES = 10;
184 const int32_t LATENCY = 10000;
185 const int32_t DEADLINE = 10;