11#ifndef RTCTK_COMPONENTFRAMEWORK_DATARECORDER_HPP
12#define RTCTK_COMPONENTFRAMEWORK_DATARECORDER_HPP
34 constexpr ColumnMetaData(
const std::string_view& new_name,
const std::string_view& new_unit)
76 virtual void Write(
const std::tuple<T...>& data) = 0;
82 virtual void Write(
const gsl::span<
const std::tuple<T...>> data) {
83 for (
const auto& element : data) {
92 virtual void Open(
const std::filesystem::path& file) = 0;
virtual void Close()=0
Close the currently open file.
DisabledFields m_disabled_fields
Array of fields that should not be recorded.
Definition dataRecorder.hpp:108
const ColumnDescription m_column_description
Definition dataRecorder.hpp:109
virtual std::string DefaultFileExtension()=0
Default filename extension for the recorder.
std::tuple< T... > TupleType
Definition dataRecorder.hpp:42
const std::array< ColumnMetaData, sizeof...(T)> ColumnDescription
Definition dataRecorder.hpp:48
std::array< bool, sizeof...(T)> DisabledFields
Definition dataRecorder.hpp:47
virtual ~DataRecorder()=default
virtual void Write(const gsl::span< const std::tuple< T... > > data)
Write multiple rows of data.
Definition dataRecorder.hpp:82
virtual void Write(const std::tuple< T... > &data)=0
Write a single row of data.
void SetDisabledFields(const DisabledFields &disable)
Disable certain fields so that they are not recorded.
Definition dataRecorder.hpp:68
virtual void Open(const std::filesystem::path &file)=0
Open a file.
DataRecorder(const ColumnDescription &columns, const DisabledFields &disable={})
Create a new recorder.
Definition dataRecorder.hpp:56
Definition commandReplier.cpp:21