// Copyright (2019-2023) Paul Scherrer Institute #ifndef JUNGFRAUJOCH_STREAMWRITER_H #define JUNGFRAUJOCH_STREAMWRITER_H #include "ZMQImagePuller.h" #include "HDF5DataFile.h" struct StreamWriterStatistics { ZMQImagePullerStatistics image_puller_stats; std::vector data_file_stats; }; class StreamWriter { ZMQImagePuller image_puller; Logger &logger; StartMessage start_message; void StartDataCollection(); void CollectImages(std::vector &v); void EndDataCollection(); public: StreamWriter(ZMQContext& context, Logger &logger, const std::string& zmq_addr); StreamWriterStatistics Run(); void Abort(); }; #endif //JUNGFRAUJOCH_STREAMWRITER_H