mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-05-01 19:02:21 +02:00
Add n_frames parameter to Writer
This commit is contained in:
@@ -12,25 +12,27 @@ extern "C"
|
||||
|
||||
using namespace std;
|
||||
|
||||
std::unique_ptr<H5Writer> get_h5_writer(const string& filename, hsize_t frames_per_file,
|
||||
std::unique_ptr<H5Writer> get_h5_writer(const string& filename, hsize_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<H5Writer>(new DummyH5Writer());
|
||||
} else {
|
||||
return unique_ptr<H5Writer>(new H5Writer(filename, frames_per_file, initial_dataset_size, dataset_increase_step));
|
||||
return unique_ptr<H5Writer>(new H5Writer(filename, total_frames, frames_per_file, initial_dataset_size, dataset_increase_step));
|
||||
}
|
||||
}
|
||||
|
||||
H5Writer::H5Writer(const std::string& filename, hsize_t frames_per_file, hsize_t initial_dataset_size, hsize_t dataset_increase_step) :
|
||||
filename(filename), frames_per_file(frames_per_file),
|
||||
initial_dataset_size(initial_dataset_size), dataset_increase_step(dataset_increase_step)
|
||||
H5Writer::H5Writer(const std::string& filename, hsize_t total_frames, hsize_t frames_per_file, hsize_t initial_dataset_size,
|
||||
hsize_t dataset_increase_step) :
|
||||
filename(filename), total_frames(total_frames), frames_per_file(frames_per_file),
|
||||
initial_dataset_size(initial_dataset_size), dataset_increase_step(dataset_increase_step)
|
||||
{
|
||||
#ifdef DEBUG_OUTPUT
|
||||
using namespace date;
|
||||
cout << "[" << std::chrono::system_clock::now() << "]";
|
||||
cout << "[H5Writer::H5Writer] Creating chunked 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;
|
||||
|
||||
@@ -12,6 +12,7 @@ class H5Writer
|
||||
{
|
||||
// Initialized in constructor.
|
||||
const std::string filename;
|
||||
hsize_t total_frames;
|
||||
hsize_t frames_per_file;
|
||||
hsize_t initial_dataset_size;
|
||||
hsize_t dataset_increase_step = 0;
|
||||
@@ -22,7 +23,7 @@ class H5Writer
|
||||
|
||||
H5::H5File file;
|
||||
std::unordered_map<std::string, H5::DataSet> datasets;
|
||||
std::unordered_map<std::string, hsize_t> datasets_current_size;
|
||||
std::unordered_map<std::string, hsize_t> datasets_current_size;
|
||||
|
||||
hsize_t prepare_storage_for_data(const std::string& dataset_name, const size_t data_index, const std::vector<size_t>& data_shape,
|
||||
const std::string& data_type, const std::string& endianness);
|
||||
@@ -33,7 +34,7 @@ class H5Writer
|
||||
const std::string& data_type, const std::string& endianness);
|
||||
|
||||
public:
|
||||
H5Writer(const std::string& filename, hsize_t frames_per_file=0, hsize_t initial_dataset_size=1000, hsize_t dataset_increase_step=1000);
|
||||
H5Writer(const std::string& filename, hsize_t total_frames, hsize_t frames_per_file=0, hsize_t initial_dataset_size=1000, hsize_t dataset_increase_step=1000);
|
||||
virtual ~H5Writer();
|
||||
virtual bool is_file_open() const;
|
||||
virtual void close_file();
|
||||
@@ -53,7 +54,7 @@ class DummyH5Writer : public H5Writer
|
||||
H5::H5File& get_h5_file();
|
||||
};
|
||||
|
||||
std::unique_ptr<H5Writer> get_h5_writer(const std::string& filename, hsize_t frames_per_file=0,
|
||||
std::unique_ptr<H5Writer> get_h5_writer(const std::string& filename, hsize_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