12#ifndef RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDSPUB_HPP
13#define RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDSPUB_HPP
20using namespace std::chrono_literals;
46 Publisher *m_publisher;
48 std::vector<DataWriter *> m_data_writers;
62 explicit DdsPub(
const std::string &qos_file,
65 const std::string &participant_name =
"");
86 DataWriter *
CreateDataWriter(Topic *topic, DataWriterListener *listener =
nullptr);
98 bool to_be_removed =
true,
99 std::chrono::milliseconds wait_acks_timeout = 5000ms);
140 return m_data_writers;
149 void WaitForAcks(DataWriter *dw, std::chrono::milliseconds wait_acks_timeout = 5000ms);
All functionallty needed to create DDS entities for DDS data publishing is concentrated in this class...
Definition: ddsPub.hpp:45
void DumpDDSstatistics()
Dumps / logs varios DDS statistic like NACks, ACKs, ... for each DDS writer.
Definition: ddsPub.cpp:242
void DestroyDataWriter(DataWriter *dw, bool to_be_removed=true, std::chrono::milliseconds wait_acks_timeout=5000ms)
Destroys DDS data writer, and also its listener.
Definition: ddsPub.cpp:147
void CreateManyDataWriters(std::vector< DdsWriterParams > const &)
create DDS topics and DDS writers for the given list (vector) of topic names and rtctk::componentFram...
Definition: ddsPub.cpp:187
virtual ~DdsPub()
Definition: ddsPub.cpp:35
void CreateDataWriters()
Creates DDS Data Writer for all DDS topics.
Definition: ddsPub.cpp:227
void WaitForAcks(DataWriter *dw, std::chrono::milliseconds wait_acks_timeout=5000ms)
Wait for ACKs for the given DDS Data Writer.
Definition: ddsPub.cpp:247
void CreatePublisher()
Creates DDS publisher.
Definition: ddsPub.cpp:44
void DestroyPublisher()
Destroys DDS publisher.
Definition: ddsPub.cpp:77
std::vector< DataWriter * > & GetDataWriters()
returns vector of all DDS Data writers
Definition: ddsPub.hpp:139
DataWriter * CreateDataWriter(Topic *topic, DataWriterListener *listener=nullptr)
Creates DDS writer for particular topic for topic of type: rtctk::AgnosticTopic.
Definition: ddsPub.cpp:94
void DestroyAllDataWriters(std::chrono::milliseconds wait_acks_timeout=5000ms)
Destroys DDS Data Writer for all DDS topics.
Definition: ddsPub.cpp:216
Common functionallty needed to create DDS entities like participant and topic that can be later used ...
Definition: dds.hpp:33
static const DomainId_t DEFAULT_DOMAIN_ID
default Domain Id for different DDS
Definition: dds.hpp:168
static const std::string DEFAULT_QOS_PROFILE
default profile name for different DDS QoSs
Definition: dds.hpp:162
Declares common DDS class.
Definition: commandReplier.cpp:22
Structure that keeps together topic name and DDS Data Writer listener.
Definition: ddsPub.hpp:27
DataWriterListener * listener
Definition: ddsPub.hpp:29
std::string topic_name
Definition: ddsPub.hpp:28
DdsWriterParams(const std::string &tn)
Definition: ddsPub.hpp:34
DdsWriterParams(const std::string &tn, DataWriterListener *l)
Definition: ddsPub.hpp:31