ddt  1.0.0
ddtDataPublisher.hpp
Go to the documentation of this file.
1 
21 #ifndef SRC_DDTDATAPUBLISHER_H_
22 #define SRC_DDTDATAPUBLISHER_H_
23 
24 #include <boost/circular_buffer.hpp>
25 #include <boost/interprocess/managed_shared_memory.hpp>
26 #include <boost/signals2/signal.hpp>
27 
28 #include "ddt/ddtConstants.hpp"
30 
31 namespace ddt {
32 
39  public:
45 
51  explicit DdtDataPublisher(log4cplus::Logger const &log4cplus_logger);
52 
56  ~DdtDataPublisher() override;
57 
58  int RegisterPublisher(const std::string uri, const std::string dsi,
59  const bool compute_crc) override;
60 
61  int UnregisterPublisher() override;
62 
63  void PublishData() override;
64 
71  void SetBufferSize(const int max_sample_size, const int number_samples);
72 
79  void WriteData(const int32_t sample_id, const std::vector<uint8_t> &datavec,
80  const std::vector<uint8_t> &metadatavec);
81 
91  void WriteData(const int32_t sample_id, const uint8_t *const data,
92  const int32_t data_size, const uint8_t *const metadata,
93  const int32_t metadata_size);
94 
99  void set_topic_id(const int id);
100 
105  bool get_connected_to_broker() const;
106 
107  protected:
111  void LoadDefaults();
112 
116  void ReadIni();
117 
121  int topic_id;
122 
123  private:
127  void Init();
128 
132  void PrintConfigValues();
133 
138  void Reregister();
139 
143  void PrintParameters();
144 
148  int Register();
149 
150  DdtMemoryAccessor *memory_accessor;
151  std::string shm_id;
152  std::string broker_uri;
153  std::string data_stream_identifier;
154  int writer_index;
155  int max_data_sample_size;
156  int number_of_samples;
157 
158  bool compute_checksum;
159  std::string publishing_uri;
160  bool registered;
161 };
162 
163 } // namespace ddt
164 
165 #endif /* SRC_DDTDATAPUBLISHER_H_ */
166 
Definition: ddtDataPublisher.hpp:38
int RegisterPublisher(const std::string uri, const std::string dsi, const bool compute_crc) override
Definition: ddtDataPublisher.cpp:115
void WriteData(const int32_t sample_id, const std::vector< uint8_t > &datavec, const std::vector< uint8_t > &metadatavec)
Definition: ddtDataPublisher.cpp:338
DdtDataPublisher(DdtLogger *logger)
Definition: ddtDataPublisher.cpp:25
void ReadIni()
Definition: ddtDataPublisher.cpp:65
int UnregisterPublisher() override
Definition: ddtDataPublisher.cpp:305
bool get_connected_to_broker() const
Definition: ddtDataPublisher.cpp:394
~DdtDataPublisher() override
Definition: ddtDataPublisher.cpp:41
void SetBufferSize(const int max_sample_size, const int number_samples)
Definition: ddtDataPublisher.cpp:332
void PublishData() override
Definition: ddtDataPublisher.cpp:378
void LoadDefaults()
Definition: ddtDataPublisher.cpp:63
int topic_id
Definition: ddtDataPublisher.hpp:121
void set_topic_id(const int id)
Definition: ddtDataPublisher.cpp:392
Definition: ddtDataTransferLib.hpp:42
DdtLogger * logger
Definition: ddtDataTransferLib.hpp:234
Definition: ddtLogger.hpp:51
Definition: ddtMemoryAccessor.hpp:274
Contains common used constants. This file shall contain constants that can be used by all application...
Base class for DdtDataPublishers and DdtDataSubscribers. This is the base class for DdtDataPublishers...
Definition: ddtClient.hpp:39