ifw-ccf 4.0.0
Loading...
Searching...
No Matches
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>
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
20namespace ccf::stdpub {
21
24 public:
25
26 static uint32_t GetDdtDataType(ccf::DataType 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:391
Standard DDT Publisher.
Definition: pubDdt.hpp:23
static uint32_t GetDdtDataType(ccf::DataType data_type)
Definition: pubDdt.cpp:14
virtual void DismantleUser()
Definition: pubDdt.cpp:180
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:188
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 public header file. This class was copied from the MELT CS repository.
Definition: mudpiCreator.hpp:22
DataType
Definition: dataType.hpp:46