Files
Jungfraujoch/reader/JFJochHttpReader.h

41 lines
1.3 KiB
C++

// SPDX-FileCopyrightText: 2025 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#ifndef JFJOCH_JFJOCHHTTPREADER_H
#define JFJOCH_JFJOCHHTTPREADER_H
#include "JFJochReader.h"
#include "../common/BrokerStatus.h"
#include "../common/ImageBuffer.h"
class JFJochHttpReader : public JFJochReader {
mutable std::mutex http_mutex;
std::string addr;
std::optional<int64_t> last_image_buffer_counter;
bool last_op_http_sync = false;
ImageBufferStatus GetImageBufferStatus() const;
bool LoadImage_i(std::shared_ptr<JFJochReaderDataset> &dataset,
DataMessage& message,
std::vector<uint8_t> &buffer,
int64_t image_number,
bool update_dataset) override;
std::shared_ptr<JFJochReaderDataset> UpdateDataset_i();
std::vector<float> GetPlot_i(const std::string &plot_type, float fill_value = 0.0) const;
public:
~JFJochHttpReader() override = default;
void ReadURL(const std::string& url);
uint64_t GetNumberOfImages() const override;
void Close() override;
void UploadUserMask(const std::vector<uint32_t>& mask);
BrokerStatus GetBrokerStatus() const;
};
#endif //JFJOCH_JFJOCHHTTPREADER_H