11 #include <SpaceVecAlg/SpaceVecAlg>
15 #include <unordered_map>
29 template<
int N,
int _Options,
int _MaxRows,
int _MaxCols>
32 using type = std::conditional_t<N == 2 || N == 3 || N == 6,
33 Eigen::Matrix<double, N, 1, _Options, _MaxRows, _MaxCols>,
49 FlatLog(
const std::string & fpath);
58 void load(
const std::string & fpath);
61 void append(
const std::string & fpath);
67 std::set<std::string> entries()
const;
70 bool has(
const std::string &
entry)
const;
73 std::set<LogType> types(
const std::string &
entry)
const;
90 std::vector<const get_raw_return_t<T> *> getRaw(
const std::string &
entry)
const;
104 std::vector<get_raw_return_t<T>> get(
const std::string &
entry,
const T & def)
const;
116 std::vector<get_raw_return_t<T>> get(
const std::string &
entry)
const;
146 inline const std::vector<std::vector<Logger::GUIEvent>> &
guiEvents() const noexcept {
return gui_events_; }
152 inline const std::optional<Logger::Meta> &
meta() const noexcept {
return meta_; }
173 std::vector<entry> data_;
174 std::vector<std::vector<Logger::GUIEvent>> gui_events_;
175 std::optional<Logger::Meta> meta_;
178 const std::vector<record> & at(
const std::string &
entry)
const;
181 size_t index(
const std::string &
entry,
size_t size);
184 void appendFlat(
const std::string & fpath);
187 void appendBin(
const std::string & fpath);
192 #include "FlatLog.hpp"