ifw-ccf  3.0.0-pre2
pubDdt.hpp
Go to the documentation of this file.
1 
5 #ifndef CCF_STDPUB_PUB_DDT_HPP_H_
6 #define CCF_STDPUB_PUB_DDT_HPP_H_
7 
8 #define BOOST_BIND_NO_PLACEHOLDERS
9 
10 #include <ccf/common/config.hpp>
11 #include <ccf/common/pubBase.hpp>
12 
13 // DDT related includes
14 #include <ddt/ddtDataPublisherApplication.hpp>
15 #include <ddt/ddtDataPublisher.hpp>
16 #include <ddt/ddtDataTransferFactory.hpp>
17 #include <ddt/ddtEncDecImage3D.hpp>
18 #include <ddt/ddtLogger.hpp>
19 
20 namespace ccf::stdpub {
21 
23  class PubDdt: public ccf::common::PubBase {
24  public:
25 
26  static uint32_t GetDdtDataType(ccf::DataTypes data_type);
27 
28  static void _SetSimulation(); // Warning: Don't use this.
29 
30  const std::string SETUP_KEY_DDT_ID = "ddt_id";
31  const std::string SETUP_KEY_DDT_BROKER = "ddt_broker";
32  const std::string SETUP_KEY_MAX_RATE = "ddt_max_rate";
33 
34 
35  PubDdt(const std::string& proc_thread_name,
36  const std::string& pub_thread_name);
37 
38  PubDdt();
39 
40  virtual ~PubDdt();
41 
42  virtual void InitialiseUser();
43 
44  virtual void PublishUser(ccf::common::DataFrame& frame);
45 
46  virtual void DismantleUser();
47 
48  // virtual void CreateObjectUser(const std::string& proc_thread_name,
49  // const std::string& pub_thread_name,
50  // std::shared_ptr<PubBase>& new_object);
51 
52  virtual void CreateObjectUser(const std::string& proc_thread_name,
53  const std::string& pub_thread_name,
54  PubBase** new_object);
55 
56  protected:
57 
58  private:
59  // TODO: Not the right way to be able to use the class for unit tests, without starting the DDT
60  // Broker. A better solution should be found, maybe based on an intemediate DDT adapter.
61  static bool s_simulation;
62 
63  double m_min_period;
64  double m_time_last_publishing;
65 
66  // DDT required objects.
67  ddt::DdtLogger* m_logger;
68  std::unique_ptr<ddt::DdtDataPublisher> m_publisher;
69  DdtEncDecImage3D m_encoder;
70  };
71 
72 }
73 
74 #endif // CCF_STDPUB_PUB_DDT_HPP_H_
Frame class used to store the data and metadata for one frames received from the camera.
Definition: dataFrame.hpp:17
Class for implementing CCF Data Publishers.
Definition: pubBase.hpp:114
PubBase()
Definition: pubBase.cpp:390
Standard DDT Publisher.
Definition: pubDdt.hpp:23
static uint32_t GetDdtDataType(ccf::DataTypes data_type)
Definition: pubDdt.cpp:14
virtual void DismantleUser()
Definition: pubDdt.cpp:190
const std::string SETUP_KEY_DDT_BROKER
Definition: pubDdt.hpp:31
virtual void InitialiseUser()
Definition: pubDdt.cpp:75
PubDdt()
Definition: pubDdt.cpp:62
virtual void CreateObjectUser(const std::string &proc_thread_name, const std::string &pub_thread_name, PubBase **new_object)
Definition: pubDdt.cpp:198
const std::string SETUP_KEY_DDT_ID
Definition: pubDdt.hpp:30
static void _SetSimulation()
Definition: pubDdt.cpp:35
virtual ~PubDdt()
Definition: pubDdt.cpp:68
virtual void PublishUser(ccf::common::DataFrame &frame)
Definition: pubDdt.cpp:116
const std::string SETUP_KEY_MAX_RATE
Definition: pubDdt.hpp:32
MudpiCreator source file.
Definition: mudpiCreator.hpp:22
DataTypes
Definition: dataType.hpp:46