12#ifndef RTCTK_COMPONENTFRAMEWORK_FITSDATARECORDER_HPP
13#define RTCTK_COMPONENTFRAMEWORK_FITSDATARECORDER_HPP
40 constexpr FitsColumn(std::string_view new_name, std::string_view new_unit)
83 const std::array<
bool,
sizeof...(T)>& disable = {},
84 const std::string& extension_name =
"recording");
86 void Open(
const std::filesystem::path& file)
override;
87 void Write(
const std::tuple<T...>& data)
override;
103 return std::string{
".fits"};
107 static void CloseFits(fitsfile* pointer);
111 std::unique_ptr<fitsfile,
decltype(&CloseFits)> m_fits_handle;
115 std::string m_extension_name;
119 long int m_row_index{0};
123 std::array<std::optional<size_t>,
sizeof...(T)> m_column_length;
const std::array< ColumnMetaData, sizeof...(T)> ColumnDescription
Definition dataRecorder.hpp:49
DataRecorder(const ColumnDescription &columns, const DisabledFields &disable={})
Definition dataRecorder.hpp:57
RtctkException() noexcept
Definition exceptions.cpp:113
FitsDataRecorderFitsError(const std::string &error)
Definition fitsDataRecorder.hpp:31
~FitsRecorder() override=default
FitsRecorder(const ColumnDescription &columns, const std::array< bool, sizeof...(T)> &disable={}, const std::string &extension_name="recording")
create a new recorder
Definition fitsDataRecorder.ipp:164
void Open(const std::filesystem::path &file) override
Open a file.
Definition fitsDataRecorder.ipp:178
std::string DefaultFileExtension() override
Default filename extension for the recorder.
Definition fitsDataRecorder.hpp:102
void SetColumnLength(size_t column, size_t length)
Set the exact length of a column.
Definition fitsDataRecorder.ipp:233
void Write(const std::tuple< T... > &data) override
Write a single row of data.
Definition fitsDataRecorder.ipp:277
void SetColumnLength(const std::tuple< T... > &data)
Definition fitsDataRecorder.ipp:248
void Close() override
Close the currently open file.
Definition fitsDataRecorder.ipp:362
RtctkException() noexcept
Definition exceptions.cpp:113
Provides an abstract DataRecorder class as the output stage for a recording unit.
Provides macros and utilities for exception handling.
FitsRecorder allows to write ColumnData to into fits files in a specified directory.
Definition commandReplier.cpp:22
constexpr FitsColumn(std::string_view new_name, std::string_view new_unit)
Definition fitsDataRecorder.hpp:40
std::string_view name
Definition fitsDataRecorder.hpp:37
std::string_view unit
Definition fitsDataRecorder.hpp:38