OpenEV
Extending OpenCV to event-based vision
 
Loading...
Searching...
No Matches
plain-text-reader.hpp
Go to the documentation of this file.
1
6#ifndef OPENEV_READERS_PLAIN_TEXT_READER_HPP
7#define OPENEV_READERS_PLAIN_TEXT_READER_HPP
8
10#include "openev/readers/abstract-reader.hpp"
11#include <cstddef>
12#include <fstream>
13#include <functional>
14#include <regex>
15#include <stdint.h>
16#include <string>
17
18namespace ev {
19
20enum PlainTextReaderColumns : uint8_t {
21 TXYP,
22 XYTP,
23 PTXY,
24 PXYT
25};
26
30class PlainTextReader : public AbstractReader_ {
31public:
32 explicit PlainTextReader(const std::string &filename, const PlainTextReaderColumns columns = PlainTextReaderColumns::TXYP, const std::string &separator = " ", const std::size_t buffer_size = 0, const bool use_threading = false);
33 ~PlainTextReader();
34 [[nodiscard]] std::size_t count() override;
35
37 PlainTextReader(const PlainTextReader &) = delete;
38 PlainTextReader(PlainTextReader &&) noexcept = delete;
39 PlainTextReader &operator=(const PlainTextReader &) = delete;
40 PlainTextReader &operator=(PlainTextReader &&) noexcept = delete;
42
43private:
44 std::fstream file_;
45 std::regex separator_;
46 std::function<void(std::stringstream &, ev::Event &)> parser_;
47 bool replace_;
48
49 bool read_(Event &e) override;
50 void reset_() override;
51};
52
53} // namespace ev
54
55#endif // OPENEV_READERS_PLAIN_TEXT_READER_HPP
AbstractReader_(const std::size_t buffer_size, const bool use_threading)
Constructor for AbstractReader_.
Definition abstract-reader.cpp:9
std::size_t count() override
Count the total number of events available.
Definition plain-text-reader.cpp:37
Basic event-based vision structures based on OpenCV components.
Eventi Event
Definition types.hpp:209