diff --git a/core-buffer/include/BufferUdpReceiver.hpp b/core-buffer/include/BufferUdpReceiver.hpp index 0d9c3a6..def49e4 100644 --- a/core-buffer/include/BufferUdpReceiver.hpp +++ b/core-buffer/include/BufferUdpReceiver.hpp @@ -10,8 +10,8 @@ class BufferUdpReceiver { UdpReceiver udp_receiver_; public: - BufferUdpReceiver(const int source_id); - void bind(const uint16_t port); + BufferUdpReceiver(const uint16_t port, const int source_id); + virtual ~BufferUdpReceiver(); void get_frame_from_udp(ModuleFrame& metadata, char* frame_buffer); }; diff --git a/core-buffer/src/BufferUdpReceiver.cpp b/core-buffer/src/BufferUdpReceiver.cpp index ae937ce..a876bab 100644 --- a/core-buffer/src/BufferUdpReceiver.cpp +++ b/core-buffer/src/BufferUdpReceiver.cpp @@ -1,16 +1,17 @@ #include "BufferUdpReceiver.hpp" -BufferUdpReceiver::BufferUdpReceiver(int source_id) : - source_id_(source_id) -{ - -} - -void BufferUdpReceiver::bind(const uint16_t port) +BufferUdpReceiver::BufferUdpReceiver( + const uint16_t port, + const int source_id) : + source_id_(source_id) { udp_receiver_.bind(port); } +BufferUdpReceiver::~BufferUdpReceiver() { + udp_receiver_.disconnect(); +} + inline void BufferUdpReceiver::init_frame ( ModuleFrame& frame_metadata, jungfrau_packet& packet_buffer, diff --git a/sf-buffer/src/sf_buffer.cpp b/sf-buffer/src/sf_buffer.cpp index 7fff24b..8e1b3a1 100644 --- a/sf-buffer/src/sf_buffer.cpp +++ b/sf-buffer/src/sf_buffer.cpp @@ -57,8 +57,7 @@ int main (int argc, char *argv[]) { uint64_t last_pulse_id = 0; BufferH5Writer writer(device_name, root_folder); - BufferUdpReceiver receiver(source_id); - receiver.bind(udp_port); + BufferUdpReceiver receiver(udp_port, source_id); ModuleFrame metadata; auto frame_buffer = new char[MODULE_N_BYTES * JUNGFRAU_N_MODULES];