12#ifndef RTCTK_TELSUB_CORRELATOR_HPP
13#define RTCTK_TELSUB_CORRELATOR_HPP
33 using Alloc = std::pmr::polymorphic_allocator<std::byte>;
39 std::unique_ptr<DdsWaitSetIf> dds_subscriber,
41 const Alloc& alloc = {});
50 std::optional<CorrelationError>
Poll(std::chrono::milliseconds timeout,
54 return m_last_correlated_sample;
56 void Reset() noexcept override;
61 using ClockType =
std::chrono::steady_clock;
62 using TimePoint = ClockType::time_point;
74 CorrelateFirst(TimePoint until, const
DataSamplesView*& samples) noexcept;
87 CorrelateSubsequent(TimePoint until, const
DataSamplesView*& samples) noexcept;
94 log4cplus::Logger& m_logger;
99 std::optional<
std::uint32_t> m_last_correlated_sample;
100 TimePoint m_poll_until_time;
102 std::pmr::map<
std::
string,
size_t> m_indices;
Component metrics interface.
Definition componentMetricsIf.hpp:164
Container of DDS samples and associated sample information.
Definition agnosticDataSamples.hpp:77
Interface for correlator implemementations that takes new data samples from DDS and performs correlat...
Definition correlatorIf.hpp:58
std::optional< std::uint32_t > GetLastSampleId() const noexcept override
Definition correlator.hpp:53
std::optional< CorrelationError > Poll(std::chrono::milliseconds timeout, const DataSamplesView *&samples) noexcept override
The strategy is to correlate on existing data, if possible before taking more samples.
Definition correlator.cpp:159
void Reset() noexcept override
Resets internal state.
Definition correlator.cpp:149
std::pmr::polymorphic_allocator< std::byte > Alloc
Definition correlator.hpp:33
Correlator(const CorrelatorParams ¶ms, std::unique_ptr< DdsWaitSetIf > dds_subscriber, componentFramework::ComponentMetricsIf &metrics, const Alloc &alloc={})
Definition correlator.cpp:134
void CheckDdsConnections() override
Definition correlator.cpp:281
Base class abstracting DDS communication code.
Definition ddsWaitSetIf.hpp:91
Header file for ComponentMetricsIf.
Definition commandReplier.cpp:22
std::variant< CorrelationFailedError, DdsWaitSetError > CorrelationError
Definition correlatorIf.hpp:35
Definition ddsSub.hpp:156
Placeholder for correlator parameters.
Definition correlatorIf.hpp:43
A set of correlated agnostic non-owning data samples references.
Definition dataSampleView.hpp:52