MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ close_endpoint()

void MayaFlux::Core::NetworkSubsystem::close_endpoint ( uint64_t  endpoint_id)

Close an endpoint.

Definition at line 316 of file NetworkSubsystem.cpp.

317{
318 auto* backend = resolve_backend(endpoint_id);
319 if (!backend) {
320 return;
321 }
322
323 backend->close_endpoint(endpoint_id);
324
325 {
326 std::unique_lock lock(m_routing_mutex);
327 m_endpoint_routing.erase(endpoint_id);
328 }
329
330 {
331 std::unique_lock lock(m_callbacks_mutex);
332 m_endpoint_callbacks.erase(endpoint_id);
333 }
334}
std::shared_mutex m_routing_mutex
Maps endpoint_id -> transport for routing send/close/query to the correct backend without scanning al...
std::unordered_map< uint64_t, NetworkTransport > m_endpoint_routing
std::unordered_map< uint64_t, NetworkReceiveCallback > m_endpoint_callbacks
std::shared_mutex m_callbacks_mutex
Per-endpoint receive callbacks set by consumers via set_endpoint_receive_callback().
INetworkBackend * resolve_backend(uint64_t endpoint_id) const
Resolve endpoint_id to its owning backend.