mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-05-03 17:24:12 +02:00
30 lines
971 B
C++
30 lines
971 B
C++
#ifndef BUFFEREDWRITER_H
|
|
#define BUFFEREDWRITER_H
|
|
|
|
#include "H5Writer.hpp"
|
|
#include "MetadataBuffer.hpp"
|
|
|
|
class BufferedWriter : public H5Writer
|
|
{
|
|
size_t total_frames;
|
|
std::unique_ptr<MetadataBuffer> metadata_buffer;
|
|
|
|
void write_metadata_to_file();
|
|
|
|
public:
|
|
BufferedWriter(const std::string& filename, size_t total_frames, std::unique_ptr<MetadataBuffer>&& metadata_buffer,
|
|
hsize_t frames_per_file=0, hsize_t initial_dataset_size=1000, hsize_t dataset_increase_step=1000);
|
|
void write_metadata(std::string name, uint64_t frame_index, const char* data);
|
|
virtual void close_file() override;
|
|
};
|
|
|
|
class DummyBufferedWriter : public BufferedWriter
|
|
{
|
|
public:
|
|
DummyBufferedWriter();
|
|
};
|
|
|
|
std::unique_ptr<BufferedWriter> get_buffered_writer(const std::string& filename, size_t total_frames,
|
|
std::unique_ptr<MetadataBuffer> metadata_buffer, hsize_t frames_per_file=0, hsize_t dataset_increase_step=1000);
|
|
|
|
#endif |