RTC Toolkit 5.0.0
Loading...
Searching...
No Matches
ddsWaitSetIf.hpp
Go to the documentation of this file.
1
12#ifndef RTCTK_TELSUB_DDSWAITSETIF_HPP
13#define RTCTK_TELSUB_DDSWAITSETIF_HPP
14#include <optional>
15#include <rtctk/config.hpp>
16
17#include <chrono>
18#include <cstdint>
19#include <functional>
20#include <string>
21#include <system_error>
22#include <variant>
23#include <vector>
24
27
28namespace rtctk::telSub {
29
30using namespace rtctk::componentFramework;
31
38 // cppcheck-suppress unusedStructMember
39 std::string multicast_address;
40};
41
52struct DdsParams {
56
57 // settings for each topic
58 std::map<std::string, DdsTopicOptions> m_topics = {};
59
60 // size is the number of network interfaces that we want, not the same as size of
61 // m_topics/m_multicast_addresses
62 std::vector<std::string> m_interface_white_list = {};
63
64 std::string m_component_name = "";
65};
66
71
76 std::string topic;
77 std::variant<eprosima::fastdds::dds::ReturnCode_t, InternalError> code;
78 std::string Message() const;
79 bool operator==(const DdsWaitSetError& b) const {
80 return topic == b.topic and code == b.code;
81 };
82 friend void PrintTo(const DdsWaitSetError& error, std::ostream* os) {
83 *os << error.Message();
84 }
85};
86
157
158} // namespace rtctk::telSub
159
160#endif // RTCTK_TELSUB_DDSWAITSETIF_HPP
Declares AgnosticDataSamples.
static const DomainId_t DEFAULT_DOMAIN_ID
default Domain Id for different DDS
Definition dds.hpp:174
static const std::string DEFAULT_QOS_PROFILE
default profile name for different DDS QoSs
Definition dds.hpp:168
static const std::string TELEM_DP_QOS_FILE
default file name for different DDS QoSs
Definition dds.hpp:162
Container of DDS samples and associated sample information.
Definition agnosticDataSamples.hpp:77
Base class abstracting DDS communication code.
Definition ddsWaitSetIf.hpp:93
virtual std::optional< DdsWaitSetError > Take(std::chrono::nanoseconds timeout) RTCTK_NOEXCEPT=0
Takes new samples from DDS readers and updates data structure accessable from GetSamples()
DdsWaitSetIf() RTCTK_NOEXCEPT
Definition ddsWaitSetIf.hpp:95
virtual ~DdsWaitSetIf() RTCTK_NOEXCEPT
Definition ddsWaitSetIf.hpp:96
virtual size_t GetNumberOfTopics() const RTCTK_NOEXCEPT=0
Returns the number of configured topics.
virtual void CheckDdsConnections()=0
virtual AgnosticDataSamples & GetSamples() RTCTK_NOEXCEPT=0
Returns reference to data structure holding taken data samples.
Project-wide configuration header.
#define RTCTK_NOEXCEPT
Definition config.hpp:63
Declares some common DDS functionality.
Definition commandReplier.cpp:22
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
Definition main.cpp:24
InternalError
For internal errors.
Definition ddsWaitSetIf.hpp:70
Parameter set to be passed to classes deriving from DdsWaitSetIf.
Definition ddsWaitSetIf.hpp:52
std::map< std::string, DdsTopicOptions > m_topics
Definition ddsWaitSetIf.hpp:58
int32_t m_domain_id
Definition ddsWaitSetIf.hpp:53
std::string m_qos_profile
Definition ddsWaitSetIf.hpp:55
std::string m_component_name
Definition ddsWaitSetIf.hpp:64
std::string m_qos_file
Definition ddsWaitSetIf.hpp:54
std::vector< std::string > m_interface_white_list
Definition ddsWaitSetIf.hpp:62
Options for a single topic.
Definition ddsWaitSetIf.hpp:37
std::string multicast_address
Definition ddsWaitSetIf.hpp:39
Error reporting struct, contains the return code and topic where the error occurred.
Definition ddsWaitSetIf.hpp:75
std::variant< eprosima::fastdds::dds::ReturnCode_t, InternalError > code
Definition ddsWaitSetIf.hpp:77
bool operator==(const DdsWaitSetError &b) const
Definition ddsWaitSetIf.hpp:79
std::string topic
Definition ddsWaitSetIf.hpp:76
friend void PrintTo(const DdsWaitSetError &error, std::ostream *os)
Definition ddsWaitSetIf.hpp:82
std::string Message() const
Definition ddsWaitSet.cpp:85