RTC Toolkit 5.0.0
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
39
40 std::string m_qos_profile;
41
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,
68 const std::string& participant_name = "");
69 virtual ~Dds() noexcept;
70
72 Dds& operator=(Dds&& rhs) = delete;
73
78 void SetQosProfile(const std::string& 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
153
154 const std::string GetTopicName(size_t index) const noexcept;
155
156 // cppcheck-suppress-begin unusedStructMember
157
163
169
175
176 // cppcheck-suppress-end unusedStructMember
177};
178
179} // namespace rtctk::componentFramework
180
181#endif // RTCTK_COMPONENTFRAMEWORK_DATAPATH_DDS_HPP
Common functionallty needed to create DDS entities like participant and topic that can be later used ...
Definition dds.hpp:33
void CreateManyTopics(std::vector< std::string > &topic_names)
Creates many DDS topics.
Definition dds.cpp:314
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:226
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:297
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
const std::string GetTopicName(size_t index) const noexcept
Definition dds.cpp:346
size_t GetNumberOfTopics() const noexcept
Definition dds.cpp:341
Topic * CreateTopic(const std::string &topic_name)
Creates DDS topic.
Definition dds.cpp:243
void CreateParticipant()
Creates DDS participant.
Definition dds.cpp:125
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:104
void DestroyAllTopics()
Destroys all DDS topics from internal map.
Definition dds.cpp:326
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:355
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:113
DomainId_t m_domain_id
Definition dds.hpp:42
Declares some common DDS functionality.
Definition commandReplier.cpp:22
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23