ddt  0.1
ddtProducerConsumerBase.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special
5 // legal conditions apply.
6 //
7 // @file ddtProducerConsumerBase.hpp
8 // @brief Base class for DdtDataProducer and DdtDataConsumer.
9 //
10 // This class serves as a base class for DdtDataProducer and DdtDataConsumer
11 // classes. It provides the ReadIni() and GetFreePort() functions for derived
12 // classes.
13 //
14 // @author Matthias Grimm, CGI
15 // @since 2020/08/04
16 //
17 
18 #ifndef DDTPRODUCERCONSUMERBASE_HPP_
19 #define DDTPRODUCERCONSUMERBASE_HPP_
20 
21 #include <boost/property_tree/ini_parser.hpp>
22 #include <boost/property_tree/ptree.hpp>
23 
24 #include "ddt/ddtConstants.hpp"
25 #include "ddt/ddtLogger.hpp"
27 
28 #include "ddt/ddtPublisher.hpp"
29 
30 namespace mal = ::elt::mal;
31 namespace datatransfer = ::elt::ddt::datatransfer;
32 
33 namespace ddt {
34 
41  public:
45  explicit DdtProducerConsumerBase(DdtLogger* ddt_logger);
46 
51 
75  SHM_DEL
76  };
77 
81  virtual void Notify(NotificationType type) = 0;
82 
83  protected:
87  void Init(DdtLogger* ddt_logger);
88 
92  void LoadDefaults();
93 
97  void ReadIni();
98 
102  void PrintConfigValues();
103 
108  int32_t GetFreePort() const;
109 
113  int32_t min_port;
114 
118  int32_t max_port;
119 
124 
125  const int MIN_PORT_DEFAULT = 5100;
126  const int MAX_PORT_DEFAULT = 5500;
127  const int MIN_RANGE = 3;
128  const int LINE_LENGTH = 256;
129 };
130 
131 } // namespace ddt
132 
133 #endif /* DDTPRODUCERCONSUMERBASE_HPP_ */
ddt::DdtProducerConsumerBase::DdtProducerConsumerBase
DdtProducerConsumerBase(DdtLogger *ddt_logger)
Definition: ddtProducerConsumerBase.cpp:22
ddt::DdtProducerConsumerBase::PrintConfigValues
void PrintConfigValues()
Definition: ddtProducerConsumerBase.cpp:90
ddtPublisher.hpp
ddt::DdtLogger
Definition: ddtLogger.hpp:48
ddtConstants.hpp
ddt
Definition: ddtClient.hpp:36
ddt::DdtProducerConsumerBase::Notify
virtual void Notify(NotificationType type)=0
ddt::DdtProducerConsumerBase::MAX_PORT_DEFAULT
const int MAX_PORT_DEFAULT
Definition: ddtProducerConsumerBase.hpp:126
ddt::DdtProducerConsumerBase::MIN_PORT_DEFAULT
const int MIN_PORT_DEFAULT
Definition: ddtProducerConsumerBase.hpp:125
ddt::DdtProducerConsumerBase::MIN_RANGE
const int MIN_RANGE
Definition: ddtProducerConsumerBase.hpp:127
ddt::DdtProducerConsumerBase::max_port
int32_t max_port
Definition: ddtProducerConsumerBase.hpp:118
ddt::DdtProducerConsumerBase::SHM_DEL
@ SHM_DEL
Definition: ddtProducerConsumerBase.hpp:75
ddt::DdtProducerConsumerBase::~DdtProducerConsumerBase
virtual ~DdtProducerConsumerBase()
ddt::DdtProducerConsumerBase::GetFreePort
int32_t GetFreePort() const
Definition: ddtProducerConsumerBase.cpp:97
ddt::DdtProducerConsumerBase::NotificationType
NotificationType
Definition: ddtProducerConsumerBase.hpp:59
ddt::DdtProducerConsumerBase::LINE_LENGTH
const int LINE_LENGTH
Definition: ddtProducerConsumerBase.hpp:128
ddt::DdtProducerConsumerBase::NEW_DATA
@ NEW_DATA
Definition: ddtProducerConsumerBase.hpp:63
ddt::DdtProducerConsumerBase::PUB_REG
@ PUB_REG
Definition: ddtProducerConsumerBase.hpp:67
ddt::DdtProducerConsumerBase
Definition: ddtProducerConsumerBase.hpp:40
ddt::DdtProducerConsumerBase::logger
DdtLogger * logger
Definition: ddtProducerConsumerBase.hpp:123
ddt::DdtProducerConsumerBase::min_port
int32_t min_port
Definition: ddtProducerConsumerBase.hpp:113
ddt::DdtProducerConsumerBase::LoadDefaults
void LoadDefaults()
Definition: ddtProducerConsumerBase.cpp:35
ddtLogger.hpp
ddt::DdtProducerConsumerBase::PUB_UNREG
@ PUB_UNREG
Definition: ddtProducerConsumerBase.hpp:71
ddt::DdtProducerConsumerBase::Init
void Init(DdtLogger *ddt_logger)
Definition: ddtProducerConsumerBase.cpp:31
ddtMemoryAccessor.hpp
ddt::DdtProducerConsumerBase::ReadIni
void ReadIni()
Definition: ddtProducerConsumerBase.cpp:41