ddt  0.1
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ddt::DdtProducerConsumerBase Class Referenceabstract

#include <ddtProducerConsumerBase.hpp>

Inheritance diagram for ddt::DdtProducerConsumerBase:
ddt::DdtDataConsumer ddt::DdtDataProducer DdtDataProducerConsumerFake DdtDataConsumerFake

Public Types

enum  NotificationType { NEW_DATA, PUB_REG, PUB_UNREG, SHM_DEL }
 

Public Member Functions

 DdtProducerConsumerBase (DdtLogger *ddt_logger)
 
virtual ~DdtProducerConsumerBase ()
 
virtual void Notify (NotificationType type)=0
 

Protected Member Functions

void Init (DdtLogger *ddt_logger)
 
void LoadDefaults ()
 
void ReadIni ()
 
void PrintConfigValues ()
 
int32_t GetFreePort () const
 

Protected Attributes

int32_t min_port
 
int32_t max_port
 
DdtLoggerlogger
 
const int MIN_PORT_DEFAULT = 5100
 
const int MAX_PORT_DEFAULT = 5500
 
const int MIN_RANGE = 3
 
const int LINE_LENGTH = 256
 

Detailed Description

This class serves as a base class for DdtDataProducer and DdtDataConsumer classes. It provides the ReadIni() and GetFreePort() functions for derived classes.

Member Enumeration Documentation

◆ NotificationType

There are different types of notifications: NEW_DATA: New data is available PUB_REG: Publisher has registered PUB_UNREG: Publisher will unregister SHM_DEL: SHM gets deleted

Enumerator
NEW_DATA 

New data notification

PUB_REG 

Publisher registration

PUB_UNREG 

Publisher unregisters

SHM_DEL 

Shared memory deleted

Constructor & Destructor Documentation

◆ DdtProducerConsumerBase()

DdtProducerConsumerBase::DdtProducerConsumerBase ( DdtLogger ddt_logger)
explicit

Constructor

◆ ~DdtProducerConsumerBase()

DdtProducerConsumerBase::~DdtProducerConsumerBase ( )
virtualdefault

Destructor

Member Function Documentation

◆ GetFreePort()

int32_t DdtProducerConsumerBase::GetFreePort ( ) const
protected

Reads /proc/net/tcp and returns a free port from the port range specified in databroker.ini.

iterate over port range check each iteration if port is in use break and return the port if it is free

◆ Init()

void DdtProducerConsumerBase::Init ( DdtLogger ddt_logger)
protected

Initializes member variables.

◆ LoadDefaults()

void DdtProducerConsumerBase::LoadDefaults ( )
protected

Loads default values for configuration parameters.

◆ Notify()

virtual void ddt::DdtProducerConsumerBase::Notify ( NotificationType  type)
pure virtual

Sends a notification to local subscribers.

Implemented in ddt::DdtDataProducer, ddt::DdtDataConsumer, and DdtDataProducerConsumerFake.

◆ PrintConfigValues()

void DdtProducerConsumerBase::PrintConfigValues ( )
protected

Prints the values of configuration parameters.

◆ ReadIni()

void DdtProducerConsumerBase::ReadIni ( )
protected

Reads the databroker configuration file.

Member Data Documentation

◆ LINE_LENGTH

const int ddt::DdtProducerConsumerBase::LINE_LENGTH = 256
protected

◆ logger

DdtLogger* ddt::DdtProducerConsumerBase::logger
protected

Logger object

◆ max_port

int32_t ddt::DdtProducerConsumerBase::max_port
protected

configurable upper boundary of the port range used for notifications

◆ MAX_PORT_DEFAULT

const int ddt::DdtProducerConsumerBase::MAX_PORT_DEFAULT = 5500
protected

◆ min_port

int32_t ddt::DdtProducerConsumerBase::min_port
protected

configurable lower boundary of the port range used for notifications

◆ MIN_PORT_DEFAULT

const int ddt::DdtProducerConsumerBase::MIN_PORT_DEFAULT = 5100
protected

◆ MIN_RANGE

const int ddt::DdtProducerConsumerBase::MIN_RANGE = 3
protected

The documentation for this class was generated from the following files: