MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ get_frame_typed()

auto MayaFlux::Kakshya::PlotContainer::get_frame_typed ( uint64_t  frame_index) const -> std::span<const double>
private

Definition at line 488 of file PlotContainer.cpp.

489{
490 if (frame_index >= m_data.size())
491 return {};
492
493 std::span<const double> result;
494 seqlock_read_void(m_series_locks[frame_index], 8, [&] {
495 const auto* vec = std::get_if<std::vector<double>>(&m_data[frame_index]);
496 if (!vec || vec->empty())
497 return;
498 result = { vec->data(), vec->size() };
499 });
500 return result;
501}
std::vector< DataVariant > m_data
Memory::SeqlockArray m_series_locks
size_t size() const noexcept
Number of slots.
Definition SeqLock.hpp:366
bool seqlock_read_void(const Seqlock &lock, uint32_t max_attempts, Fn &&fn)
Invoke a void read functor under a Seqlock with a bounded retry count.
Definition SeqLock.hpp:268