SRS-control 0.1.4
Loading...
Searching...
No Matches
UDPWriter.cpp
Go to the documentation of this file.
1#include "UDPWriter.hpp"
5#include <boost/asio/ip/udp.hpp>
6#include <cstddef>
7#include <fmt/format.h>
8#include <memory>
9#include <ranges>
10#include <spdlog/spdlog.h>
11
12namespace srs::writer
13{
15 asio::ip::udp::endpoint remote_endpoint,
16 std::size_t n_lines,
18 : WriterTask{ fmt::format("{}", remote_endpoint), deser_mode, n_lines }
19 {
20 connections_.reserve(n_lines);
21 output_data_.resize(n_lines);
22 for ([[maybe_unused]] const auto idx : std::views::iota(0, static_cast<int>(n_lines)))
23 {
24 connections_.emplace_back(std::make_unique<connection::UDPWriterConnection>(io_context, remote_endpoint));
25 }
26 }
27
28 UDP::~UDP() noexcept
29 {
30 for (auto& connection : connections_)
31 {
32 connection->close();
33 }
34 spdlog::info("Writer: UDP socket writer to the remote socket {:?} is closed successfully.", get_name());
35 }
36} // namespace srs::writer
WriterTask(std::string_view name, DataConvertOptions prev_convert, std::size_t n_lines=1)
std::vector< std::unique_ptr< connection::UDPWriterConnection > > connections_
UDP(io_context_type &io_context, asio::ip::udp::endpoint remote_endpoint, std::size_t n_lines, process::DataConvertOptions deser_mode=process::DataConvertOptions::none)
Definition UDPWriter.cpp:14
~UDP() noexcept
Definition UDPWriter.cpp:28
std::vector< OutputType > output_data_
asio::thread_pool io_context_type