Modifications in preparation to MAX IV experiment
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
// Copyright (2019-2024) Paul Scherrer Institute
|
||||
|
||||
#include "ZMQStream2PreviewPublisher.h"
|
||||
|
||||
#include "CBORStream2Serializer.h"
|
||||
|
||||
ZMQStream2PreviewPublisher::ZMQStream2PreviewPublisher(ZMQContext& context, const std::string& addr) :
|
||||
socket(context, ZMQSocketType::Pub) {
|
||||
socket.Conflate(true).NoLinger();
|
||||
socket.Bind(addr);
|
||||
}
|
||||
|
||||
void ZMQStream2PreviewPublisher::StartDataCollection(const StartMessage& message) {
|
||||
// Start message is not transmitted here
|
||||
}
|
||||
|
||||
bool ZMQStream2PreviewPublisher::SendImage(const DataMessage& message) {
|
||||
size_t approx_size = message.image.size + 2*1024*1024;
|
||||
std::vector<uint8_t> serialization_buffer(approx_size);
|
||||
|
||||
CBORStream2Serializer serializer(serialization_buffer.data(), serialization_buffer.size());
|
||||
serializer.SerializeImage(message);
|
||||
|
||||
return socket.Send(serialization_buffer.data(), serializer.GetBufferSize(), false);
|
||||
}
|
||||
|
||||
bool ZMQStream2PreviewPublisher::EndDataCollection(const EndMessage &message) {
|
||||
return true; // End message is not transmitted here
|
||||
}
|
||||
|
||||
std::string ZMQStream2PreviewPublisher::GetAddress() {
|
||||
return socket.GetEndpointName();
|
||||
}
|
||||
Reference in New Issue
Block a user