mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-06-04 06:28:27 +02:00
Rename buffer project
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
#ifndef SF_DAQ_BUFFER_FRAMEUDPRECEIVER_HPP
|
||||
#define SF_DAQ_BUFFER_FRAMEUDPRECEIVER_HPP
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include "PacketUdpReceiver.hpp"
|
||||
#include "formats.hpp"
|
||||
#include "buffer_config.hpp"
|
||||
|
||||
class FrameUdpReceiver {
|
||||
const int source_id_;
|
||||
|
||||
PacketUdpReceiver udp_receiver_;
|
||||
|
||||
jungfrau_packet packet_buffer_[buffer_config::BUFFER_UDP_N_RECV_MSG];
|
||||
iovec recv_buff_ptr_[buffer_config::BUFFER_UDP_N_RECV_MSG];
|
||||
mmsghdr msgs_[buffer_config::BUFFER_UDP_N_RECV_MSG];
|
||||
sockaddr_in sock_from_[buffer_config::BUFFER_UDP_N_RECV_MSG];
|
||||
|
||||
bool packet_buffer_loaded_ = false;
|
||||
int packet_buffer_n_packets_ = 0;
|
||||
int packet_buffer_offset_ = 0;
|
||||
|
||||
inline void init_frame(ModuleFrame& frame_metadata, const int i_packet);
|
||||
inline void copy_packet_to_buffers(
|
||||
ModuleFrame& metadata, char* frame_buffer, const int i_packet);
|
||||
inline uint64_t process_packets(
|
||||
const int n_packets, ModuleFrame& metadata, char* frame_buffer);
|
||||
|
||||
public:
|
||||
FrameUdpReceiver(const uint16_t port, const int source_id);
|
||||
virtual ~FrameUdpReceiver();
|
||||
uint64_t get_frame_from_udp(ModuleFrame& metadata, char* frame_buffer);
|
||||
};
|
||||
|
||||
|
||||
#endif //SF_DAQ_BUFFER_FRAMEUDPRECEIVER_HPP
|
||||
@@ -0,0 +1,22 @@
|
||||
#ifndef UDPRECEIVER_H
|
||||
#define UDPRECEIVER_H
|
||||
|
||||
#include <sys/socket.h>
|
||||
|
||||
class PacketUdpReceiver {
|
||||
|
||||
int socket_fd_;
|
||||
|
||||
public:
|
||||
PacketUdpReceiver();
|
||||
virtual ~PacketUdpReceiver();
|
||||
|
||||
bool receive(void* buffer, const size_t buffer_n_bytes);
|
||||
int receive_many(mmsghdr* msgs, const size_t n_msgs);
|
||||
|
||||
void bind(const uint16_t port);
|
||||
void disconnect();
|
||||
};
|
||||
|
||||
|
||||
#endif //LIB_CPP_H5_WRITER_UDPRECEIVER_H
|
||||
Reference in New Issue
Block a user