Add n_frames parameter to Writer

This commit is contained in:
2018-11-22 15:28:14 +01:00
parent 481fc9878a
commit 989cd0d6de
2 changed files with 11 additions and 8 deletions
+7 -5
View File
@@ -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;
+4 -3
View File
@@ -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