// Copyright (2019-2023) Paul Scherrer Institute #ifndef JUNGFRAUJOCH_IMAGEPUSHER_H #define JUNGFRAUJOCH_IMAGEPUSHER_H #include #include #include "DiffractionExperiment.h" #include "DiffractionSpot.h" #include "../frame_serialize/JFJochFrameSerializer.h" #include "../frame_serialize/CBORMessages.h" #include "ZeroCopyReturnValue.h" void PrepareCBORImage(DataMessage& message, const DiffractionExperiment &experiment, void *image, size_t image_size); class ImagePusher { public: virtual void StartDataCollection(const StartMessage& message) = 0; virtual void EndDataCollection(const EndMessage& message) = 0; virtual void SendImage(const uint8_t *image_data, size_t image_size, int64_t image_number) = 0; virtual void SendImage(const uint8_t *image_data, size_t image_size, int64_t image_number, ZeroCopyReturnValue *z) = 0; }; #endif //JUNGFRAUJOCH_IMAGEPUSHER_H