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