ddt  1.0.0
ddtDataProducer.hpp
Go to the documentation of this file.
1 
20 #ifndef DDTDATAPRODUCER_HPP_
21 #define DDTDATAPRODUCER_HPP_
22 
24 
25 namespace mal = ::elt::mal;
26 namespace datatransfer = ::elt::ddt::datatransfer;
27 
28 static const std::chrono::milliseconds PUBLISH_TIMEOUT{450};
29 
30 namespace ddt {
31 
37  public:
42  explicit DdtDataProducer(DdtLogger* logger);
43 
54  DdtDataProducer(const std::string& data_stream_identifier,
55  const int32_t latency, const int32_t deadline,
56  const std::string publishing_uri, DdtLogger* logger);
57 
61  ~DdtDataProducer() override;
62 
67  void Publish(DataPacket data_packet);
68 
74  void Notify(const NotificationType type) override;
75 
80  std::string get_publishing_uri() const;
81 
82  private:
93  void Initialize(const std::string& data_stream_identifier,
94  const int32_t latency, const int32_t deadline,
95  const std::string pub_uri, DdtLogger* ddt_logger);
96 
102  std::string CreatePublishingUri(
103  const std::string& data_stream_identifier) const;
104 
105  std::unique_ptr<mal::ps::InstancePublisher<datatransfer::DataPacket>,
106  std::default_delete<
107  mal::ps::InstancePublisher<datatransfer::DataPacket> > >
108  data_publisher;
109  std::shared_ptr<datatransfer::DataPacket> ddt_data_packet;
110 
111  double timestamp_prev;
112  std::string publishing_uri;
113 };
114 
115 } // namespace ddt
116 
117 #endif /* DDTDATAPRODUCER_HPP_ */
118 
Definition: ddtDataProducer.hpp:36
std::string get_publishing_uri() const
Definition: ddtDataProducer.cpp:156
void Notify(const NotificationType type) override
Definition: ddtDataProducer.cpp:117
~DdtDataProducer() override
DdtDataProducer(DdtLogger *logger)
Definition: ddtDataProducer.cpp:24
void Publish(DataPacket data_packet)
Definition: ddtDataProducer.cpp:73
Definition: ddtLogger.hpp:51
Definition: ddtProducerConsumerBase.hpp:43
NotificationType
Definition: ddtProducerConsumerBase.hpp:59
DdtLogger * logger
Definition: ddtProducerConsumerBase.hpp:126
Base class for DdtDataProducer and DdtDataConsumer. This class serves as a base class for DdtDataProd...
Definition: ddtClient.hpp:39
Definition: ddtMemoryAccessor.hpp:226