Add a dummy writter for writing to /dev/null

This commit is contained in:
2018-07-18 11:56:31 +02:00
parent c28a7467dd
commit df86695047
6 changed files with 71 additions and 14 deletions
+32 -1
View File
@@ -12,6 +12,16 @@ extern "C"
using namespace std;
std::unique_ptr<H5Writer> get_h5_writer(const string& filename, 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));
}
}
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)
@@ -272,4 +282,25 @@ hsize_t H5Writer::prepare_storage_for_data(const string& dataset_name, const siz
H5::H5File& H5Writer::get_h5_file()
{
return file;
}
}
DummyH5Writer::DummyH5Writer() : H5Writer("/dev/null", 0, 0, 0){}
void DummyH5Writer::close_file(){}
void DummyH5Writer::write_data(const string& dataset_name, const size_t data_index, const char* data, const std::vector<size_t>& data_shape,
const size_t data_bytes_size, const string& data_type, const string& endianness){};
bool DummyH5Writer::is_file_open() const
{
return false;
}
H5::H5File& DummyH5Writer::get_h5_file(){
stringstream error_message;
using namespace date;
error_message << "[" << std::chrono::system_clock::now() << "]";
error_message << "Cannot get the H5 file with the dummy writer." << endl;
throw runtime_error(error_message.str());
};