Files
Jungfraujoch/preview/ZMQPreviewSocket.h
2025-07-08 20:19:59 +02:00

28 lines
992 B
C++

// SPDX-FileCopyrightText: 2024 Filip Leonarski, Paul Scherrer Institute <filip.leonarski@psi.ch>
// SPDX-License-Identifier: GPL-3.0-only
#ifndef JFJOCH_ZMQPREVIEWSOCKET_H
#define JFJOCH_ZMQPREVIEWSOCKET_H
#include "PreviewCounter.h"
#include "../common/ZMQWrappers.h"
#include "../frame_serialize/CBORStream2Serializer.h"
#include "ZMQPreviewSettings.h"
class ZMQPreviewSocket {
ZMQSocket socket;
PreviewCounter counter;
public:
explicit ZMQPreviewSocket(const std::string &addr, const std::optional<int32_t> &watermark = {});
ZMQPreviewSocket& Period(const std::optional<std::chrono::microseconds> &period);
void SendImage(const uint8_t *image_data, size_t image_size);
void StartDataCollection(const StartMessage& message);
void EndDataCollection(const EndMessage& message);
std::string GetAddress();
ZMQPreviewSocket& ImportSettings(const ZMQPreviewSettings& settings);
ZMQPreviewSettings GetSettings();
};
#endif //JFJOCH_ZMQPREVIEWSOCKET_H