From 989cd0d6de322120cf2ef70a90ab86cf11634226 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Thu, 22 Nov 2018 15:28:14 +0100 Subject: [PATCH] Add n_frames parameter to Writer --- lib/src/H5Writer.cpp | 12 +++++++----- lib/src/H5Writer.hpp | 7 ++++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/lib/src/H5Writer.cpp b/lib/src/H5Writer.cpp index 768704c..63f6726 100644 --- a/lib/src/H5Writer.cpp +++ b/lib/src/H5Writer.cpp @@ -12,25 +12,27 @@ extern "C" using namespace std; -std::unique_ptr get_h5_writer(const string& filename, hsize_t frames_per_file, +std::unique_ptr 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(new DummyH5Writer()); } else { - return unique_ptr(new H5Writer(filename, frames_per_file, initial_dataset_size, dataset_increase_step)); + return unique_ptr(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; diff --git a/lib/src/H5Writer.hpp b/lib/src/H5Writer.hpp index b75ed28..563c79c 100644 --- a/lib/src/H5Writer.hpp +++ b/lib/src/H5Writer.hpp @@ -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 datasets; - std::unordered_map datasets_current_size; + std::unordered_map datasets_current_size; hsize_t prepare_storage_for_data(const std::string& dataset_name, const size_t data_index, const std::vector& 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 get_h5_writer(const std::string& filename, hsize_t frames_per_file=0, +std::unique_ptr 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 \ No newline at end of file