Program Listing for File utility.hpp
↰ Return to documentation for file (network/utility.hpp)
#ifndef FELIX_NETWORK_UTILITY_HPP
#define FELIX_NETWORK_UTILITY_HPP
#include <memory>
#include "bus.hpp"
#include "config.hpp"
#include "publisher.hpp"
#include "receiver.hpp"
namespace network::utility {
enum class EventLoopType {
netio_next,
netio3_native,
netio3_asio,
};
[[nodiscard]] EventLoopType get_eventloop_type(NetworkMode mode);
[[nodiscard]] std::unique_ptr<Publisher> create_buffered_publisher(
NetworkMode network_mode,
const std::string& ip,
uint32_t port,
unsigned int netio_pn,
unsigned int netio_ps,
unsigned int netio_to,
std::uint32_t max_chunk_size,
const std::string& publisher_info,
std::chrono::milliseconds mon_frequency);
[[nodiscard]] std::unique_ptr<Publisher> create_zero_copy_publisher(
NetworkMode network_mode,
const std::string& ip,
uint32_t port,
unsigned int netio_pn,
unsigned int netio_ps,
std::uint32_t max_chunk_size,
uint64_t dma_buffer_vaddr,
size_t dma_size,
const std::string& publisher_info,
std::chrono::milliseconds mon_frequency);
[[nodiscard]] std::unique_ptr<Receiver> create_buffered_receiver(
NetworkMode network_mode,
const std::string& ip,
uint32_t port,
unsigned int netio_pn,
unsigned int netio_ps,
const std::string& receiver_info);
[[nodiscard]] std::unique_ptr<Receiver> create_unbuffered_receiver(
NetworkMode network_mode,
const std::string& ip,
uint32_t port,
unsigned int netio_pn,
unsigned int netio_ps,
const std::string& receiver_info);
} // namespace network::utility
#endif