6#ifndef OPENEV_READERS_ABSTRACT_READER_HPP
7#define OPENEV_READERS_ABSTRACT_READER_HPP
10#include "openev/containers/vector.hpp"
25 static constexpr std::size_t NO_BUFFER = 0;
26 static constexpr std::size_t INF_BUFFER = std::numeric_limits<std::size_t>::max();
40 AbstractReader_(
const std::size_t buffer_size,
const bool use_threading);
55 bool read(Vector &vector,
const int n);
64 bool read(
Queue &queue,
const int n,
const bool keep_size =
false);
72 bool read_t(Vector &vector,
const double t);
81 bool read_t(
Queue &queue,
const double t,
const bool keep_size =
false);
95 bool skip_t(
const double t);
107 [[nodiscard]]
virtual std::size_t
count() = 0;
110 const std::size_t bufferSize_;
113 std::mutex bufferMutex_;
114 std::atomic<bool> threadRunning_{};
116 virtual bool read_(
Event &e) = 0;
117 virtual void reset_() = 0;
120 void threadFunction();
bool skip_t(const double t)
Skip events for the specified duration.
Definition abstract-reader.cpp:115
void reset()
Start reading from the first event.
Definition abstract-reader.cpp:129
AbstractReader_(const std::size_t buffer_size, const bool use_threading)
Constructor for AbstractReader_.
Definition abstract-reader.cpp:9
bool read(Event &e)
Read the next event.
Definition abstract-reader.cpp:23
virtual std::size_t count()=0
Count the total number of events available.
bool read_t(Vector &vector, const double t)
Read the next events until the specified duration is reached.
Definition abstract-reader.cpp:64
bool skip(int n)
Skip the next n events.
Definition abstract-reader.cpp:107
Queue container for basic event structures.
Queuei Queue
Definition queue.hpp:64
Basic event-based vision structures based on OpenCV components.
Eventi Event
Definition types.hpp:209