ifw-ccf  1.0.0
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 
9 #include <ccf/common/pubBase.hpp>
10 
11 // DDT related includes
12 #include <ddt/ddtDataPublisherApplication.hpp>
13 #include <ddt/ddtDataPublisher.hpp>
14 #include <ddt/ddtDataTransferFactory.hpp>
15 #include <ddt/ddtEncDecMultiLayer.hpp>
16 #include <ddt/ddtLogger.hpp>
17 
18 namespace ccf::stdpub {
19 
21  class PubDdt: public ccf::common::PubBase {
22  public:
23 
24  static uint32_t CcfToDdtDataType(ccf::common::ImageDataType ccf_datatype);
25 
26  static void _SetSimulation(); // Warning: Don't use this.
27 
28  const std::string SETUP_KEY_DDT_ID = "proc%d.pub%d.ddt.id";
29  const std::string SETUP_KEY_DDT_BROKER = "proc%d.pub%d.ddt.broker";
30  const std::string SETUP_KEY_MAX_RATE = "proc%d.pub%d.ddt.max_rate";
31 
32 
33  PubDdt(const uint16_t proc_thread_nb,
34  const uint16_t pub_thread_nb,
35  const std::string& pub_name);
36 
37  PubDdt();
38 
39  virtual ~PubDdt();
40 
41  virtual void InitialiseUser();
42 
43  virtual void PublishUser(ccf::common::DataFrame& frame);
44 
45  //virtual void ActivateUser();
46 
47  //virtual void DeactivateUser();
48 
49  virtual void DismantleUser();
50 
51  virtual void CreateObjectUser(const uint16_t proc_thread_nb,
52  const uint16_t pub_thread_nb,
53  const std::string& pub_name,
54  ccf::common::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 Broker.
60  // 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  DdtEncDecMultiLayer m_encoder;
70  };
71 
72 }
73 
74 #endif // CCF_STDPUB_PUB_DDT_HPP_H_
ccf::common::ImageDataType
ImageDataType
CCF image data types. Based on the values defined for BITPIX in the FITS standard.
Definition: base.hpp:153
ccf::stdpub::PubDdt::CreateObjectUser
virtual void CreateObjectUser(const uint16_t proc_thread_nb, const uint16_t pub_thread_nb, const std::string &pub_name, ccf::common::PubBase **new_object)
Definition: pubDdt.cpp:203
ccf::stdpub::PubDdt::_SetSimulation
static void _SetSimulation()
Definition: pubDdt.cpp:38
ccf::stdpub::PubDdt::SETUP_KEY_DDT_ID
const std::string SETUP_KEY_DDT_ID
Definition: pubDdt.hpp:28
pubBase.hpp
ccf::stdpub::PubDdt::DismantleUser
virtual void DismantleUser()
Definition: pubDdt.cpp:196
ccf::stdpub::PubDdt::~PubDdt
virtual ~PubDdt()
Definition: pubDdt.cpp:70
ccf::stdpub::PubDdt::SETUP_KEY_DDT_BROKER
const std::string SETUP_KEY_DDT_BROKER
Definition: pubDdt.hpp:29
ccf::common::PubBase
Class for implementing CCF Data Publishers.
Definition: pubBase.hpp:119
ccf::stdpub::PubDdt::PublishUser
virtual void PublishUser(ccf::common::DataFrame &frame)
Definition: pubDdt.cpp:123
ccf::stdpub::PubDdt::CcfToDdtDataType
static uint32_t CcfToDdtDataType(ccf::common::ImageDataType ccf_datatype)
Definition: pubDdt.cpp:14
ccf::stdpub::PubDdt::InitialiseUser
virtual void InitialiseUser()
Definition: pubDdt.cpp:79
ccf::stdpub::PubDdt::SETUP_KEY_MAX_RATE
const std::string SETUP_KEY_MAX_RATE
Definition: pubDdt.hpp:30
ccf::stdpub
Definition: pubDdt.hpp:18
ccf::common::DataFrame
Frame class used to store the data and metadata for one frames received from the camera.
Definition: dataFrame.hpp:15
ccf::stdpub::PubDdt
Standard DDT Publisher.
Definition: pubDdt.hpp:21
configBase.hpp
ccf::stdpub::PubDdt::PubDdt
PubDdt()
Definition: pubDdt.cpp:65