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

◆ shutdown()

void MayaFlux::Core::NetworkSubsystem::shutdown ( )
overridevirtual

Shutdown and cleanup subsystem resources.

Implements MayaFlux::Core::ISubsystem.

Definition at line 176 of file NetworkSubsystem.cpp.

177{
178 stop();
179
180 {
181 std::unique_lock lock(m_routing_mutex);
182 m_endpoint_routing.clear();
183 }
184
185 {
186 std::unique_lock lock(m_callbacks_mutex);
187 m_endpoint_callbacks.clear();
188 }
189
190 {
191 std::unique_lock lock(m_backends_mutex);
192 for (auto& [transport, backend] : m_backends) {
193 backend->shutdown();
194 }
195 m_backends.clear();
196 }
197
200 }
201
202 if (m_network_service) {
204 .unregister_service<Registry::Service::NetworkService>();
205 m_network_service.reset();
206 }
207
208 m_ready.store(false);
209
211 "Network Subsystem shutdown complete");
212}
#define MF_INFO(comp, ctx,...)
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().
void stop() override
Stop the subsystem's processing/event loops.
std::unordered_map< NetworkTransport, std::unique_ptr< INetworkBackend > > m_backends
std::shared_ptr< Registry::Service::NetworkService > m_network_service
static BackendRegistry & instance()
Get the global registry instance.
void unregister_service()
Unregister a service.
@ Init
Engine/subsystem initialization.
@ Core
Core engine, backend, subsystems.
void shutdown()
Shutdown Portal::Network and release all resources.
Definition Network.cpp:50
bool is_initialized()
Return true if Portal::Network has been initialized.
Definition Network.cpp:66

References MayaFlux::Journal::Core, MayaFlux::Journal::Init, MayaFlux::Registry::BackendRegistry::instance(), MayaFlux::Portal::Network::is_initialized(), MF_INFO, MayaFlux::Portal::Network::shutdown(), and MayaFlux::Registry::BackendRegistry::unregister_service().

Referenced by ~NetworkSubsystem().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: