18 #ifndef MIR_DEFAULT_SERVER_CONFIGURATION_H_ 19 #define MIR_DEFAULT_SERVER_CONFIGURATION_H_ 30 class ServerActionQueue;
32 class SharedLibraryProberReport;
40 class MultiplexingDispatchable;
45 class BufferStreamFactory;
48 class DisplayBufferCompositorFactory;
50 class RendererFactory;
51 class CompositorReport;
52 class FrameDroppingPolicyFactory;
58 class ConnectorReport;
59 class ProtobufIpcFactory;
60 class ConnectionCreator;
61 class SessionMediatorReport;
62 class MessageProcessorReport;
63 class SessionAuthorizer;
111 class DisplayConfigurationReport;
112 class GraphicBufferAllocator;
127 class SurfaceInputDispatcher;
128 class InputDeviceRegistry;
129 class InputDeviceHub;
130 class DefaultInputDeviceHub;
131 class CompositeEventFilter;
132 class EventFilterChainDispatcher;
133 class InputChannelFactory;
134 class CursorListener;
135 class TouchVisualizer;
168 std::shared_ptr<frontend::Connector> the_connector()
override;
169 std::shared_ptr<frontend::Connector> the_prompt_connector()
override;
170 std::shared_ptr<graphics::Display> the_display()
override;
171 std::shared_ptr<compositor::Compositor> the_compositor()
override;
172 std::shared_ptr<input::InputManager> the_input_manager()
override;
173 std::shared_ptr<MainLoop> the_main_loop()
override;
174 std::shared_ptr<ServerStatusListener> the_server_status_listener()
override;
175 std::shared_ptr<DisplayChanger> the_display_changer()
override;
176 std::shared_ptr<graphics::Platform> the_graphics_platform()
override;
177 std::shared_ptr<input::InputDispatcher> the_input_dispatcher()
override;
178 std::shared_ptr<EmergencyCleanup> the_emergency_cleanup()
override;
179 std::shared_ptr<cookie::Authority> the_cookie_authority()
override;
180 std::function<void()> the_stop_callback()
override;
189 auto the_fatal_error_strategy() -> void (*)(
char const* reason, ...)
override final;
190 std::shared_ptr<scene::ApplicationNotRespondingDetector> the_application_not_responding_detector()
override;
191 virtual std::shared_ptr<scene::ApplicationNotRespondingDetector>
192 wrap_application_not_responding_detector(
193 std::shared_ptr<scene::ApplicationNotRespondingDetector>
const& wrapped);
199 virtual std::shared_ptr<compositor::RendererFactory> the_renderer_factory();
200 virtual std::shared_ptr<shell::DisplayConfigurationController> the_display_configuration_controller();
201 virtual std::shared_ptr<graphics::DisplayConfigurationPolicy> the_display_configuration_policy();
202 virtual std::shared_ptr<graphics::nested::HostConnection> the_host_connection();
203 virtual std::shared_ptr<graphics::GLConfig> the_gl_config();
209 virtual std::shared_ptr<graphics::DisplayReport> the_display_report();
210 virtual std::shared_ptr<graphics::Cursor> the_cursor();
211 virtual std::shared_ptr<graphics::Cursor> wrap_cursor(std::shared_ptr<graphics::Cursor>
const& wrapped);
212 virtual std::shared_ptr<graphics::CursorImage> the_default_cursor_image();
213 virtual std::shared_ptr<input::CursorImages> the_cursor_images();
214 virtual std::shared_ptr<graphics::DisplayConfigurationReport> the_display_configuration_report();
221 virtual std::shared_ptr<compositor::CompositorReport> the_compositor_report();
222 virtual std::shared_ptr<compositor::DisplayBufferCompositorFactory> the_display_buffer_compositor_factory();
223 virtual std::shared_ptr<compositor::DisplayBufferCompositorFactory> wrap_display_buffer_compositor_factory(
224 std::shared_ptr<compositor::DisplayBufferCompositorFactory>
const& wrapped);
230 virtual std::shared_ptr<graphics::GraphicBufferAllocator> the_buffer_allocator();
231 virtual std::shared_ptr<compositor::Scene> the_scene();
232 virtual std::shared_ptr<compositor::FrameDroppingPolicyFactory> the_frame_dropping_policy_factory();
238 virtual std::shared_ptr<frontend::SessionMediatorReport> the_session_mediator_report();
239 virtual std::shared_ptr<frontend::MessageProcessorReport> the_message_processor_report();
240 virtual std::shared_ptr<frontend::SessionAuthorizer> the_session_authorizer();
243 std::shared_ptr<frontend::Shell> the_frontend_shell();
244 virtual std::shared_ptr<frontend::EventSink> the_global_event_sink();
245 virtual std::shared_ptr<frontend::DisplayChanger> the_frontend_display_changer();
246 virtual std::shared_ptr<frontend::Screencast> the_screencast();
250 virtual std::shared_ptr<frontend::ConnectionCreator> the_connection_creator();
251 virtual std::shared_ptr<frontend::ConnectionCreator> the_prompt_connection_creator();
252 virtual std::shared_ptr<frontend::ConnectorReport> the_connector_report();
257 std::shared_ptr<shell::FocusController> the_focus_controller();
262 virtual auto the_shell() -> std::shared_ptr<shell::Shell>;
264 virtual std::shared_ptr<scene::SessionListener> the_session_listener();
265 virtual std::shared_ptr<shell::DisplayLayout> the_shell_display_layout();
266 virtual std::shared_ptr<scene::PromptSessionListener> the_prompt_session_listener();
267 virtual std::shared_ptr<scene::PromptSessionManager> the_prompt_session_manager();
268 virtual std::shared_ptr<shell::HostLifecycleEventListener> the_host_lifecycle_event_listener();
269 virtual std::shared_ptr<shell::PersistentSurfaceStore> the_persistent_surface_store();
270 virtual std::shared_ptr<shell::ShellReport> the_shell_report();
277 virtual std::shared_ptr<scene::PixelBuffer> the_pixel_buffer();
278 virtual std::shared_ptr<scene::SnapshotStrategy> the_snapshot_strategy();
279 virtual std::shared_ptr<scene::SessionContainer> the_session_container();
280 virtual std::shared_ptr<scene::SessionEventSink> the_session_event_sink();
281 virtual std::shared_ptr<scene::SessionEventHandlerRegister> the_session_event_handler_register();
282 virtual std::shared_ptr<scene::SurfaceFactory> the_surface_factory();
283 virtual std::shared_ptr<shell::SurfaceStack> the_surface_stack();
284 virtual std::shared_ptr<shell::SurfaceStack> wrap_surface_stack(std::shared_ptr<shell::SurfaceStack>
const& wrapped);
290 virtual std::shared_ptr<scene::BufferStreamFactory> the_buffer_stream_factory();
291 virtual std::shared_ptr<scene::SceneReport> the_scene_report();
297 virtual std::shared_ptr<scene::SessionCoordinator> the_session_coordinator();
298 virtual std::shared_ptr<scene::CoordinateTranslator> the_coordinate_translator();
304 virtual std::shared_ptr<input::InputReport> the_input_report();
305 virtual std::shared_ptr<input::CompositeEventFilter> the_composite_event_filter();
307 virtual std::shared_ptr<input::EventFilterChainDispatcher> the_event_filter_chain_dispatcher();
309 virtual std::shared_ptr<shell::InputTargeter> the_input_targeter();
310 virtual std::shared_ptr<input::Scene> the_input_scene();
311 virtual std::shared_ptr<input::CursorListener> the_cursor_listener();
312 virtual std::shared_ptr<input::TouchVisualizer> the_touch_visualizer();
313 virtual std::shared_ptr<input::InputRegion> the_input_region();
314 virtual std::shared_ptr<input::InputSender> the_input_sender();
315 virtual std::shared_ptr<input::Seat> the_seat();
316 virtual std::shared_ptr<input::KeyMapper> the_key_mapper();
319 virtual std::shared_ptr<dispatch::MultiplexingDispatchable> the_input_reading_multiplexer();
320 virtual std::shared_ptr<input::InputDeviceRegistry> the_input_device_registry();
321 virtual std::shared_ptr<input::InputDeviceHub> the_input_device_hub();
322 virtual std::shared_ptr<input::SurfaceInputDispatcher> the_surface_input_dispatcher();
328 virtual std::shared_ptr<logging::Logger> the_logger();
331 virtual std::shared_ptr<time::Clock> the_clock();
332 virtual std::shared_ptr<ServerActionQueue> the_server_action_queue();
333 virtual std::shared_ptr<SharedLibraryProberReport> the_shared_library_prober_report();
339 std::shared_ptr<mir::SharedLibrary> platform_library;
342 std::shared_ptr<options::Option> the_options()
const;
343 std::shared_ptr<graphics::nested::MirClientHostConnection> the_mir_client_host_connection();
344 std::shared_ptr<input::DefaultInputDeviceHub> the_default_input_device_hub();
346 virtual std::shared_ptr<input::InputChannelFactory> the_input_channel_factory();
347 virtual std::shared_ptr<scene::MediatingDisplayChanger> the_mediating_display_changer();
348 virtual std::shared_ptr<frontend::ProtobufIpcFactory> new_ipc_factory(
349 std::shared_ptr<frontend::SessionAuthorizer>
const& session_authorizer);
355 virtual std::shared_ptr<graphics::DisplayConfigurationPolicy> wrap_display_configuration_policy(
356 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const& wrapped);
358 virtual std::shared_ptr<shell::Shell> wrap_shell(
359 std::shared_ptr<shell::Shell>
const& wrapped);
361 virtual std::shared_ptr<input::CursorListener> wrap_cursor_listener(
362 std::shared_ptr<input::CursorListener>
const& wrapped);
438 std::shared_ptr<options::Configuration>
const configuration_options;
439 std::shared_ptr<input::EventFilter>
const default_filter;
447 std::shared_ptr<scene::BroadcastingSessionEventSink> the_broadcasting_session_event_sink();
449 auto report_factory(
char const* report_opt) -> std::unique_ptr<report::ReportFactory>;
CachedPtr< dispatch::MultiplexingDispatchable > input_reading_multiplexer
Definition: default_server_configuration.h:374
CachedPtr< logging::Logger > logger
Definition: default_server_configuration.h:413
All things Mir.
Definition: atomic_callback.h:25
Interface to the layout of the display outputs.
Definition: display_layout.h:36
CachedPtr< input::InputManager > input_manager
Definition: default_server_configuration.h:371
CachedPtr< input::DefaultInputDeviceHub > default_input_device_hub
Definition: default_server_configuration.h:373
Definition: session_coordinator.h:41
CachedPtr< shell::ShellReport > shell_report
Definition: default_server_configuration.h:432
Interface for extracting the pixels from a graphics::Buffer.
Definition: pixel_buffer.h:36
CachedPtr< compositor::Compositor > compositor
Definition: default_server_configuration.h:411
Support for the debug "surface to screen" coordinate translation interface.
Definition: coordinate_translator.h:40
CachedPtr< input::KeyMapper > key_mapper
Definition: default_server_configuration.h:435
CachedPtr< graphics::GLConfig > gl_config
Definition: default_server_configuration.h:422
Definition: surface_stack.h:68
Definition: scene_report.h:29
CachedPtr< graphics::DisplayReport > display_report
Definition: default_server_configuration.h:414
CachedPtr< input::InputReport > input_report
Definition: default_server_configuration.h:368
CachedPtr< scene::SessionContainer > session_container
Definition: default_server_configuration.h:405
CachedPtr< shell::SurfaceStack > surface_stack
Definition: default_server_configuration.h:401
CachedPtr< graphics::Cursor > cursor
Definition: default_server_configuration.h:385
CachedPtr< ServerStatusListener > server_status_listener
Definition: default_server_configuration.h:418
CachedPtr< input::InputRegion > input_region
Definition: default_server_configuration.h:377
CachedPtr< MainLoop > main_loop
Definition: default_server_configuration.h:417
CachedPtr< frontend::Screencast > screencast
Definition: default_server_configuration.h:396
CachedPtr< frontend::MessageProcessorReport > message_processor_report
Definition: default_server_configuration.h:391
CachedPtr< shell::HostLifecycleEventListener > host_lifecycle_event_listener
Definition: default_server_configuration.h:428
Definition: mir_client_host_connection.h:54
Definition: prompt_session_listener.h:31
Definition: server_configuration.h:67
CachedPtr< scene::MediatingDisplayChanger > mediating_display_changer
Definition: default_server_configuration.h:421
CachedPtr< graphics::Platform > graphics_platform
Definition: default_server_configuration.h:382
CachedPtr< SharedLibraryProberReport > shared_library_prober_report
Definition: default_server_configuration.h:430
Definition: host_connection.h:43
CachedPtr< scene::ApplicationNotRespondingDetector > application_not_responding_detector
Definition: default_server_configuration.h:433
CachedPtr< time::Clock > clock
Definition: default_server_configuration.h:416
CachedPtr< input::InputSender > input_sender
Definition: default_server_configuration.h:376
Definition: focus_controller.h:38
CachedPtr< scene::SessionListener > session_listener
Definition: default_server_configuration.h:406
CachedPtr< graphics::DisplayConfigurationPolicy > display_configuration_policy
Definition: default_server_configuration.h:419
CachedPtr< input::SurfaceInputDispatcher > surface_input_dispatcher
Definition: default_server_configuration.h:372
A store for Surface information divorced from the lifetime of any given Session.
Definition: persistent_surface_store.h:46
CachedPtr< scene::CoordinateTranslator > coordinate_translator
Definition: default_server_configuration.h:426
CachedPtr< scene::PromptSessionManager > prompt_session_manager
Definition: default_server_configuration.h:424
Definition: surface_factory.h:34
CachedPtr< input::CursorImages > cursor_images
Definition: default_server_configuration.h:387
CachedPtr< frontend::Connector > prompt_connector
Definition: default_server_configuration.h:366
CachedPtr< shell::Shell > shell
Definition: default_server_configuration.h:431
CachedPtr< scene::PromptSessionListener > prompt_session_listener
Definition: default_server_configuration.h:423
CachedPtr< frontend::ConnectionCreator > connection_creator
Definition: default_server_configuration.h:394
Definition: session_container.h:32
Definition: surface_stack.h:40
CachedPtr< shell::InputTargeter > input_targeter
Definition: default_server_configuration.h:378
CachedPtr< frontend::Connector > connector
Definition: default_server_configuration.h:365
CachedPtr< scene::SceneReport > scene_report
Definition: default_server_configuration.h:402
CachedPtr< shell::PersistentSurfaceStore > persistent_surface_store
Definition: default_server_configuration.h:429
CachedPtr< compositor::RendererFactory > renderer_factory
Definition: default_server_configuration.h:397
Definition: shell_report.h:38
CachedPtr< input::CompositeEventFilter > composite_event_filter
Definition: default_server_configuration.h:370
CachedPtr< input::Seat > seat
Definition: default_server_configuration.h:381
Definition: broadcasting_session_event_sink.h:32
CachedPtr< frontend::SessionMediatorReport > session_mediator_report
Definition: default_server_configuration.h:390
Definition: session_event_sink.h:30
CachedPtr< compositor::CompositorReport > compositor_report
Definition: default_server_configuration.h:412
CachedPtr< frontend::ConnectorReport > connector_report
Definition: default_server_configuration.h:389
CachedPtr< input::InputDispatcher > input_dispatcher
Definition: default_server_configuration.h:375
CachedPtr< scene::SessionCoordinator > session_coordinator
Definition: default_server_configuration.h:425
CachedPtr< scene::SurfaceFactory > surface_factory
Definition: default_server_configuration.h:404
CachedPtr< shell::DisplayLayout > shell_display_layout
Definition: default_server_configuration.h:409
CachedPtr< graphics::Display > display
Definition: default_server_configuration.h:384
CachedPtr< input::TouchVisualizer > touch_visualizer
Definition: default_server_configuration.h:380
Definition: prompt_session_manager.h:34
CachedPtr< input::CursorListener > cursor_listener
Definition: default_server_configuration.h:379
CachedPtr< cookie::Authority > cookie_authority
Definition: default_server_configuration.h:434
CachedPtr< scene::PixelBuffer > pixel_buffer
Definition: default_server_configuration.h:407
CachedPtr< graphics::CursorImage > default_cursor_image
Definition: default_server_configuration.h:386
CachedPtr< scene::SurfaceStack > scene_surface_stack
Definition: default_server_configuration.h:400
CachedPtr< frontend::EventSink > global_event_sink
Definition: default_server_configuration.h:393
Definition: frontend_shell.h:37
Definition: default_server_configuration.h:159
Definition: session_event_handler_register.h:31
CachedPtr< compositor::FrameDroppingPolicyFactory > frame_dropping_policy_factory
Definition: default_server_configuration.h:399
Definition: host_lifecycle_event_listener.h:29
CachedPtr< compositor::BufferStreamFactory > buffer_stream_factory
Definition: default_server_configuration.h:398
CachedPtr< compositor::DisplayBufferCompositorFactory > display_buffer_compositor_factory
Definition: default_server_configuration.h:410
Definition: display_configuration_controller.h:33
CachedPtr< input::EventFilterChainDispatcher > event_filter_chain_dispatcher
Definition: default_server_configuration.h:369
CachedPtr< scene::SnapshotStrategy > snapshot_strategy
Definition: default_server_configuration.h:408
Definition: snapshot_strategy.h:32
std::function< std::shared_ptr< WindowManager >(FocusController *focus_controller)> WindowManagerBuilder
WindowManagers are built while initializing an AbstractShell, so a builder functor is needed...
Definition: window_manager_builder.h:34
CachedPtr< EmergencyCleanup > emergency_cleanup
Definition: default_server_configuration.h:427
CachedPtr< graphics::GraphicBufferAllocator > buffer_allocator
Definition: default_server_configuration.h:383
Definition: session_listener.h:31
Definition: buffer_stream_factory.h:34
CachedPtr< graphics::nested::MirClientHostConnection > host_connection
Definition: default_server_configuration.h:420
CachedPtr< frontend::SessionAuthorizer > session_authorizer
Definition: default_server_configuration.h:392
CachedPtr< frontend::ConnectionCreator > prompt_connection_creator
Definition: default_server_configuration.h:395
CachedPtr< graphics::DisplayConfigurationReport > display_configuration_report
Definition: default_server_configuration.h:415