19 #ifndef MIR_FRONTEND_SESSION_MEDIATOR_H_ 20 #define MIR_FRONTEND_SESSION_MEDIATOR_H_ 49 class DisplayConfiguration;
50 class GraphicBufferAllocator;
60 class CoordinateTranslator;
61 class ApplicationNotRespondingDetector;
68 class ClientBufferTracker;
72 class MessageResourceCache;
73 class SessionMediatorReport;
75 class EventSinkFactory;
96 std::shared_ptr<Shell>
const& shell,
97 std::shared_ptr<graphics::PlatformIpcOperations>
const& ipc_operations,
98 std::shared_ptr<frontend::DisplayChanger>
const& display_changer,
99 std::vector<MirPixelFormat>
const& surface_pixel_formats,
100 std::shared_ptr<SessionMediatorReport>
const& report,
101 std::shared_ptr<EventSinkFactory>
const& sink_factory,
102 std::shared_ptr<MessageSender>
const& message_sender,
103 std::shared_ptr<MessageResourceCache>
const& resource_cache,
104 std::shared_ptr<Screencast>
const& screencast,
106 std::shared_ptr<input::CursorImages>
const& cursor_images,
107 std::shared_ptr<scene::CoordinateTranslator>
const& translator,
108 std::shared_ptr<scene::ApplicationNotRespondingDetector>
const& anr_detector,
109 std::shared_ptr<cookie::Authority>
const& cookie_authority,
110 std::shared_ptr<input::InputDeviceHub>
const& hub
115 void client_pid(
int pid)
override;
118 mir::protobuf::ConnectParameters
const* request,
119 mir::protobuf::Connection* response,
120 google::protobuf::Closure* done)
override;
122 mir::protobuf::Void
const* request,
123 mir::protobuf::Void* response,
124 google::protobuf::Closure* done)
override;
126 mir::protobuf::SurfaceParameters
const* request,
127 mir::protobuf::Surface* response,
128 google::protobuf::Closure* done)
override;
130 mir::protobuf::SurfaceModifications
const* request,
131 mir::protobuf::Void* response,
132 google::protobuf::Closure* done)
override;
135 mir::protobuf::Buffer* response,
136 google::protobuf::Closure* done)
override;
137 void release_surface(
139 mir::protobuf::Void* response,
140 google::protobuf::Closure* done)
override;
141 void platform_operation(
142 mir::protobuf::PlatformOperationMessage
const* request,
143 mir::protobuf::PlatformOperationMessage* response,
144 google::protobuf::Closure* done)
override;
145 void configure_surface(
146 mir::protobuf::SurfaceSetting
const* request,
147 mir::protobuf::SurfaceSetting* response,
148 google::protobuf::Closure* done)
override;
149 void configure_display(
150 mir::protobuf::DisplayConfiguration
const* request,
151 mir::protobuf::DisplayConfiguration* response,
152 google::protobuf::Closure* done)
override;
153 void set_base_display_configuration(
154 mir::protobuf::DisplayConfiguration
const* request,
155 mir::protobuf::Void* response,
156 google::protobuf::Closure* done)
override;
157 void create_screencast(
158 mir::protobuf::ScreencastParameters
const* request,
159 mir::protobuf::Screencast* response,
160 google::protobuf::Closure* done)
override;
161 void screencast_buffer(
162 mir::protobuf::ScreencastId
const* request,
163 mir::protobuf::Buffer* response,
164 google::protobuf::Closure* done)
override;
165 void release_screencast(
166 mir::protobuf::ScreencastId
const* request,
167 mir::protobuf::Void* response,
168 google::protobuf::Closure* done)
override;
169 void create_buffer_stream(
170 mir::protobuf::BufferStreamParameters
const* request,
171 mir::protobuf::BufferStream* response,
172 google::protobuf::Closure* done)
override;
173 void release_buffer_stream(
175 mir::protobuf::Void* response,
176 google::protobuf::Closure* done)
override;
178 mir::protobuf::CursorSetting
const* request,
179 mir::protobuf::Void* response,
180 google::protobuf::Closure* done)
override;
181 void new_fds_for_prompt_providers(
182 mir::protobuf::SocketFDRequest
const* request,
183 mir::protobuf::SocketFD* response,
184 google::protobuf::Closure* done)
override;
185 void start_prompt_session(
186 mir::protobuf::PromptSessionParameters
const* request,
187 mir::protobuf::Void* response,
188 google::protobuf::Closure* done)
override;
189 void stop_prompt_session(
190 mir::protobuf::Void
const* request,
191 mir::protobuf::Void* response,
192 google::protobuf::Closure* done)
override;
193 void exchange_buffer(
194 mir::protobuf::BufferRequest
const* request,
195 mir::protobuf::Buffer* response,
196 google::protobuf::Closure* done)
override;
198 mir::protobuf::BufferRequest
const* request,
199 mir::protobuf::Void* response,
200 google::protobuf::Closure* done)
override;
201 void allocate_buffers(
202 mir::protobuf::BufferAllocation
const* request,
203 mir::protobuf::Void* response,
204 google::protobuf::Closure* done)
override;
205 void release_buffers(
206 mir::protobuf::BufferRelease
const* request,
207 mir::protobuf::Void* response,
208 google::protobuf::Closure* done)
override;
209 void request_persistent_surface_id(
211 mir::protobuf::PersistentSurfaceId* response,
212 google::protobuf::Closure* done)
override;
214 mir::protobuf::PingEvent
const* request,
215 mir::protobuf::Void* response,
216 google::protobuf::Closure* done)
override;
217 void configure_buffer_stream(
218 mir::protobuf::StreamConfiguration
const* request,
219 mir::protobuf::Void*,
220 google::protobuf::Closure* done)
override;
222 mir::protobuf::RaiseRequest
const* request,
223 mir::protobuf::Void*,
224 google::protobuf::Closure* done)
override;
227 void translate_surface_to_screen(
228 mir::protobuf::CoordinateTranslationRequest
const* request,
229 mir::protobuf::CoordinateTranslationResponse* response,
230 google::protobuf::Closure* done)
override;
233 void pack_protobuf_buffer(protobuf::Buffer& protobuf_buffer,
243 std::shared_ptr<graphics::DisplayConfiguration> unpack_and_sanitize_display_configuration(
244 protobuf::DisplayConfiguration
const*);
246 virtual std::function<void(std::shared_ptr<Session>
const&)> prompt_session_connect_handler()
const;
249 std::shared_ptr<Shell>
const shell;
250 std::shared_ptr<graphics::PlatformIpcOperations>
const ipc_operations;
252 std::vector<MirPixelFormat>
const surface_pixel_formats;
254 std::shared_ptr<frontend::DisplayChanger>
const display_changer;
255 std::shared_ptr<SessionMediatorReport>
const report;
256 std::shared_ptr<EventSinkFactory>
const sink_factory;
257 std::shared_ptr<EventSink>
const event_sink;
258 std::shared_ptr<MessageSender>
const message_sender;
259 std::shared_ptr<MessageResourceCache>
const resource_cache;
260 std::shared_ptr<Screencast>
const screencast;
262 std::shared_ptr<input::CursorImages>
const cursor_images;
263 std::shared_ptr<scene::CoordinateTranslator>
const translator;
264 std::shared_ptr<scene::ApplicationNotRespondingDetector>
const anr_detector;
265 std::shared_ptr<cookie::Authority>
const cookie_authority;
266 std::shared_ptr<input::InputDeviceHub>
const hub;
270 std::weak_ptr<Session> weak_session;
271 std::weak_ptr<PromptSession> weak_prompt_session;
All things Mir.
Definition: atomic_callback.h:25
IntWrapper< detail::SessionsSurfaceIdTag > SurfaceId
Definition: surface_id.h:29
IntWrapper< detail::SessionsBufferStreamIdTag > BufferStreamId
Definition: buffer_stream_id.h:29
BufferIpcMsgType
Definition: platform_ipc_operations.h:29
Definition: display_server_debug.h:28
Definition: buffer_stream_tracker.h:38
Definition: connection_context.h:32
void configure_cursor(MirSurface *surface, unsigned int cursor_index)
Definition: cursors_demo_client.c:28
Definition: buffer_stream.h:42
Definition: display_server.h:30