RTC Toolkit  0.1.0-alpha
correlator.hpp
Go to the documentation of this file.
1 
8 #ifndef RTCTK_TELSUB_CORRELATOR_HPP
9 #define RTCTK_TELSUB_CORRELATOR_HPP
10 
11 #include <memory>
12 #include <deque>
15 
16 namespace rtctk::telSub {
17 
18 class Correlator final : public CorrelatorIf {
19 public:
20  explicit Correlator(std::unique_ptr<DdsSubscriberIf> dds_subscriber);
21  virtual ~Correlator();
22 
23  virtual std::error_code
24  Poll(CorrelatedDataSamplesRef& samples, std::chrono::milliseconds timeout) noexcept override;
25 private:
26  bool FrontRowHasSameSampleIds(unsigned long& sample_id);
27  std::error_code DropMissalignedSamples();
28 
29  std::unique_ptr<DdsSubscriberIf> m_dds_subscriber;
30  std::vector<std::deque<const rtctk::AgnosticTopic*>> m_input_streams;
31  std::vector<const rtctk::AgnosticTopic*> m_forwarded_samples;
32 };
33 
34 } // namespace rtctk::telSub
35 
36 #endif // #define RTCTK_TELSUB_CORRELATOR_HPP
rtctk::telSub::CorrelatorIf
Definition: correlatorIf.hpp:24
rtctk::telSub::Correlator
Definition: correlator.hpp:18
rtctk::telSub::Correlator::Correlator
Correlator(std::unique_ptr< DdsSubscriberIf > dds_subscriber)
Definition: correlator.cpp:19
rtctk::telSub::Correlator::Poll
virtual std::error_code Poll(CorrelatedDataSamplesRef &samples, std::chrono::milliseconds timeout) noexcept override
Definition: correlator.cpp:42
rtctk::telSub
Definition: businessLogic.cpp:35
rtctk::telSub::Correlator::~Correlator
virtual ~Correlator()
Definition: correlator.cpp:27
correlatorIf.hpp
Declares CorrelatorIf.
ddsSubscriberIf.hpp
Declares DdsSubscriberIf.
rtctk::telSub::CorrelatedDataSamplesRef
Definition: dataSample.hpp:38