Files
Jungfraujoch/common/ZMQPreviewPublisher.cpp

32 lines
938 B
C++

// Copyright (2019-2023) Paul Scherrer Institute
#include "ZMQPreviewPublisher.h"
#include "grpcToJson.h"
ZMQPreviewPublisher::ZMQPreviewPublisher(ZMQContext& context, const std::string& addr) :
socket(context, ZMQSocketType::Pub) {
socket.SendWaterMark(2).NoLinger();
socket.Bind(addr);
}
void ZMQPreviewPublisher::StartDataCollection(const uint8_t *image_data, size_t image_size, int64_t preview_stride) {
{
std::unique_lock<std::mutex> ul(m);
stride = preview_stride;
current_part = -1;
}
socket.Send(image_data, image_size);
}
void ZMQPreviewPublisher::SendImage(const uint8_t *image_data, size_t image_size, int64_t image_number) {
{
std::unique_lock<std::mutex> ul(m);
int64_t part = image_number / stride;
if (current_part >= part)
return;
else
current_part = part;
}
socket.Send(image_data, image_size);
}