18 #ifndef MIR_DEFAULT_SERVER_CONFIGURATION_H_
19 #define MIR_DEFAULT_SERVER_CONFIGURATION_H_
30 class EventHubInterface;
31 class InputReaderInterface;
32 class InputReaderPolicyInterface;
33 class InputListenerInterface;
40 class ServerActionQueue;
42 class SharedLibraryProberReport;
50 class MultiplexingDispatchable;
55 class BufferStreamFactory;
58 class DisplayBufferCompositorFactory;
60 class RendererFactory;
61 class CompositorReport;
62 class FrameDroppingPolicyFactory;
68 class ConnectorReport;
69 class ProtobufIpcFactory;
70 class ConnectionCreator;
71 class SessionMediatorReport;
72 class MessageProcessorReport;
73 class SessionAuthorizer;
102 class PlacementStrategy;
122 class DisplayConfigurationReport;
123 class GraphicBufferAllocator;
134 class SurfaceInputDispatcher;
136 class InputDeviceRegistry;
137 class InputDeviceHub;
138 class DefaultInputDeviceHub;
139 class CompositeEventFilter;
140 class EventFilterChainDispatcher;
141 class InputChannelFactory;
142 class CursorListener;
143 class TouchVisualizer;
146 class InputSendObserver;
147 class NestedInputRelay;
150 class LegacyInputDispatchable;
153 class InputRegistrar;
183 std::shared_ptr<frontend::Connector>
the_connector()
override;
185 std::shared_ptr<graphics::Display>
the_display()
override;
186 std::shared_ptr<compositor::Compositor>
the_compositor()
override;
221 virtual std::shared_ptr<graphics::Cursor>
the_cursor();
222 virtual std::shared_ptr<graphics::Cursor>
wrap_cursor(std::shared_ptr<graphics::Cursor>
const& wrapped);
235 std::shared_ptr<compositor::DisplayBufferCompositorFactory>
const& wrapped);
242 virtual std::shared_ptr<compositor::Scene>
the_scene();
273 virtual auto the_shell() -> std::shared_ptr<shell::Shell>;
328 virtual std::shared_ptr<droidinput::EventHubInterface>
the_event_hub();
329 virtual std::shared_ptr<droidinput::InputReaderInterface>
the_input_reader();
344 virtual std::shared_ptr<logging::Logger>
the_logger();
347 virtual std::shared_ptr<time::Clock>
the_clock();
352 std::shared_ptr<options::Option>
the_options()
const;
364 std::shared_ptr<graphics::DisplayConfigurationPolicy>
const& wrapped);
366 virtual std::shared_ptr<shell::Shell>
wrap_shell(
367 std::shared_ptr<shell::Shell>
const& wrapped);
370 std::shared_ptr<input::CursorListener>
const& wrapped);
452 std::shared_ptr<options::Configuration>
const configuration_options;
453 std::shared_ptr<input::EventFilter>
const default_filter;
461 std::shared_ptr<scene::BroadcastingSessionEventSink> the_broadcasting_session_event_sink();
463 auto report_factory(
char const* report_opt) -> std::unique_ptr<report::ReportFactory>;
virtual std::shared_ptr< droidinput::InputReaderPolicyInterface > the_input_reader_policy()
Definition: default_configuration.cpp:194
virtual std::shared_ptr< graphics::DisplayConfigurationPolicy > the_display_configuration_policy()
Definition: default_configuration.cpp:58
virtual std::shared_ptr< graphics::nested::HostConnection > the_host_connection()
Definition: default_configuration.cpp:202
CachedPtr< dispatch::MultiplexingDispatchable > input_reading_multiplexer
Definition: default_server_configuration.h:389
CachedPtr< logging::Logger > logger
Definition: default_server_configuration.h:429
std::shared_ptr< frontend::Connector > the_prompt_connector() override
Definition: default_configuration.cpp:121
All things Mir.
Definition: atomic_callback.h:25
virtual std::shared_ptr< input::InputRegion > the_input_region()
Definition: default_configuration.cpp:67
Interface to the layout of the display outputs.
Definition: display_layout.h:36
CachedPtr< input::InputManager > input_manager
Definition: default_server_configuration.h:385
virtual auto the_window_manager_builder() -> shell::WindowManagerBuilder
Definition: default_configuration.cpp:51
CachedPtr< input::DefaultInputDeviceHub > default_input_device_hub
Definition: default_server_configuration.h:387
Definition: surface_stack_model.h:37
Definition: session_coordinator.h:41
virtual std::shared_ptr< frontend::MessageProcessorReport > the_message_processor_report()
Definition: default_server_configuration.cpp:86
virtual std::shared_ptr< droidinput::InputListenerInterface > the_input_translator()
Definition: default_configuration.cpp:214
Interface for extracting the pixels from a graphics::Buffer.
Definition: pixel_buffer.h:36
virtual std::shared_ptr< shell::Shell > wrap_shell(std::shared_ptr< shell::Shell > const &wrapped)
Definition: default_configuration.cpp:59
virtual std::shared_ptr< shell::DisplayConfigurationController > the_display_configuration_controller()
Definition: default_configuration.cpp:246
std::shared_ptr< ServerStatusListener > the_server_status_listener() override
Definition: default_server_configuration.cpp:166
CachedPtr< compositor::Compositor > compositor
Definition: default_server_configuration.h:427
Support for the debug "surface to screen" coordinate translation interface.
Definition: coordinate_translator.h:40
virtual std::shared_ptr< shell::DisplayLayout > the_shell_display_layout()
Definition: default_configuration.cpp:90
CachedPtr< graphics::GLConfig > gl_config
Definition: default_server_configuration.h:438
Definition: surface_stack.h:67
std::shared_ptr< cookie::CookieFactory > the_cookie_factory() override
Definition: default_server_configuration.cpp:184
Definition: scene_report.h:29
CachedPtr< graphics::DisplayReport > display_report
Definition: default_server_configuration.h:430
virtual std::shared_ptr< input::InputSendObserver > the_input_send_observer()
Definition: default_configuration.cpp:121
virtual std::shared_ptr< SharedLibraryProberReport > the_shared_library_prober_report()
Definition: default_server_configuration.cpp:130
CachedPtr< input::InputReport > input_report
Definition: default_server_configuration.h:382
std::shared_ptr< options::Option > the_options() const
Definition: default_server_configuration.cpp:73
CachedPtr< scene::SurfaceStack > surface_stack
Definition: default_server_configuration.h:415
std::shared_ptr< scene::ApplicationNotRespondingDetector > the_application_not_responding_detector() override
Definition: default_configuration.cpp:233
virtual std::shared_ptr< shell::HostLifecycleEventListener > the_host_lifecycle_event_listener()
Definition: default_configuration.cpp:100
CachedPtr< scene::SessionContainer > session_container
Definition: default_server_configuration.h:419
CachedPtr< graphics::Cursor > cursor
Definition: default_server_configuration.h:400
virtual std::shared_ptr< input::CursorImages > the_cursor_images()
Definition: default_configuration.cpp:295
CachedPtr< ServerStatusListener > server_status_listener
Definition: default_server_configuration.h:434
virtual std::shared_ptr< graphics::Cursor > wrap_cursor(std::shared_ptr< graphics::Cursor > const &wrapped)
Definition: default_configuration.cpp:197
virtual std::shared_ptr< input::CursorListener > wrap_cursor_listener(std::shared_ptr< input::CursorListener > const &wrapped)
Definition: default_configuration.cpp:247
CachedPtr< input::InputRegion > input_region
Definition: default_server_configuration.h:393
CachedPtr< MainLoop > main_loop
Definition: default_server_configuration.h:433
virtual std::shared_ptr< input::InputDeviceRegistry > the_input_device_registry()
Definition: default_configuration.cpp:392
virtual std::shared_ptr< droidinput::EventHubInterface > the_event_hub()
Definition: default_configuration.cpp:174
CachedPtr< droidinput::InputReaderPolicyInterface > input_reader_policy
Definition: default_server_configuration.h:374
CachedPtr< frontend::Screencast > screencast
Definition: default_server_configuration.h:411
virtual std::shared_ptr< scene::PixelBuffer > the_pixel_buffer()
Definition: default_configuration.cpp:190
virtual std::shared_ptr< input::InputChannelFactory > the_input_channel_factory()
Definition: default_configuration.cpp:223
CachedPtr< frontend::MessageProcessorReport > message_processor_report
Definition: default_server_configuration.h:406
CachedPtr< shell::HostLifecycleEventListener > host_lifecycle_event_listener
Definition: default_server_configuration.h:444
Definition: prompt_session_listener.h:31
Definition: server_configuration.h:66
CachedPtr< input::LegacyInputDispatchable > legacy_input_dispatchable
Definition: default_server_configuration.h:377
CachedPtr< scene::MediatingDisplayChanger > mediating_display_changer
Definition: default_server_configuration.h:437
virtual std::shared_ptr< compositor::DisplayBufferCompositorFactory > the_display_buffer_compositor_factory()
Definition: default_configuration.cpp:64
virtual std::shared_ptr< ServerActionQueue > the_server_action_queue()
Definition: default_server_configuration.cpp:161
CachedPtr< graphics::Platform > graphics_platform
Definition: default_server_configuration.h:397
CachedPtr< SharedLibraryProberReport > shared_library_prober_report
Definition: default_server_configuration.h:446
Definition: host_connection.h:40
CachedPtr< scene::ApplicationNotRespondingDetector > application_not_responding_detector
Definition: default_server_configuration.h:448
std::shared_ptr< graphics::Display > the_display() override
Definition: default_configuration.cpp:133
CachedPtr< time::Clock > clock
Definition: default_server_configuration.h:432
virtual std::shared_ptr< compositor::FrameDroppingPolicyFactory > the_frame_dropping_policy_factory()
Definition: default_configuration.cpp:53
CachedPtr< input::InputSender > input_sender
Definition: default_server_configuration.h:391
Definition: focus_controller.h:38
std::shared_ptr< DisplayChanger > the_display_changer() override
Definition: default_configuration.cpp:155
CachedPtr< scene::SessionListener > session_listener
Definition: default_server_configuration.h:422
virtual std::shared_ptr< frontend::EventSink > the_global_event_sink()
Definition: default_configuration.cpp:161
virtual std::shared_ptr< graphics::DisplayConfigurationPolicy > wrap_display_configuration_policy(std::shared_ptr< graphics::DisplayConfigurationPolicy > const &wrapped)
wrapper functions
Definition: default_configuration.cpp:69
CachedPtr< graphics::DisplayConfigurationPolicy > display_configuration_policy
Definition: default_server_configuration.h:435
Definition: surface_coordinator.h:38
CachedPtr< input::Platform > input_platform
Definition: default_server_configuration.h:388
virtual std::shared_ptr< input::EventFilterChainDispatcher > the_event_filter_chain_dispatcher()
Definition: default_configuration.cpp:87
CachedPtr< input::SurfaceInputDispatcher > surface_input_dispatcher
Definition: default_server_configuration.h:386
virtual std::shared_ptr< input::InputSender > the_input_sender()
Definition: default_configuration.cpp:108
A store for Surface information divorced from the lifetime of any given Session.
Definition: persistent_surface_store.h:46
virtual std::shared_ptr< input::InputDeviceHub > the_input_device_hub()
Definition: default_configuration.cpp:406
std::shared_ptr< input::InputDispatcher > the_input_dispatcher() override
Definition: default_configuration.cpp:156
virtual std::shared_ptr< scene::PromptSessionManager > the_prompt_session_manager()
Definition: default_configuration.cpp:212
virtual std::shared_ptr< frontend::Screencast > the_screencast()
Definition: default_configuration.cpp:110
CachedPtr< graphics::nested::HostConnection > host_connection
Definition: default_server_configuration.h:436
virtual std::shared_ptr< time::Clock > the_clock()
Definition: default_server_configuration.cpp:143
virtual std::shared_ptr< frontend::ConnectionCreator > the_prompt_connection_creator()
Definition: default_configuration.cpp:84
CachedPtr< scene::CoordinateTranslator > coordinate_translator
Definition: default_server_configuration.h:442
CachedPtr< scene::PromptSessionManager > prompt_session_manager
Definition: default_server_configuration.h:440
virtual std::shared_ptr< scene::PromptSessionListener > the_prompt_session_listener()
Definition: default_server_configuration.cpp:102
CachedPtr< input::InputSendObserver > input_send_observer
Definition: default_server_configuration.h:392
virtual std::shared_ptr< scene::SessionEventSink > the_session_event_sink()
Definition: default_configuration.cpp:112
Definition: surface_factory.h:32
std::shared_ptr< input::InputManager > the_input_manager() override
Definition: default_configuration.cpp:344
CachedPtr< droidinput::InputReaderInterface > input_reader
Definition: default_server_configuration.h:375
virtual std::shared_ptr< input::SurfaceInputDispatcher > the_surface_input_dispatcher()
Definition: default_configuration.cpp:146
virtual std::shared_ptr< input::CompositeEventFilter > the_composite_event_filter()
Definition: default_configuration.cpp:77
std::shared_ptr< EmergencyCleanup > the_emergency_cleanup() override
Definition: default_server_configuration.cpp:175
CachedPtr< input::CursorImages > cursor_images
Definition: default_server_configuration.h:402
CachedPtr< frontend::Connector > prompt_connector
Definition: default_server_configuration.h:380
virtual std::shared_ptr< scene::SessionListener > the_session_listener()
Definition: default_server_configuration.cpp:92
virtual std::shared_ptr< graphics::Cursor > the_cursor()
Definition: default_configuration.cpp:165
std::shared_ptr< compositor::Compositor > the_compositor() override
Definition: default_configuration.cpp:82
CachedPtr< shell::Shell > shell
Definition: default_server_configuration.h:447
CachedPtr< scene::PromptSessionListener > prompt_session_listener
Definition: default_server_configuration.h:439
CachedPtr< frontend::ConnectionCreator > connection_creator
Definition: default_server_configuration.h:409
std::shared_ptr< MainLoop > the_main_loop() override
Definition: default_server_configuration.cpp:152
Definition: session_container.h:32
virtual std::shared_ptr< input::CursorListener > the_cursor_listener()
Definition: default_configuration.cpp:233
CachedPtr< shell::InputTargeter > input_targeter
Definition: default_server_configuration.h:394
CachedPtr< frontend::Connector > connector
Definition: default_server_configuration.h:379
A source of moderately-difficult-to-spoof cookies.
Definition: cookie_factory.h:44
CachedPtr< scene::SceneReport > scene_report
Definition: default_server_configuration.h:416
CachedPtr< compositor::RendererFactory > renderer_factory
Definition: default_server_configuration.h:412
CachedPtr< input::CompositeEventFilter > composite_event_filter
Definition: default_server_configuration.h:384
CachedPtr< scene::SurfaceCoordinator > surface_coordinator
Definition: default_server_configuration.h:420
Definition: broadcasting_session_event_sink.h:32
CachedPtr< frontend::SessionMediatorReport > session_mediator_report
Definition: default_server_configuration.h:405
CachedPtr< cookie::CookieFactory > cookie_factory
Definition: default_server_configuration.h:449
virtual std::shared_ptr< scene::MediatingDisplayChanger > the_mediating_display_changer()
Definition: default_configuration.cpp:131
virtual std::shared_ptr< scene::SessionContainer > the_session_container()
Definition: default_configuration.cpp:124
Definition: session_event_sink.h:30
virtual std::shared_ptr< scene::SessionEventHandlerRegister > the_session_event_handler_register()
Definition: default_configuration.cpp:118
CachedPtr< compositor::CompositorReport > compositor_report
Definition: default_server_configuration.h:428
virtual std::shared_ptr< frontend::ConnectorReport > the_connector_report()
Definition: default_server_configuration.cpp:68
CachedPtr< frontend::ConnectorReport > connector_report
Definition: default_server_configuration.h:404
CachedPtr< input::InputDispatcher > input_dispatcher
Definition: default_server_configuration.h:390
virtual std::shared_ptr< logging::Logger > the_logger()
Definition: default_server_configuration.cpp:205
virtual std::shared_ptr< input::InputReport > the_input_report()
Definition: default_server_configuration.cpp:112
virtual std::shared_ptr< droidinput::InputReaderInterface > the_input_reader()
Definition: default_configuration.cpp:204
CachedPtr< scene::SessionCoordinator > session_coordinator
Definition: default_server_configuration.h:441
DefaultServerConfiguration(int argc, char const *argv[])
Definition: default_server_configuration.cpp:62
std::shared_ptr< frontend::Shell > the_frontend_shell()
Definition: default_configuration.cpp:74
CachedPtr< scene::SurfaceFactory > surface_factory
Definition: default_server_configuration.h:418
std::shared_ptr< graphics::Platform > the_graphics_platform() override
Definition: default_configuration.cpp:75
CachedPtr< shell::DisplayLayout > shell_display_layout
Definition: default_server_configuration.h:425
virtual std::shared_ptr< scene::CoordinateTranslator > the_coordinate_translator()
Definition: default_configuration.cpp:224
CachedPtr< scene::PlacementStrategy > placement_strategy
Definition: default_server_configuration.h:421
CachedPtr< shell::PersistentSurfaceStore > surface_store
Definition: default_server_configuration.h:445
CachedPtr< graphics::Display > display
Definition: default_server_configuration.h:399
virtual std::shared_ptr< graphics::GLConfig > the_gl_config()
Definition: default_configuration.cpp:241
virtual std::shared_ptr< compositor::RendererFactory > the_renderer_factory()
Definition: default_configuration.cpp:101
std::shared_ptr< shell::FocusController > the_focus_controller()
Definition: default_configuration.cpp:84
virtual std::shared_ptr< compositor::Scene > the_scene()
Definition: default_configuration.cpp:63
virtual std::shared_ptr< shell::InputTargeter > the_input_targeter()
Definition: default_configuration.cpp:132
virtual std::shared_ptr< dispatch::MultiplexingDispatchable > the_input_reading_multiplexer()
Definition: default_configuration.cpp:382
CachedPtr< input::TouchVisualizer > touch_visualizer
Definition: default_server_configuration.h:396
Definition: prompt_session_manager.h:34
virtual std::shared_ptr< frontend::ProtobufIpcFactory > new_ipc_factory(std::shared_ptr< frontend::SessionAuthorizer > const &session_authorizer)
Definition: default_configuration.cpp:148
virtual std::shared_ptr< input::TouchVisualizer > the_touch_visualizer()
Definition: default_configuration.cpp:254
CachedPtr< input::CursorListener > cursor_listener
Definition: default_server_configuration.h:395
virtual std::shared_ptr< scene::SessionCoordinator > the_session_coordinator()
Definition: default_configuration.cpp:171
virtual std::shared_ptr< input::Scene > the_input_scene()
Definition: default_configuration.cpp:69
CachedPtr< scene::PixelBuffer > pixel_buffer
Definition: default_server_configuration.h:423
CachedPtr< graphics::CursorImage > default_cursor_image
Definition: default_server_configuration.h:401
virtual std::shared_ptr< graphics::CursorImage > the_default_cursor_image()
Definition: default_configuration.cpp:275
virtual std::shared_ptr< graphics::GraphicBufferAllocator > the_buffer_allocator()
Definition: default_configuration.cpp:123
virtual std::shared_ptr< compositor::CompositorReport > the_compositor_report()
Definition: default_server_configuration.cpp:59
virtual auto the_shell() -> std::shared_ptr< shell::Shell >
Definition: default_configuration.cpp:34
virtual std::shared_ptr< frontend::SessionMediatorReport > the_session_mediator_report()
Definition: default_server_configuration.cpp:77
std::shared_ptr< frontend::Connector > the_connector() override
Definition: default_configuration.cpp:52
CachedPtr< frontend::EventSink > global_event_sink
Definition: default_server_configuration.h:408
virtual std::shared_ptr< scene::SurfaceStackModel > the_surface_stack_model()
Definition: default_configuration.cpp:56
Definition: android_input_receiver.h:36
Definition: frontend_shell.h:37
Definition: default_server_configuration.h:174
Definition: session_event_handler_register.h:31
CachedPtr< compositor::FrameDroppingPolicyFactory > frame_dropping_policy_factory
Definition: default_server_configuration.h:414
virtual std::shared_ptr< graphics::DisplayConfigurationReport > the_display_configuration_report()
Definition: default_server_configuration.cpp:104
Definition: host_lifecycle_event_listener.h:29
CachedPtr< compositor::BufferStreamFactory > buffer_stream_factory
Definition: default_server_configuration.h:413
virtual std::shared_ptr< shell::PersistentSurfaceStore > the_persistent_surface_store()
Definition: default_configuration.cpp:65
auto the_fatal_error_strategy() -> void(*)(char const *reason,...) overridefinal
Function to call when a "fatal" error occurs.
Definition: default_server_configuration.cpp:196
CachedPtr< compositor::DisplayBufferCompositorFactory > display_buffer_compositor_factory
Definition: default_server_configuration.h:426
Definition: display_configuration_controller.h:34
virtual std::shared_ptr< scene::SurfaceFactory > the_surface_factory()
Definition: default_configuration.cpp:75
virtual std::shared_ptr< frontend::ConnectionCreator > the_connection_creator()
Definition: default_configuration.cpp:38
CachedPtr< droidinput::EventHubInterface > event_hub
Definition: default_server_configuration.h:373
CachedPtr< input::EventFilterChainDispatcher > event_filter_chain_dispatcher
Definition: default_server_configuration.h:383
virtual std::shared_ptr< frontend::DisplayChanger > the_frontend_display_changer()
Definition: default_configuration.cpp:149
CachedPtr< scene::SnapshotStrategy > snapshot_strategy
Definition: default_server_configuration.h:424
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
virtual std::shared_ptr< graphics::DisplayReport > the_display_report()
Definition: default_server_configuration.cpp:95
CachedPtr< EmergencyCleanup > emergency_cleanup
Definition: default_server_configuration.h:443
virtual std::shared_ptr< compositor::DisplayBufferCompositorFactory > wrap_display_buffer_compositor_factory(std::shared_ptr< compositor::DisplayBufferCompositorFactory > const &wrapped)
Definition: default_configuration.cpp:75
CachedPtr< graphics::GraphicBufferAllocator > buffer_allocator
Definition: default_server_configuration.h:398
virtual std::shared_ptr< input::Platform > the_input_platform()
Definition: default_configuration.cpp:309
Definition: session_listener.h:31
virtual std::shared_ptr< scene::BufferStreamFactory > the_buffer_stream_factory()
Definition: default_configuration.cpp:40
virtual std::shared_ptr< scene::SnapshotStrategy > the_snapshot_strategy()
Definition: default_configuration.cpp:201
virtual std::shared_ptr< scene::SceneReport > the_scene_report()
Definition: default_server_configuration.cpp:121
Definition: buffer_stream_factory.h:34
virtual std::shared_ptr< input::LegacyInputDispatchable > the_legacy_input_dispatchable()
Definition: default_configuration.cpp:184
CachedPtr< frontend::SessionAuthorizer > session_authorizer
Definition: default_server_configuration.h:407
CachedPtr< frontend::ConnectionCreator > prompt_connection_creator
Definition: default_server_configuration.h:410
CachedPtr< graphics::DisplayConfigurationReport > display_configuration_report
Definition: default_server_configuration.h:431
virtual std::shared_ptr< scene::SurfaceCoordinator > the_surface_coordinator()
Definition: default_configuration.cpp:90
virtual std::shared_ptr< frontend::SessionAuthorizer > the_session_authorizer()
Definition: default_server_configuration.cpp:112
CachedPtr< droidinput::InputListenerInterface > input_translator
Definition: default_server_configuration.h:376