mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-05-05 12:34:13 +02:00
Revert changes to implement a separate class
This commit is contained in:
@@ -12,7 +12,7 @@ extern "C"
|
||||
|
||||
using namespace std;
|
||||
|
||||
std::unique_ptr<H5Writer> get_h5_writer(const string& filename, hsize_t total_frames, hsize_t frames_per_file,
|
||||
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") {
|
||||
@@ -24,7 +24,7 @@ std::unique_ptr<H5Writer> get_h5_writer(const string& filename, hsize_t total_fr
|
||||
|
||||
H5Writer::H5Writer(const std::string& filename, 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),
|
||||
filename(filename), frames_per_file(frames_per_file),
|
||||
initial_dataset_size(initial_dataset_size), dataset_increase_step(dataset_increase_step)
|
||||
{
|
||||
#ifdef DEBUG_OUTPUT
|
||||
|
||||
+20
-19
@@ -10,30 +10,31 @@
|
||||
|
||||
class H5Writer
|
||||
{
|
||||
// Initialized in constructor.
|
||||
const std::string filename;
|
||||
hsize_t frames_per_file;
|
||||
hsize_t initial_dataset_size;
|
||||
hsize_t dataset_increase_step = 0;
|
||||
protected:
|
||||
// Initialized in constructor.
|
||||
const std::string filename;
|
||||
hsize_t frames_per_file;
|
||||
hsize_t initial_dataset_size;
|
||||
hsize_t dataset_increase_step = 0;
|
||||
|
||||
// State variables.
|
||||
hsize_t max_data_index = 0;
|
||||
hsize_t current_frame_chunk = 0;
|
||||
// State variables.
|
||||
hsize_t max_data_index = 0;
|
||||
hsize_t current_frame_chunk = 0;
|
||||
|
||||
H5::H5File file;
|
||||
std::unordered_map<std::string, H5::DataSet> datasets;
|
||||
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);
|
||||
H5::H5File file;
|
||||
std::unordered_map<std::string, H5::DataSet> datasets;
|
||||
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);
|
||||
|
||||
void create_file(const hsize_t frame_chunk=0);
|
||||
void create_file(const hsize_t frame_chunk=0);
|
||||
|
||||
void create_dataset(const std::string& dataset_name, const std::vector<size_t>& data_shape,
|
||||
const std::string& data_type, const std::string& endianness);
|
||||
void create_dataset(const std::string& dataset_name, const std::vector<size_t>& data_shape,
|
||||
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 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 total_frames, hsize_t frames_per_file=0,
|
||||
std::unique_ptr<H5Writer> get_h5_writer(const std::string& filename, hsize_t frames_per_file=0,
|
||||
hsize_t initial_dataset_size=1000, hsize_t dataset_increase_step=1000);
|
||||
|
||||
#endif
|
||||
@@ -149,8 +149,7 @@ void ProcessManager::receive_zmq()
|
||||
|
||||
void ProcessManager::write_h5()
|
||||
{
|
||||
auto writer = get_h5_writer(writer_manager.get_output_file(), writer_manager.get_n_frames(), frames_per_file,
|
||||
config::initial_dataset_size, config::dataset_increase_step);
|
||||
auto writer = get_h5_writer(writer_manager.get_output_file(), frames_per_file, config::initial_dataset_size, config::dataset_increase_step);
|
||||
|
||||
auto raw_frames_dataset_name = config::raw_image_dataset_name;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user