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 #include "ddt/ddtPublisher.hpp"
28 
29 namespace mal = ::elt::mal;
30 namespace datatransfer = ::elt::ddt::datatransfer;
31 
32 namespace ddt {
33 
40  public:
45 
50 
74  SHM_DEL
75  };
76 
80  virtual void Notify(NotificationType) = 0;
81 
82  protected:
86  void LoadDefaults();
87 
91  void ReadIni();
92 
96  void PrintConfigValues();
97 
102  int32_t GetFreePort();
103 
107  int32_t min_port;
108 
112  int32_t max_port;
113 
118 
119  const int MIN_PORT_DEFAULT = 5100;
120  const int MAX_PORT_DEFAULT = 5500;
121  const int MIN_RANGE = 3;
122  const int LINE_LENGTH = 256;
123 };
124 
125 } // namespace ddt
126 
127 #endif /* DDTPRODUCERCONSUMERBASE_HPP_ */
ddt::DdtProducerConsumerBase::PrintConfigValues
void PrintConfigValues()
Definition: ddtProducerConsumerBase.cpp:82
ddtPublisher.hpp
ddt::DdtLogger
Definition: ddtLogger.hpp:71
ddtConstants.hpp
ddt
Definition: ddtClient.hpp:36
ddt::DdtProducerConsumerBase::MAX_PORT_DEFAULT
const int MAX_PORT_DEFAULT
Definition: ddtProducerConsumerBase.hpp:120
ddt::DdtProducerConsumerBase::MIN_PORT_DEFAULT
const int MIN_PORT_DEFAULT
Definition: ddtProducerConsumerBase.hpp:119
ddt::DdtProducerConsumerBase::MIN_RANGE
const int MIN_RANGE
Definition: ddtProducerConsumerBase.hpp:121
ddt::DdtProducerConsumerBase::max_port
int32_t max_port
Definition: ddtProducerConsumerBase.hpp:112
ddt::DdtProducerConsumerBase::SHM_DEL
@ SHM_DEL
Definition: ddtProducerConsumerBase.hpp:74
ddt::DdtProducerConsumerBase::DdtProducerConsumerBase
DdtProducerConsumerBase(DdtLogger *logger)
Definition: ddtProducerConsumerBase.cpp:22
ddt::DdtProducerConsumerBase::~DdtProducerConsumerBase
virtual ~DdtProducerConsumerBase()
ddt::DdtProducerConsumerBase::NotificationType
NotificationType
Definition: ddtProducerConsumerBase.hpp:58
ddt::DdtProducerConsumerBase::GetFreePort
int32_t GetFreePort()
Definition: ddtProducerConsumerBase.cpp:89
ddt::DdtProducerConsumerBase::Notify
virtual void Notify(NotificationType)=0
ddt::DdtProducerConsumerBase::LINE_LENGTH
const int LINE_LENGTH
Definition: ddtProducerConsumerBase.hpp:122
ddt::DdtProducerConsumerBase::NEW_DATA
@ NEW_DATA
Definition: ddtProducerConsumerBase.hpp:62
ddt::DdtProducerConsumerBase::PUB_REG
@ PUB_REG
Definition: ddtProducerConsumerBase.hpp:66
ddt::DdtProducerConsumerBase
Definition: ddtProducerConsumerBase.hpp:39
ddt::DdtProducerConsumerBase::logger
DdtLogger * logger
Definition: ddtProducerConsumerBase.hpp:117
ddt::DdtProducerConsumerBase::min_port
int32_t min_port
Definition: ddtProducerConsumerBase.hpp:107
ddt::DdtProducerConsumerBase::LoadDefaults
void LoadDefaults()
Definition: ddtProducerConsumerBase.cpp:31
ddtLogger.hpp
ddt::DdtProducerConsumerBase::PUB_UNREG
@ PUB_UNREG
Definition: ddtProducerConsumerBase.hpp:70
ddtMemoryAccessor.hpp
ddt::DdtProducerConsumerBase::ReadIni
void ReadIni()
Definition: ddtProducerConsumerBase.cpp:36