239a441ee6
Build Packages / Unit tests (push) Successful in 1h20m34s
Build Packages / build:rpm (rocky8) (push) Successful in 13m32s
Build Packages / Generate python client (push) Successful in 24s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m6s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 11m32s
Build Packages / XDS test (durin plugin) (push) Successful in 10m49s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 14m8s
Build Packages / DIALS test (push) Successful in 14m57s
Build Packages / Build documentation (push) Successful in 47s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 13m30s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m23s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m40s
Build Packages / Create release (push) Has been skipped
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m14s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 11m55s
Build Packages / build:rpm (rocky9) (push) Successful in 14m23s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m48s
Build Packages / XDS test (neggia plugin) (push) Successful in 7m10s
This is an UNSTABLE release. The release has significant modifications and bug fixes, if things go wrong, it is better to revert to 1.0.0-rc.132. * jfjoch_broker: For DECTRIS detectors, ZeroMQ link is persistent, to save time for establishing new connection * jfjoch_broker: Minor bug fixes for rare conditions Reviewed-on: #50
52 lines
1.7 KiB
C++
52 lines
1.7 KiB
C++
// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
|
|
// SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
#ifndef JFJOCHHDF5IMAGEREADER_H
|
|
#define JFJOCHHDF5IMAGEREADER_H
|
|
|
|
#include "JFJochReader.h"
|
|
#include "../writer/HDF5Objects.h"
|
|
|
|
class JFJochHDF5Reader : public JFJochReader {
|
|
FileWriterFormat format = FileWriterFormat::NoFile;
|
|
|
|
std::shared_ptr<HDF5ReadOnlyFile> master_file;
|
|
|
|
std::vector<std::string> legacy_format_files;
|
|
|
|
size_t images_per_file = 1;
|
|
size_t number_of_images = 0;
|
|
|
|
bool LoadImage_i(std::shared_ptr<JFJochReaderDataset> &dataset,
|
|
DataMessage& message,
|
|
std::vector<uint8_t> &buffer,
|
|
int64_t image_number,
|
|
bool update_dataset) override;
|
|
|
|
CompressedImage LoadImageDataset(std::vector<uint8_t> &tmp, HDF5Object &file, hsize_t number);
|
|
|
|
template <class T>
|
|
void ReadVector(std::vector<T> &v,
|
|
HDF5Object &file,
|
|
const std::string &dataset_name,
|
|
size_t image0,
|
|
size_t nimages);
|
|
|
|
std::pair<std::shared_ptr<HDF5ReadOnlyFile>, uint32_t> GetImageLocation(int64_t image_number);
|
|
std::optional<GoniometerAxis> ReadAxis(HDF5Object *file, const std::string &name);
|
|
public:
|
|
~JFJochHDF5Reader() override = default;
|
|
|
|
void ReadFile(const std::string& filename);
|
|
|
|
uint64_t GetNumberOfImages() const override;
|
|
void Close() override;
|
|
|
|
CompressedImage ReadCalibration(std::vector<uint8_t> &tmp, const std::string &name) const;
|
|
|
|
std::shared_ptr<JFJochReaderRawImage> GetRawImage(int64_t image_number) override;
|
|
};
|
|
|
|
|
|
#endif //JFJOCHHDF5IMAGEREADER_H
|