11#ifndef RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDSPUB_HPP
12#define RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDSPUB_HPP
20using namespace std::chrono_literals;
49 Publisher* m_publisher =
nullptr;
50 std::vector<DataWriter*> m_data_writers;
51 std::vector<std::shared_ptr<DataWriterListener>> m_listeners;
67 explicit DdsPub(
const std::string& qos_file,
70 const std::string& participant_name =
"");
92 CreateDataWriter(Topic* topic, std::shared_ptr<DataWriterListener> listener =
nullptr);
104 bool to_be_removed =
true,
105 std::chrono::milliseconds wait_acks_timeout = 5000ms);
148 return m_data_writers;
157 void WaitForAcks(DataWriter* dw, std::chrono::milliseconds wait_acks_timeout = 5000ms);
void DumpDDSstatistics()
Dumps / logs varios DDS statistic like NACks, ACKs, ... for each DDS writer.
Definition ddsPub.cpp:244
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:145
void CreateDataWriters()
Creates DDS Data Writer for all DDS topics.
Definition ddsPub.cpp:229
void WaitForAcks(DataWriter *dw, std::chrono::milliseconds wait_acks_timeout=5000ms)
Wait for ACKs for the given DDS Data Writer.
Definition ddsPub.cpp:249
void CreatePublisher()
Creates DDS publisher.
Definition ddsPub.cpp:43
void CreateManyDataWriters(const std::vector< DdsWriterParams > &topics_listeners)
create DDS topics and DDS writers for the given list (vector) of topic names and rtctk::componentFram...
Definition ddsPub.cpp:189
void DestroyPublisher()
Destroys DDS publisher.
Definition ddsPub.cpp:76
DdsPub(const std::string &qos_file, const std::string &qos_profile=DEFAULT_QOS_PROFILE, DomainId_t domain_id=DEFAULT_DOMAIN_ID, const std::string &participant_name="")
DDS Publsiher class that takes care for handling all DDS entities to publish samples.
Definition ddsPub.cpp:25
~DdsPub() override
Definition ddsPub.cpp:34
DataWriter * CreateDataWriter(Topic *topic, std::shared_ptr< DataWriterListener > listener=nullptr)
Creates DDS writer for particular topic for topic of type: rtctk::AgnosticTopic.
Definition ddsPub.cpp:93
std::vector< DataWriter * > & GetDataWriters()
returns vector of all DDS Data writers
Definition ddsPub.hpp:147
void DestroyAllDataWriters(std::chrono::milliseconds wait_acks_timeout=5000ms)
Destroys DDS Data Writer for all DDS topics.
Definition ddsPub.cpp:218
static const DomainId_t DEFAULT_DOMAIN_ID
default Domain Id for different DDS
Definition dds.hpp:173
static const std::string DEFAULT_QOS_PROFILE
default profile name for different DDS QoSs
Definition dds.hpp:167
Dds(const std::string &qos_file, const std::string &qos_profile=DEFAULT_QOS_PROFILE, DomainId_t domain_id=DEFAULT_DOMAIN_ID, const std::string &participant_name="")
Constructor for Base class for both DDS Publisher and DDS Subscriber.
Definition dds.cpp:24
Declares common DDS class.
Definition commandReplier.cpp:21
Definition ddsSub.hpp:155
DdsWriterParams(const std::string &tn, std::shared_ptr< DataWriterListener > l)
Definition ddsPub.hpp:31
std::string topic_name
Definition ddsPub.hpp:28
std::shared_ptr< DataWriterListener > listener
Definition ddsPub.hpp:29
DdsWriterParams(const std::string &tn)
Definition ddsPub.hpp:35