RTC Toolkit  0.1.0-alpha
ddsSubscriberIf.hpp
Go to the documentation of this file.
1 
8 #ifndef RTCKT_TELSUB_DDSSUBSCRIBERIF_HPP
9 #define RTCKT_TELSUB_DDSSUBSCRIBERIF_HPP
10 
11 #include <cstdint>
12 #include <string>
13 #include <vector>
14 #include <chrono>
15 #include <system_error>
16 #include <agnostictopicif.h>
17 
18 namespace rtctk::telSub {
19 
27 struct DdsParams {
29 
31  std::string m_qos_library;
32  std::string m_qos_profile;
33  std::vector<std::string> m_topics;
34 };
35 
40 public:
41 
43  virtual ~DdsSubscriberIf() noexcept {};
44 
82  virtual std::error_code TakeSamples(
83  std::vector<std::vector<const rtctk::AgnosticTopic*>>& samples,
84  std::chrono::nanoseconds timeout
85  ) const noexcept = 0;
86 
111  virtual std::error_code ReturnSamples(
112  const std::vector<const rtctk::AgnosticTopic*>& samples
113  ) const noexcept = 0;
114 
124  virtual size_t GetNumberOfTopics() const noexcept = 0;
125 
139  virtual const std::string& GetTopicName(size_t index) const noexcept = 0;
140 };
141 
142 } // namespace rtctk::telSub
143 #endif // RTCKT_TELSUB_DDSSUBSCRIBERIF_HPP
rtctk::telSub::DdsSubscriberIf::~DdsSubscriberIf
virtual ~DdsSubscriberIf() noexcept
Definition: ddsSubscriberIf.hpp:43
rtctk::telSub::DdsSubscriberIf
Base class abstracting DDS communication code.
Definition: ddsSubscriberIf.hpp:39
rtctk::telSub::DdsSubscriberIf::TakeSamples
virtual std::error_code TakeSamples(std::vector< std::vector< const rtctk::AgnosticTopic * >> &samples, std::chrono::nanoseconds timeout) const noexcept=0
Retrieves the buffers for the next data samples received from DDS.
rtctk::telSub::DdsParams::m_qos_profile
std::string m_qos_profile
Definition: ddsSubscriberIf.hpp:32
rtctk::telSub::DdsParams::m_qos_library
std::string m_qos_library
Definition: ddsSubscriberIf.hpp:31
rtctk::telSub::DdsSubscriberIf::GetTopicName
virtual const std::string & GetTopicName(size_t index) const noexcept=0
Returns a string containing the name of a configured topic.
rtctk::telSub::DdsParams::m_topics
std::vector< std::string > m_topics
Definition: ddsSubscriberIf.hpp:33
rtctk::telSub
Definition: businessLogic.cpp:35
rtctk::telSub::DdsParams
Parameter set to be passed to classes deriving from DdsSubscriberIf.
Definition: ddsSubscriberIf.hpp:27
rtctk::telSub::DdsParams::DdsParams
DdsParams()
Definition: ddsSubscriberIf.hpp:28
std
Definition: mudpiProcessingError.hpp:109
rtctk::telSub::DdsParams::m_domain_id
int32_t m_domain_id
Definition: ddsSubscriberIf.hpp:28
mudpi::int32_t
int int32_t
Definition: mudpi.h:17
rtctk::telSub::DdsSubscriberIf::GetNumberOfTopics
virtual size_t GetNumberOfTopics() const noexcept=0
Returns the number of configured topics.
rtctk::telSub::DdsSubscriberIf::ReturnSamples
virtual std::error_code ReturnSamples(const std::vector< const rtctk::AgnosticTopic * > &samples) const noexcept=0
Releases buffers for previously retrieved data samples.
rtctk::telSub::DdsSubscriberIf::DdsSubscriberIf
DdsSubscriberIf()
Definition: ddsSubscriberIf.hpp:42