ddt  0.1
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ddt::DdtDataPublisher Class Reference

#include <ddtDataPublisher.hpp>

Inheritance diagram for ddt::DdtDataPublisher:
ddt::DdtDataTransferLib DdtDataPublisher2Fake DdtDataPublisherFake

Public Member Functions

 DdtDataPublisher (DdtLogger *logger)
 
 DdtDataPublisher (log4cplus::Logger const &log4cplusLogger)
 
 ~DdtDataPublisher () override
 
int RegisterPublisher (const std::string uri, const std::string dsi, const bool compute_crc) override
 
int UnregisterPublisher () override
 
void PublishData () override
 
void SetBufferSize (const int max_sample_size, const int number_samples)
 
void WriteData (const int32_t sample_id, const std::vector< uint8_t > &datavec, const std::vector< uint8_t > &metadatavec)
 
void WriteData (const int32_t sample_id, const uint8_t *const data, const int32_t data_size, const uint8_t *const metadata, const int32_t metadata_size)
 
void set_topic_id (const int id)
 
bool get_connected_to_broker () const
 
- Public Member Functions inherited from ddt::DdtDataTransferLib
 DdtDataTransferLib (DdtLogger *ddt_logger)
 
 DdtDataTransferLib (log4cplus::Logger const &log4cplusLogger)
 
virtual ~DdtDataTransferLib ()
 
void SetQoS (const int ddt_latency, const int ddt_deadline)
 
virtual int RegisterSubscriber (const std::string uri, const std::string dsi, const std::string remote_uri, const int32_t interval=10)
 
virtual int UnregisterSubscriber ()
 
virtual DataSampleReadData ()
 

Protected Member Functions

void LoadDefaults ()
 
void ReadIni ()
 
- Protected Member Functions inherited from ddt::DdtDataTransferLib
void StartHeartbeat (const int32_t interval, const std::string id)
 
void StopHeartbeat ()
 
int InitMAL (const std::string broker_uri)
 
void CheckHeartbeatTimeout (int32_t &new_reply_time)
 
const std::string VerifyPathInBrokerUri (std::string broker_uri)
 
const std::string GetConfigFilePath ()
 

Protected Attributes

int topic_id
 
- Protected Attributes inherited from ddt::DdtDataTransferLib
int latency
 
int deadline
 
int32_t reply_time
 
int32_t heartbeat_interval
 
std::promise< void > exit_signal_heartbeat
 
std::future< void > future_object_heartbeat
 
std::atomic< bool > heartbeat_active
 
std::unique_ptr< datatransfer::DataBrokerRegistrationSync, std::default_delete< datatransfer::DataBrokerRegistrationSync > > client
 
std::atomic< bool > connected_to_broker
 
elt::mal::rr::ListenerRegistration connection_listener
 
DdtLoggerlogger
 
DdtLoggermyLogger = nullptr
 
const int32_t REPLY_TIME_DEFAULT = 6
 
const int32_t REPLY_TIME_MIN = 2
 

Detailed Description

This class provides the functionality for publisher applications to register / unregister at a local broker and to publish data for a specified data stream.

Constructor & Destructor Documentation

◆ DdtDataPublisher() [1/2]

DdtDataPublisher::DdtDataPublisher ( DdtLogger logger)
explicit

Constructor

◆ DdtDataPublisher() [2/2]

DdtDataPublisher::DdtDataPublisher ( log4cplus::Logger const &  log4cplusLogger)
explicit

Constructor, taking a log4cplus logger as input

◆ ~DdtDataPublisher()

DdtDataPublisher::~DdtDataPublisher ( )
override

Destructor

Member Function Documentation

◆ get_connected_to_broker()

bool DdtDataPublisher::get_connected_to_broker ( ) const

Returns connected_to_broker.

◆ LoadDefaults()

void DdtDataPublisher::LoadDefaults ( )
protected

Loads default values for configuration parameters.

◆ PublishData()

void DdtDataPublisher::PublishData ( )
overridevirtual

Function for triggering the local broker to publish data over the network.

Reimplemented from ddt::DdtDataTransferLib.

◆ ReadIni()

void DdtDataPublisher::ReadIni ( )
protected

Reads the datatransferlib configuration file.

An exception is thrown if the config file does not exist. In that case the default values are used instead.

make sure configured reply time is at least REPLY_TIME_MIN set to default value otherwise

◆ RegisterPublisher()

int DdtDataPublisher::RegisterPublisher ( const std::string  uri,
const std::string  dsi,
const bool  compute_crc 
)
overridevirtual

Function for registering a publisher at the local broker using a MAL client.

Reimplemented from ddt::DdtDataTransferLib.

◆ set_topic_id()

void DdtDataPublisher::set_topic_id ( const int  id)

Sets the topic_id.

◆ SetBufferSize()

void DdtDataPublisher::SetBufferSize ( const int  max_sample_size,
const int  number_samples 
)

Specifies the maximum data sample size and the number of samples.

◆ UnregisterPublisher()

int DdtDataPublisher::UnregisterPublisher ( )
overridevirtual

Function for unregistering a publisher from the local broker.

Reimplemented from ddt::DdtDataTransferLib.

◆ WriteData() [1/2]

void DdtDataPublisher::WriteData ( const int32_t  sample_id,
const std::vector< uint8_t > &  datavec,
const std::vector< uint8_t > &  metadatavec 
)

Writes the data packet into shared memory using a memory accessor.

◆ WriteData() [2/2]

void DdtDataPublisher::WriteData ( const int32_t  sample_id,
const uint8_t *const  data,
const int32_t  data_size,
const uint8_t *const  metadata,
const int32_t  metadata_size 
)

Writes the data packet into shared memory using a memory accessor. The data is passed as a pointer.

Member Data Documentation

◆ topic_id

int ddt::DdtDataPublisher::topic_id
protected

Topic ID of the data


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