19 #ifndef MIR_FRONTEND_SESSION_MEDIATOR_H_
20 #define MIR_FRONTEND_SESSION_MEDIATOR_H_
42 class GraphicBufferAllocator;
53 class ClientBufferTracker;
57 class MessageResourceCache;
58 class SessionMediatorReport;
70 std::shared_ptr<Shell>
const& shell,
71 std::shared_ptr<graphics::Platform>
const& graphics_platform,
72 std::shared_ptr<frontend::DisplayChanger>
const& display_changer,
73 std::vector<MirPixelFormat>
const& surface_pixel_formats,
74 std::shared_ptr<SessionMediatorReport>
const& report,
75 std::shared_ptr<EventSink>
const& event_sink,
76 std::shared_ptr<MessageResourceCache>
const& resource_cache,
77 std::shared_ptr<Screencast>
const& screencast,
79 std::shared_ptr<input::CursorImages>
const& cursor_images);
86 void connect(::google::protobuf::RpcController* controller,
87 const ::mir::protobuf::ConnectParameters* request,
89 ::google::protobuf::Closure* done)
override;
94 google::protobuf::Closure* done)
override;
97 google::protobuf::RpcController* controller,
100 google::protobuf::Closure* done)
override;
103 google::protobuf::RpcController* controller,
106 google::protobuf::Closure* done)
override;
111 google::protobuf::Closure* done)
override;
113 void disconnect(google::protobuf::RpcController* controller,
116 google::protobuf::Closure* done)
override;
121 google::protobuf::Closure* done)
override;
124 const ::mir::protobuf::DisplayConfiguration* request,
126 ::google::protobuf::Closure* done)
override;
131 google::protobuf::Closure* done)
override;
136 google::protobuf::Closure* done)
override;
141 google::protobuf::Closure* done);
146 google::protobuf::Closure* done);
149 const ::mir::protobuf::PromptSessionParameters* request,
151 ::google::protobuf::Closure* done);
154 const ::mir::protobuf::Void* request,
156 ::google::protobuf::Closure* done);
162 google::protobuf::Closure* done)
override;
165 ::google::protobuf::RpcController* controller,
168 ::google::protobuf::Closure* done)
override;
180 virtual std::function<void(std::shared_ptr<Session>
const&)> prompt_session_connect_handler()
const;
183 std::shared_ptr<Shell>
const shell;
184 std::shared_ptr<graphics::Platform>
const graphics_platform;
185 std::shared_ptr<graphics::PlatformIpcOperations>
const ipc_operations;
187 std::vector<MirPixelFormat>
const surface_pixel_formats;
189 std::shared_ptr<frontend::DisplayChanger>
const display_changer;
190 std::shared_ptr<SessionMediatorReport>
const report;
191 std::shared_ptr<EventSink>
const event_sink;
192 std::shared_ptr<MessageResourceCache>
const resource_cache;
193 std::shared_ptr<Screencast>
const screencast;
195 std::shared_ptr<input::CursorImages>
const cursor_images;
199 std::mutex session_mutex;
200 std::weak_ptr<Session> weak_session;
201 std::weak_ptr<PromptSession> weak_prompt_session;
Definition: mir_protobuf.pb.h:2880
Definition: mir_protobuf.pb.h:1453
All things Mir.
Definition: aging_buffer.h:24
Definition: mir_protobuf.pb.h:2687
BufferIpcMsgType
Definition: platform_ipc_operations.h:28
Definition: mir_protobuf.pb.h:2769
Definition: mir_protobuf.pb.h:156
Definition: mir_protobuf.pb.h:375
Definition: mir_protobuf.pb.h:1834
Definition: mir_protobuf.pb.h:1921
Definition: mir_protobuf.pb.h:3061
Definition: mir_protobuf.pb.h:2127
Definition: connection_context.h:32
Definition: mir_protobuf.pb.h:2979
Definition: surface_tracker.h:37
Definition: int_wrapper.h:27
Definition: mir_protobuf.pb.h:1737
Definition: mir_protobuf.pb.h:1640
Definition: mir_protobuf.pb.h:293
Definition: mir_protobuf.pb.h:2573
Definition: mir_protobuf.pb.h:471
Definition: display_server.h:30
Definition: mir_protobuf.pb.h:1304