From 32d42564afd19272744652f9dd6a3ceb8e07a914 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Mon, 3 Dec 2018 15:54:01 +0100 Subject: [PATCH] Transfer writing h5 format to a function --- lib/src/ProcessManager.cpp | 35 ++++++++++++++++++++++------------- lib/src/ProcessManager.hpp | 1 + 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/lib/src/ProcessManager.cpp b/lib/src/ProcessManager.cpp index 97ed2ff..819c8e4 100644 --- a/lib/src/ProcessManager.cpp +++ b/lib/src/ProcessManager.cpp @@ -272,19 +272,8 @@ void ProcessManager::write_h5() boost::this_thread::sleep_for(boost::chrono::milliseconds(config::parameters_read_retry_interval)); } - // Need to check again if we have all parameters to write down the format. - if (writer_manager.are_all_parameters_set()) { - const auto parameters = writer_manager.get_parameters(); - - // Even if we can't write the format, lets try to preserve the data. - try { - H5FormatUtils::write_format(writer->get_h5_file(), format, parameters); - } catch (const runtime_error& ex) { - using namespace date; - std::cout << "[" << std::chrono::system_clock::now() << "]"; - std::cout << "[ProcessManager::write] Error while trying to write file format: "<< ex.what() << endl; - } - } + write_h5_format(writer->get_h5_file()); + } #ifdef DEBUG_OUTPUT @@ -305,3 +294,23 @@ void ProcessManager::write_h5() exit(0); } +void ProcessManager::write_h5_format(H5::H5File& file) { + + if (!writer_manager.are_all_parameters_set()) { + using namespace date; + std::cout << "[" << std::chrono::system_clock::now() << "]"; + std::cout << "[ProcessManager::write_h5_format] Cannot write file format - REST parameters not set."<< endl; + + return; + } + + const auto parameters = writer_manager.get_parameters(); + + try { + H5FormatUtils::write_format(file, format, parameters); + } catch (const runtime_error& ex) { + using namespace date; + std::cout << "[" << std::chrono::system_clock::now() << "]"; + std::cout << "[ProcessManager::write_h5_format] Error while trying to write file format: "<< ex.what() << endl; + } +} diff --git a/lib/src/ProcessManager.hpp b/lib/src/ProcessManager.hpp index 088f8e1..8abc3bb 100644 --- a/lib/src/ProcessManager.hpp +++ b/lib/src/ProcessManager.hpp @@ -32,6 +32,7 @@ class ProcessManager void write_h5(); + void write_h5_format(H5::H5File& file); }; #endif \ No newline at end of file