Go to the documentation of this file.
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;
54 DdtClient(
const std::string remote_broker,
const int32_t repl_time,
55 const int32_t hb_interval,
const int32_t hb_timeout,
66 void AddUuid(std::string uuid, std::string dsi);
91 const std::string& data_stream_identifier,
92 const int32_t latency,
93 const int32_t deadline)
const;
99 std::string
GetPublishingUri(
const std::string& data_stream_identifier)
const;
106 const std::string& data_stream_identifier)
const;
113 const std::string& data_stream_identifier)
const;
124 void Init(
const std::string remote_broker,
const int32_t repl_time,
125 const int32_t hb_interval,
const int32_t hb_timeout,
132 std::map<std::string, std::string>
152 int32_t InitMalClient();
157 void StartHeartbeat();
162 void StopHeartbeat();
167 void HeartbeatThread();
179 datatransfer::DataBrokerRegistrationSync,
180 std::default_delete<datatransfer::DataBrokerRegistrationSync> >
186 elt::mal::rr::ListenerRegistration connection_listener;
188 std::promise<void> exit_signal;
189 std::future<void> future_object;
190 std::mutex subscriber_mutex;
192 const int32_t NUM_RETRIES = 10;
193 const int32_t LATENCY = 10000;
194 const int32_t DEADLINE = 10;
bool get_compute_checksum(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:288
int32_t heartbeat_interval
Definition: ddtClient.hpp:144
std::string remote_broker_uri
Definition: ddtClient.hpp:141
Definition: ddtLogger.hpp:48
Definition: ddtClient.hpp:36
void Init(const std::string remote_broker, const int32_t repl_time, const int32_t hb_interval, const int32_t hb_timeout, const std::string broker, DdtLogger *ddt_logger)
Definition: ddtClient.cpp:45
std::atomic< bool > heartbeat_active
Definition: ddtClient.hpp:140
broker
Definition: pyDdtBroker.py:21
int32_t heartbeat_timeout
Definition: ddtClient.hpp:145
int32_t RegisterRemoteSubscriber(const std::string &subscriber_uuid, const std::string &data_stream_identifier, const int32_t latency, const int32_t deadline) const
Definition: ddtClient.cpp:264
virtual ~DdtClient()
Definition: ddtClient.cpp:38
int32_t reply_time
Definition: ddtClient.hpp:143
std::string GetPublishingUri(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:273
int32_t get_number_of_samples(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:283
bool CheckIfEmpty()
Definition: ddtClient.cpp:254
std::string broker_uri
Definition: ddtClient.hpp:142
bool CheckPublisherExists(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:259
DdtLogger * logger
Definition: ddtClient.hpp:146
void UnregisterSubscriber(const std::string uuid)
Definition: ddtClient.cpp:172
std::atomic< bool > connected_to_broker
Definition: ddtClient.hpp:138
std::map< std::string, std::string > subscriber_map
Definition: ddtClient.hpp:133
int32_t get_max_data_sample_size(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:278
Definition: ddtClient.hpp:44
void AddUuid(std::string uuid, std::string dsi)
Definition: ddtClient.cpp:117