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

◆ get_service()

template<typename Interface >
Interface * MayaFlux::Registry::BackendRegistry::get_service ( )
inline

Query for a backend service.

Template Parameters
InterfaceThe service interface type needed
Returns
Pointer to service implementation or nullptr if unavailable

Thread-safe. Returns nullptr if service not registered - callers must always check for nullptr before use.

The returned pointer is valid as long as the backend remains alive. Do not cache pointers across backend lifetime boundaries.

Example: auto* service = registry.get_service<IBufferService>(); if (service) { auto buffer = service->create_buffer(...); } else { // Handle missing service gracefully }

Definition at line 115 of file BackendRegistry.hpp.

116 {
117 std::shared_lock lock(m_mutex);
118 auto it = m_services.find(typeid(Interface));
119 if (it != m_services.end()) {
120 return static_cast<Interface*>(it->second());
121 }
122 return nullptr;
123 }
std::unordered_map< ServiceId, ServiceFactory > m_services

Referenced by MayaFlux::Buffers::create_staging_buffer(), MayaFlux::Buffers::download_device_local(), MayaFlux::Buffers::download_host_visible(), MayaFlux::Portal::Graphics::RenderFlow::initialize(), MayaFlux::Buffers::BufferAccessControl::initialize_buffer_service(), MayaFlux::Buffers::VKBufferProcessor::initialize_buffer_service(), MayaFlux::Buffers::VKBufferProcessor::initialize_compute_service(), MayaFlux::Buffers::RenderProcessor::on_attach(), MayaFlux::Buffers::BufferDownloadProcessor::on_attach(), MayaFlux::Buffers::BufferUploadProcessor::on_attach(), MayaFlux::Buffers::TextureProcessor::on_attach(), MayaFlux::Buffers::BufferAccessControl::remove_graphics_buffer(), MayaFlux::Buffers::VKBuffer::resize(), MayaFlux::Buffers::upload_device_local(), and MayaFlux::Buffers::upload_host_visible().

+ Here is the caller graph for this function: