// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute // SPDX-License-Identifier: GPL-3.0-only #pragma once #include #include #include #include struct JFJochReceiverStatus { std::optional indexing_rate; std::optional bkg_estimate; std::optional compressed_ratio; std::optional efficiency; std::optional error_pixels; std::optional saturated_pixels; std::optional roi_beam_sum; std::optional roi_beam_npixel; uint64_t compressed_size; std::optional max_receive_delay; uint64_t max_image_number_sent; uint64_t images_collected; uint64_t images_sent; uint64_t images_skipped; std::optional images_written; bool cancelled; }; class JFJochReceiverCurrentStatus { mutable std::mutex m; std::optional status; std::atomic progress = NAN; public: std::optional GetStatus() const; void Clear(); void SetStatus(const JFJochReceiverStatus &status); void SetEfficiency(const std::optional &e); void SetProgress(std::optional input); std::optional GetProgress() const; };