RTC Toolkit 6.0.0-pre2
Loading...
Searching...
No Matches
dds.hpp
Go to the documentation of this file.
1
12#ifndef RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDS_HPP
13#define RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDS_HPP
14
15#include <string>
16#include <vector>
17
18#include <log4cplus/logger.h>
20
22
33class Dds {
34protected:
35 // cppcheck-suppress-begin unusedStructMember
36
37 DomainParticipantFactory* m_factory = nullptr;
38 DomainParticipant* m_participant = nullptr;
39
40 std::string m_qos_profile;
41
42 DomainId_t m_domain_id = 0;
43
44 std::vector<std::string> m_interface_white_list;
45
46 std::string m_participant_name;
47
48 // list of DDS topics
49 std::vector<Topic*> m_topics;
50 log4cplus::Logger& m_logger;
51
52 // cppcheck-suppress-end unusedStructMember
53
54public:
65 explicit Dds(const std::string& qos_file,
66 const std::string& qos_profile = DEFAULT_QOS_PROFILE,
67 DomainId_t domain_id = DEFAULT_DOMAIN_ID,
68 const std::string& participant_name = "");
69 virtual ~Dds() noexcept;
70
71 Dds(Dds&& rhs) = delete;
72 Dds& operator=(Dds&& rhs) = delete;
73
78 void SetQosProfile(const std::string& qos_profile) {
79 m_qos_profile = qos_profile;
80 }
81
92 void SetInterfaceWhiteList(const std::vector<std::string>& iwl);
93
101 void SetParticipantName(const std::string& name) {
102 m_participant_name = name;
103 }
104
109 void CreateParticipant();
110
115 void DestroyParticipant();
116
124 Topic* CreateTopic(const std::string& topic_name);
125
132 void DestroyTopic(Topic* topic, bool to_be_removed = true);
133
139 void CreateManyTopics(std::vector<std::string>& topic_names);
140
145 void DestroyAllTopics();
146
150 void DumpDDSstatistics();
151
152 size_t GetNumberOfTopics() const noexcept;
153
154 const std::string GetTopicName(size_t index) const noexcept;
155
156 // cppcheck-suppress-begin unusedStructMember
157
162 inline static const std::string TELEM_DP_QOS_FILE = "telemDataPathDdsQos.xml";
163
168 inline static const std::string DEFAULT_QOS_PROFILE = "RtcTk_Default_Profile";
169
174 inline static const DomainId_t DEFAULT_DOMAIN_ID = 0;
175
176 // cppcheck-suppress-end unusedStructMember
177};
178
179} // namespace rtctk::componentFramework
180
181#endif // RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDS_HPP
void CreateManyTopics(std::vector< std::string > &topic_names)
Creates many DDS topics.
Definition dds.cpp:312
static const DomainId_t DEFAULT_DOMAIN_ID
default Domain Id for different DDS
Definition dds.hpp:174
std::vector< Topic * > m_topics
Definition dds.hpp:49
std::string m_participant_name
Definition dds.hpp:46
void DestroyParticipant()
Destroys DDS participant created in CreateParticipant.
Definition dds.cpp:224
void SetParticipantName(const std::string &name)
Sets the name of the DDS Participant.
Definition dds.hpp:101
std::vector< std::string > m_interface_white_list
Definition dds.hpp:44
void DestroyTopic(Topic *topic, bool to_be_removed=true)
Destroys DDS topic.
Definition dds.cpp:295
DomainParticipant * m_participant
Definition dds.hpp:38
static const std::string DEFAULT_QOS_PROFILE
default profile name for different DDS QoSs
Definition dds.hpp:168
size_t GetNumberOfTopics() const noexcept
Definition dds.cpp:339
Topic * CreateTopic(const std::string &topic_name)
Creates DDS topic.
Definition dds.cpp:241
void CreateParticipant()
Creates DDS participant.
Definition dds.cpp:123
static const std::string TELEM_DP_QOS_FILE
default file name for different DDS QoSs
Definition dds.hpp:162
virtual ~Dds() noexcept
Definition dds.cpp:102
void DestroyAllTopics()
Destroys all DDS topics from internal map.
Definition dds.cpp:324
std::string m_qos_profile
Definition dds.hpp:40
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:25
log4cplus::Logger & m_logger
Definition dds.hpp:50
DomainParticipantFactory * m_factory
Definition dds.hpp:37
void DumpDDSstatistics()
Dumps / logs varios DDS statistic like NACks, ACKs, ... for each DDS writer.
Definition dds.cpp:353
void SetQosProfile(const std::string &qos_profile)
Set FastDDS QoS profile after creation.
Definition dds.hpp:78
void SetInterfaceWhiteList(const std::vector< std::string > &iwl)
Sets the interfaces that can be used for DDS sample traffic.
Definition dds.cpp:111
DomainId_t m_domain_id
Definition dds.hpp:42
Declares some common DDS functionality.
Definition commandReplier.cpp:22
const char * GetTopicName(const DataWriter *writer)
Definition ddsCommon.cpp:21
Definition ddsSub.hpp:156