20auto generate_unique_id(std::string_view prefix) -> std::string
22 static std::atomic<uint64_t>
counter{0};
23 auto now = std::chrono::steady_clock::now().time_since_epoch().count();
24 auto count =
counter.fetch_add(1);
26 std::ostringstream oss;
27 oss << prefix <<
"-" << now <<
"-" << count;
35 std::string connection_id =
id.empty() ? generate_unique_id(
"udp-conn") : std::string(
id);
36 return std::make_unique<unified::adapters::udp_connection_adapter>(connection_id);
40 -> std::unique_ptr<unified::i_connection>
44 (void)conn->connect(endpoint);
48auto connect(std::string_view url, std::string_view
id)
49 -> std::unique_ptr<unified::i_connection>
52 (void)conn->connect(url);
58 std::string listener_id =
id.empty() ? generate_unique_id(
"udp-listener") : std::string(
id);
59 return std::make_unique<unified::adapters::udp_listener_adapter>(listener_id);
63 -> std::unique_ptr<unified::i_listener>
66 (void)listener->start(bind_address);
70auto listen(uint16_t port, std::string_view
id) -> std::unique_ptr<unified::i_listener>
auto listen(const unified::endpoint_info &bind_address, std::string_view id="") -> std::unique_ptr< unified::i_listener >
Creates and starts a UDP listener in one call.
auto connect(const unified::endpoint_info &endpoint, std::string_view id="") -> std::unique_ptr< unified::i_connection >
Creates and starts a UDP connection in one call.
auto create_listener(std::string_view id="") -> std::unique_ptr< unified::i_listener >
Creates a UDP listener (not yet listening)
auto create_connection(std::string_view id="") -> std::unique_ptr< unified::i_connection >
Creates a UDP connection (not yet started)
Network endpoint information (host/port or URL)
UDP protocol connection factory functions.