19 #include <boost/asio/io_context.hpp>
32 std::unique_ptr<wrapper::Udp>
udp;
33 if (use_independent_context_) {
34 udp = std::make_unique<wrapper::Udp>(cfg_, std::make_shared<boost::asio::io_context>());
35 udp->set_manage_external_context(
true);
37 udp = std::make_unique<wrapper::Udp>(cfg_);
58 on_data_ = std::move(handler);
63 on_connect_ = std::move(handler);
68 on_disconnect_ = std::move(handler);
73 on_error_ = std::move(handler);
89 use_independent_context_ = use_independent;
static void ensure_io_context_running()
Automatically start IoContextManager if not running.
Modernized Builder for Udp.
UdpBuilder & auto_manage(bool auto_manage=true) override
Enable auto-manage functionality.
UdpBuilder & on_connect(std::function< void(const wrapper::ConnectionContext &)> handler) override
Set connection handler callback.
std::unique_ptr< wrapper::Udp > build() override
Build and return the configured product.
UdpBuilder & set_remote(const std::string &address, uint16_t port)
Set remote address and port.
UdpBuilder & on_data(std::function< void(const wrapper::MessageContext &)> handler) override
Set data handler callback.
UdpBuilder & use_independent_context(bool use_independent=true)
Use independent IoContext.
UdpBuilder & set_local_port(uint16_t port)
Set local port to bind.
UdpBuilder & on_disconnect(std::function< void(const wrapper::ConnectionContext &)> handler) override
Set disconnection handler callback.
UdpBuilder & on_error(std::function< void(const wrapper::ErrorContext &)> handler) override
Set error handler callback.
Context for connection/disconnection events.
Context for error events.
Context for data/message related events.
builder::UdpBuilder udp(uint16_t local_port)
Create a UDP builder.
std::optional< std::string > remote_address
std::optional< uint16_t > remote_port