RTC Toolkit 5.0.0
Loading...
Searching...
No Matches
ddsWaitSet.hpp
Go to the documentation of this file.
1
12#ifndef RTCKT_TELSUB_DDSWAITSET_HPP
13#define RTCKT_TELSUB_DDSWAITSET_HPP
14
15#include <cstdint>
16#include <list>
17#include <map>
18#include <memory>
19#include <optional>
20#include <set>
21#include <variant>
22
25
26namespace rtctk::telSub {
27
35public:
36 using Alloc = std::pmr::polymorphic_allocator<std::byte>;
37
61 explicit DdsWaitSet(const DdsParams& params, const Alloc& alloc = {});
62
72
73 // Do not allow copying or moving of this object.
78
81
83
85
87 std::error_code ReturnLoan(const std::string& topic,
88 DdsSampleSeq& samples,
90
107 void Initialise(const DdsParams& params);
108
120 void Finalise();
121
122 // cppcheck-suppress-begin unusedStructMember
123
124 log4cplus::Logger& m_logger;
125
126 std::unique_ptr<rtctk::componentFramework::DdsSub> m_dds_sub;
127
128 std::map<std::string, rtctk::componentFramework::DataReader*> m_readers;
129 std::map<Condition*, std::string> m_reader_context_lut;
130 std::unique_ptr<WaitSet> m_waitset;
131 AgnosticDataSamples m_samples;
132
133 // cppcheck-suppress-end unusedStructMember
134};
135
136} // namespace rtctk::telSub
137
138#endif // RTCKT_TELSUB_DDSWAITSET_HPP
All functionality needed to create DDS entities for DDS data subscribing is concentrated in this clas...
Definition ddsSub.hpp:48
Container of DDS samples and associated sample information.
Definition agnosticDataSamples.hpp:77
Base class abstracting DDS communication code.
Definition ddsWaitSetIf.hpp:93
Implements DDS communication using FastDDS.
Definition ddsWaitSet.hpp:34
DdsWaitSet(const DdsParams &params, const Alloc &alloc={})
Constructs a DDS subscriber from given configuration parameters.
Definition ddsWaitSet.cpp:103
std::error_code ReturnLoan(const std::string &topic, DdsSampleSeq &samples, DdsInfoSeq &infos) noexcept override
Returns loaned sample sequence.
Definition ddsWaitSet.cpp:261
void CheckDdsConnections() override
Definition ddsWaitSet.cpp:277
std::pmr::polymorphic_allocator< std::byte > Alloc
Definition ddsWaitSet.hpp:36
std::optional< DdsWaitSetError > Take(std::chrono::nanoseconds timeout) noexcept override
Takes new samples from DDS readers and updates data structure accessable from GetSamples()
Definition ddsWaitSet.cpp:217
~DdsWaitSet() noexcept override
Destroys the DDS subscriber and releases all DDS resources.
Definition ddsWaitSet.cpp:116
size_t GetNumberOfTopics() const noexcept override
Returns the number of configured topics.
Definition ddsWaitSet.cpp:273
AgnosticDataSamples & GetSamples() noexcept override
Returns reference to data structure holding taken data samples.
Definition ddsWaitSet.cpp:128
Loaner interface.
Definition agnosticDataSamples.hpp:40
DDS Subscriber.
Declares DdsWaitSetIf.
elt::mal::future< std::string > InjectReqRepEvent(StateMachineEngine &engine)
Definition malEventInjector.hpp:23
Definition main.cpp:24
rtctk::componentFramework::AgnosticTopicSeq DdsSampleSeq
Definition agnosticDataSamples.hpp:30
rtctk::componentFramework::SampleInfoSeq DdsInfoSeq
Definition agnosticDataSamples.hpp:32
Definition commandReplier.cpp:22
Parameter set to be passed to classes deriving from DdsWaitSetIf.
Definition ddsWaitSetIf.hpp:52
Error reporting struct, contains the return code and topic where the error occurred.
Definition ddsWaitSetIf.hpp:75