From 36dd07ae67fc9ae44e94e4938f59a8a25c027932 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Mon, 8 Jan 2018 16:45:08 +0100 Subject: [PATCH] Added destructor to H5 writer --- H5ChunkedWriter.cpp | 17 +++++++++++++++++ H5ChunkedWriter.hpp | 1 + 2 files changed, 18 insertions(+) diff --git a/H5ChunkedWriter.cpp b/H5ChunkedWriter.cpp index 03744b3..09c9c24 100644 --- a/H5ChunkedWriter.cpp +++ b/H5ChunkedWriter.cpp @@ -53,8 +53,25 @@ HDF5ChunkedWriter::HDF5ChunkedWriter(const std::string filename, const std::stri this->initial_dataset_size = initial_dataset_size; } +HDF5ChunkedWriter::~HDF5ChunkedWriter() +{ + close_file(); +} + void HDF5ChunkedWriter::close_file() { + if (file.getId() == -1) { + #ifdef DEBUG + std::cout << "Trying to close an already closed file." << std::endl; + #endif + + return; + } + + #ifdef DEBUG + std::cout << "Closing file." << std::endl; + #endif + compact_dataset(dataset, max_frame_index); hsize_t min_frame_in_dataset = 0; diff --git a/H5ChunkedWriter.hpp b/H5ChunkedWriter.hpp index 5e7b48a..ecbf260 100644 --- a/H5ChunkedWriter.hpp +++ b/H5ChunkedWriter.hpp @@ -42,6 +42,7 @@ class HDF5ChunkedWriter public: HDF5ChunkedWriter(const std::string filename, const std::string dataset_name, hsize_t frames_per_file=0, hsize_t initial_dataset_size=config::initial_dataset_size); + ~HDF5ChunkedWriter(); void close_file(); void write_data(size_t frame_index, size_t* frame_shape, size_t data_bytes_size, char* data); };