mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-04-23 21:10:44 +02:00
Add BufferedWriter
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
#include "BufferedWriter.hpp"
|
||||
|
||||
using namespace std;
|
||||
|
||||
BufferedWriter::BufferedWriter(const std::string& filename, size_t total_frames, hsize_t frames_per_file,
|
||||
hsize_t initial_dataset_size, hsize_t dataset_increase_step) :
|
||||
H5Writer(filename, frames_per_file, initial_dataset_size, dataset_increase_step),
|
||||
total_frames(total_frames)
|
||||
{
|
||||
#ifdef DEBUG_OUTPUT
|
||||
using namespace date;
|
||||
cout << "[" << std::chrono::system_clock::now() << "]";
|
||||
cout << "[BufferedWriter::BufferedWriter] Creating buffered writer";
|
||||
cout << " with filename " << filename;
|
||||
cout << " and total_frames " << total_frames;
|
||||
cout << " and frames_per_file " << frames_per_file;
|
||||
cout << " and initial_dataset_size " << initial_dataset_size;
|
||||
cout << endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
DummyBufferedWriter::DummyBufferedWriter() : BufferedWriter("/dev/null", 0, 0, 0, 0){}
|
||||
|
||||
std::unique_ptr<BufferedWriter> get_buffered_writer(const string& filename, size_t total_frames,
|
||||
hsize_t frames_per_file, hsize_t initial_dataset_size, hsize_t dataset_increase_step)
|
||||
{
|
||||
if (filename == "/dev/null") {
|
||||
return unique_ptr<BufferedWriter>(new DummyBufferedWriter());
|
||||
} else {
|
||||
return unique_ptr<BufferedWriter>(new BufferedWriter(filename, total_frames,
|
||||
frames_per_file, initial_dataset_size, dataset_increase_step));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef BUFFEREDWRITER_H
|
||||
#define BUFFEREDWRITER_H
|
||||
|
||||
#include "H5Writer.hpp"
|
||||
|
||||
class BufferedWriter : public H5Writer
|
||||
{
|
||||
size_t total_frames;
|
||||
|
||||
public:
|
||||
BufferedWriter(const std::string& filename, size_t total_frames, hsize_t frames_per_file=0,
|
||||
hsize_t initial_dataset_size=1000, hsize_t dataset_increase_step=1000);
|
||||
};
|
||||
|
||||
class DummyBufferedWriter : public BufferedWriter
|
||||
{
|
||||
public:
|
||||
DummyBufferedWriter();
|
||||
};
|
||||
|
||||
std::unique_ptr<BufferedWriter> get_buffered_writer(const std::string& filename, size_t total_frames,
|
||||
hsize_t frames_per_file=0, hsize_t initial_dataset_size=1000, hsize_t dataset_increase_step=1000);
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user