ddt 1.2.1
Loading...
Searching...
No Matches
ddtDataTransferLib.hpp
Go to the documentation of this file.
1
19#ifndef DDTDATATRANSFERLIB_HPP_
20#define DDTDATATRANSFERLIB_HPP_
21
22#include <Ddtdatatransfericd.hpp>
23#include <boost/property_tree/ini_parser.hpp>
24#include <boost/property_tree/ptree.hpp>
25#include <iostream>
26#include <mal/Cii.hpp>
27#include <mal/rr/qos/ReplyTime.hpp>
28#include <mal/utility/LoadMal.hpp>
29
30#include "ddt/ddtErrorCodes.hpp"
31#include "ddt/ddtLogger.hpp"
33
34namespace mal = ::elt::mal;
35namespace datatransfer = ::elt::ddt::datatransfer;
36
37namespace ddt {
38
43 public:
48 explicit DdtDataTransferLib(DdtLogger* ddt_logger);
49
55 explicit DdtDataTransferLib(log4cplus::Logger const& log4cplus_logger);
56
60 virtual ~DdtDataTransferLib();
61
69 void SetQoS(const int ddt_latency, const int ddt_deadline);
70
78 const std::string VerifyPathInBrokerUri(std::string broker_uri);
79
85 int InitMAL(const std::string broker_uri);
86
91 std::unique_ptr<datatransfer::DataBrokerRegistrationSync,
92 std::default_delete<datatransfer::DataBrokerRegistrationSync>>
94
103 virtual int RegisterPublisher(const std::string uri, const std::string dsi,
104 const bool compute_crc) {
105 return 0;
106 };
107
112 virtual int UnregisterPublisher() { return 0; };
113
117 virtual void PublishData() {
118 // intentionally-blank override
119 }
120
130 virtual int RegisterSubscriber(const std::string uri, const std::string dsi,
131 const std::string remote_uri,
132 const int32_t interval = 10) {
133 return 0;
134 };
135
140 virtual int UnregisterSubscriber() { return 0; };
141
146 virtual DataSample* ReadData() { return nullptr; };
147
148 protected:
155 void StartHeartbeat(const int32_t interval, const std::string id);
156
160 void StopHeartbeat();
161
168 void CheckHeartbeatTimeout(int32_t& new_reply_time);
169
175 const std::string GetConfigFilePath();
176
181
186
190 int32_t reply_time;
191
196
200 std::promise<void> exit_signal_heartbeat;
201
205 std::future<void> future_object_heartbeat;
206
211 std::atomic<bool> heartbeat_active;
212
216 std::unique_ptr<
217 datatransfer::DataBrokerRegistrationSync,
218 std::default_delete<datatransfer::DataBrokerRegistrationSync> >
220
224 std::atomic<bool> connected_to_broker;
225
229 elt::mal::rr::ListenerRegistration connection_listener;
230
235
240
244 const int32_t REPLY_TIME_DEFAULT = 6;
245
249 const int32_t REPLY_TIME_MIN = 2;
250
251 private:
255 void Init(DdtLogger* ddt_logger);
256
260 void HeartbeatThread();
261
262 std::string identifier;
263
264 const std::string BROKER_PATH{"/broker/Broker1"};
265 const int LATENCY_DEFAULT = 10000;
266 const int DEADLINE_DEFAULT = 10;
267 const int32_t HEARTBEAT_INTERVAL_DEFAULT = 1;
268};
269
270} // namespace ddt
271
272#endif /* DDTDATATRANSFERLIB_HPP_ */
273
Definition ddtDataTransferLib.hpp:42
const std::string VerifyPathInBrokerUri(std::string broker_uri)
Definition ddtDataTransferLib.cpp:205
DdtLogger * logger
Definition ddtDataTransferLib.hpp:234
virtual DataSample * ReadData()
Definition ddtDataTransferLib.hpp:146
void SetQoS(const int ddt_latency, const int ddt_deadline)
Definition ddtDataTransferLib.cpp:51
DdtDataTransferLib(DdtLogger *ddt_logger)
Definition ddtDataTransferLib.cpp:25
virtual int UnregisterSubscriber()
Definition ddtDataTransferLib.hpp:140
void StopHeartbeat()
Definition ddtDataTransferLib.cpp:75
const std::string GetConfigFilePath()
Definition ddtDataTransferLib.cpp:238
virtual int RegisterSubscriber(const std::string uri, const std::string dsi, const std::string remote_uri, const int32_t interval=10)
Definition ddtDataTransferLib.hpp:130
const int32_t REPLY_TIME_DEFAULT
Definition ddtDataTransferLib.hpp:244
void StartHeartbeat(const int32_t interval, const std::string id)
Definition ddtDataTransferLib.cpp:56
const int32_t REPLY_TIME_MIN
Definition ddtDataTransferLib.hpp:249
std::unique_ptr< datatransfer::DataBrokerRegistrationSync, std::default_delete< datatransfer::DataBrokerRegistrationSync > > client
Definition ddtDataTransferLib.hpp:219
int deadline
Definition ddtDataTransferLib.hpp:185
std::unique_ptr< datatransfer::DataBrokerRegistrationSync, std::default_delete< datatransfer::DataBrokerRegistrationSync > > GetBrokerClient()
Definition ddtDataTransferLib.cpp:234
int32_t heartbeat_interval
Definition ddtDataTransferLib.hpp:195
DdtLogger * my_logger
Definition ddtDataTransferLib.hpp:239
std::atomic< bool > heartbeat_active
Definition ddtDataTransferLib.hpp:211
int latency
Definition ddtDataTransferLib.hpp:180
virtual void PublishData()
Definition ddtDataTransferLib.hpp:117
std::promise< void > exit_signal_heartbeat
Definition ddtDataTransferLib.hpp:200
void CheckHeartbeatTimeout(int32_t &new_reply_time)
Definition ddtDataTransferLib.cpp:111
std::atomic< bool > connected_to_broker
Definition ddtDataTransferLib.hpp:224
virtual int UnregisterPublisher()
Definition ddtDataTransferLib.hpp:112
elt::mal::rr::ListenerRegistration connection_listener
Definition ddtDataTransferLib.hpp:229
std::future< void > future_object_heartbeat
Definition ddtDataTransferLib.hpp:205
virtual ~DdtDataTransferLib()
Definition ddtDataTransferLib.cpp:35
int InitMAL(const std::string broker_uri)
Definition ddtDataTransferLib.cpp:146
int32_t reply_time
Definition ddtDataTransferLib.hpp:190
virtual int RegisterPublisher(const std::string uri, const std::string dsi, const bool compute_crc)
Definition ddtDataTransferLib.hpp:103
Definition ddtLogger.hpp:51
Contains common used error codes. This file shall contain error codes that can be used by all applica...
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
Accessor for a shared memory. This class provides the functionalities to access created shared memori...
Definition ddtClient.hpp:39
Definition ddtMemoryAccessor.hpp:184