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

◆ SubsystemManager()

MayaFlux::Core::SubsystemManager::SubsystemManager ( std::shared_ptr< Nodes::NodeGraphManager node_graph_manager,
std::shared_ptr< Buffers::BufferManager buffer_manager,
std::shared_ptr< Vruta::TaskScheduler task_scheduler,
std::shared_ptr< Core::WindowManager window_manager = nullptr,
std::shared_ptr< InputManager input_manager = nullptr 
)

Constructs SubsystemManager with required processing managers.

Parameters
node_graph_managerShared node graph manager for all subsystems
buffer_managerShared buffer manager for all subsystems
task_schedulerShared task scheduler for all subsystems
window_managerOptional shared window manager for graphics subsystems
input_managerOptional shared input manager for input subsystems

Initializes the manager with references to the core processing systems. These managers are shared across all subsystems but accessed through token-scoped handles for proper isolation.

Definition at line 16 of file SubsystemManager.cpp.

22 : m_node_graph_manager(std::move(node_graph_manager))
23 , m_buffer_manager(std::move(buffer_manager))
24 , m_task_scheduler(std::move(task_scheduler))
25 , m_window_manager(std::move(window_manager))
26 , m_input_manager(std::move(input_manager))
27{
30 std::source_location::current(),
31 "SubsystemManager requires valid NodeGraphManager");
32 }
33 if (!m_buffer_manager) {
35 std::source_location::current(),
36 "SubsystemManager requires valid BufferManager");
37 }
38 if (!m_task_scheduler) {
40 std::source_location::current(),
41 "SubsystemManager requires valid TaskScheduler");
42 }
43 if (!m_window_manager) {
45 "No WindowManager provided - Graphics subsystems will be unavailable");
46 }
47 if (!m_input_manager) {
49 "No InputManager provided - Input subsystems will be unavailable");
50 }
51}
#define MF_WARN(comp, ctx,...)
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
std::shared_ptr< Nodes::NodeGraphManager > m_node_graph_manager
std::shared_ptr< Vruta::TaskScheduler > m_task_scheduler
std::shared_ptr< Core::WindowManager > m_window_manager
std::shared_ptr< InputManager > m_input_manager
@ Init
Engine/subsystem initialization.
void fatal(Component component, Context context, std::source_location location, std::string_view message)
Log a fatal message and abort the program.
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, MayaFlux::Journal::Init, m_buffer_manager, m_input_manager, m_node_graph_manager, m_task_scheduler, m_window_manager, and MF_WARN.