MayaFlux 0.5.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 151 of file NetworkSubsystem.cpp.

152{
153 stop();
154
155 {
156 std::unique_lock lock(m_routing_mutex);
157 m_endpoint_routing.clear();
158 }
159
160 {
161 std::unique_lock lock(m_callbacks_mutex);
162 m_endpoint_callbacks.clear();
163 }
164
165 {
166 std::unique_lock lock(m_backends_mutex);
167 for (auto& [transport, backend] : m_backends) {
168 backend->shutdown();
169 }
170 m_backends.clear();
171 }
172
175 }
176
177 if (m_network_service) {
179 .unregister_service<Registry::Service::NetworkService>();
180 m_network_service.reset();
181 }
182
183 m_ready.store(false);
184
186 "Network Subsystem shutdown complete");
187}
#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: