25#include <Ddtdatatransfericd.hpp>
28#include <mal/rr/qos/ReplyTime.hpp>
29#include <mal/utility/LoadMal.hpp>
36namespace mal = ::elt::mal;
37namespace datatransfer = ::elt::ddt::datatransfer;
64 DdtClient(
const std::string remote_broker,
const int32_t repl_time,
65 const int32_t hb_interval,
const int32_t hb_timeout,
66 const std::string broker,
DdtLogger* ddt_logger);
78 void AddUuid(std::string uuid, std::string dsi);
113 const std::string& data_stream_identifier,
114 const int32_t latency,
115 const int32_t deadline)
const;
123 std::string
GetPublishingUri(
const std::string& data_stream_identifier)
const;
132 const std::string& data_stream_identifier)
const;
141 const std::string& data_stream_identifier)
const;
167 void Init(
const std::string remote_broker,
const int32_t repl_time,
168 const int32_t hb_interval,
const int32_t hb_timeout,
169 const std::string broker,
DdtLogger* ddt_logger);
224 int32_t InitMalClient();
229 void StartHeartbeat();
234 void StopHeartbeat();
239 void HeartbeatThread();
251 datatransfer::DataBrokerRegistrationSync,
252 std::default_delete<datatransfer::DataBrokerRegistrationSync> >
258 elt::mal::rr::ListenerRegistration connection_listener;
263 std::promise<void> exit_signal;
268 std::future<void> future_object;
273 std::mutex subscriber_mutex;
279 const int32_t NUM_RETRIES = 10;
285 const int32_t LATENCY = 10000;
290 const int32_t DEADLINE = 10;
Definition: ddtClient.hpp:47
int32_t reply_time
Definition: ddtClient.hpp:202
std::atomic< bool > connected_to_broker
Definition: ddtClient.hpp:182
DdtLogger * logger
Definition: ddtClient.hpp:217
int32_t heartbeat_interval
Definition: ddtClient.hpp:207
std::map< std::string, std::string > subscriber_map
Definition: ddtClient.hpp:177
std::atomic< bool > heartbeat_active
Definition: ddtClient.hpp:187
std::string remote_broker_uri
Definition: ddtClient.hpp:192
bool get_compute_checksum(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:291
bool CheckPublisherExists(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:262
std::string GetPublishingUri(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:276
int32_t heartbeat_timeout
Definition: ddtClient.hpp:212
virtual ~DdtClient()
Definition: ddtClient.cpp:41
void UnregisterSubscriber(const std::string uuid)
Definition: ddtClient.cpp:175
std::string get_broker_uri() const
Definition: ddtClient.cpp:296
void AddUuid(std::string uuid, std::string dsi)
Definition: ddtClient.cpp:120
int32_t get_max_data_sample_size(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:281
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:48
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:267
std::string broker_uri
Definition: ddtClient.hpp:197
int32_t get_number_of_samples(const std::string &data_stream_identifier) const
Definition: ddtClient.cpp:286
bool CheckIfEmpty()
Definition: ddtClient.cpp:257
Definition: ddtLogger.hpp:51
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...
Definition: ddtClient.hpp:39