19 #ifndef MIR_SCENE_APPLICATION_SESSION_H_
20 #define MIR_SCENE_APPLICATION_SESSION_H_
36 namespace compositor {
class BufferStream; }
39 class DisplayConfiguration;
43 class SessionListener;
45 class SurfaceCoordinator;
46 class SnapshotStrategy;
47 class BufferStreamFactory;
54 std::shared_ptr<SurfaceCoordinator>
const& surface_coordinator,
55 std::shared_ptr<SurfaceFactory>
const& surface_factory,
56 std::shared_ptr<BufferStreamFactory>
const& buffer_stream_factory,
59 std::shared_ptr<SnapshotStrategy>
const& snapshot_strategy,
60 std::shared_ptr<SessionListener>
const& session_listener,
62 std::shared_ptr<frontend::EventSink>
const& sink);
68 std::shared_ptr<frontend::EventSink>
const& surface_sink)
override;
72 std::shared_ptr<Surface>
surface_after(std::shared_ptr<Surface>
const&)
const override;
104 std::shared_ptr<SurfaceCoordinator>
const surface_coordinator;
105 std::shared_ptr<SurfaceFactory>
const surface_factory;
106 std::shared_ptr<BufferStreamFactory>
const buffer_stream_factory;
109 std::shared_ptr<SnapshotStrategy>
const snapshot_strategy;
110 std::shared_ptr<SessionListener>
const session_listener;
111 std::shared_ptr<frontend::EventSink>
const event_sink;
115 std::atomic<int> next_surface_id;
119 typedef std::map<frontend::SurfaceId, std::shared_ptr<Surface>> Surfaces;
120 typedef std::map<frontend::BufferStreamId, std::shared_ptr<compositor::BufferStream>> Streams;
123 std::mutex
mutable surfaces_and_streams_mutex;
131 #endif // MIR_SCENE_APPLICATION_SESSION_H_
All things Mir.
Definition: atomic_callback.h:25
void destroy_surface(frontend::SurfaceId surface) override
Definition: application_session.cpp:242
std::shared_ptr< frontend::BufferStream > get_buffer_stream(frontend::BufferStreamId stream) const override
Definition: application_session.cpp:346
ApplicationSession(std::shared_ptr< SurfaceCoordinator > const &surface_coordinator, std::shared_ptr< SurfaceFactory > const &surface_factory, std::shared_ptr< BufferStreamFactory > const &buffer_stream_factory, pid_t pid, std::string const &session_name, std::shared_ptr< SnapshotStrategy > const &snapshot_strategy, std::shared_ptr< SessionListener > const &session_listener, graphics::DisplayConfiguration const &initial_config, std::shared_ptr< frontend::EventSink > const &sink)
void show() override
Definition: application_session.cpp:286
std::shared_ptr< Surface > default_surface() const override
Definition: application_session.cpp:232
void send_display_config(graphics::DisplayConfiguration const &info) override
Definition: application_session.cpp:295
pid_t process_id() const override
Definition: application_session.cpp:263
void destroy_buffer_stream(frontend::BufferStreamId stream) override
Definition: application_session.cpp:363
void suspend_prompt_session() override
Definition: application_session.cpp:336
std::function< void(Snapshot const &)> SnapshotCallback
Definition: snapshot.h:39
std::shared_ptr< Surface > surface(frontend::SurfaceId surface) const override
Definition: application_session.cpp:166
Definition: application_session.h:50
void set_lifecycle_state(MirLifecycleState state) override
Definition: application_session.cpp:320
void hide() override
Definition: application_session.cpp:277
ApplicationSession & operator=(ApplicationSession const &)=delete
std::shared_ptr< frontend::Surface > get_surface(frontend::SurfaceId surface) const override
Definition: application_session.cpp:161
void start_prompt_session() override
Definition: application_session.cpp:325
void configure_streams(Surface &surface, std::vector< shell::StreamSpecification > const &config) override
Definition: application_session.cpp:369
Definition: int_wrapper.h:27
void take_snapshot(SnapshotCallback const &snapshot_taken) override
Definition: application_session.cpp:214
~ApplicationSession()
Definition: application_session.cpp:73
frontend::SurfaceId create_surface(SurfaceCreationParameters const ¶ms, std::shared_ptr< frontend::EventSink > const &surface_sink) override
Definition: application_session.cpp:88
void resume_prompt_session() override
Definition: application_session.cpp:341
frontend::BufferStreamId create_buffer_stream(graphics::BufferProperties const ¶ms) override
Definition: application_session.cpp:352
Definition: surface_creation_parameters.h:42
void stop_prompt_session() override
Definition: application_session.cpp:331
Buffer creation properties.
Definition: buffer_properties.h:48
void force_requests_to_complete() override
Definition: application_session.cpp:268
std::string name() const override
Definition: application_session.cpp:258
Definition: output_properties_cache.h:46
Interface to a configuration of display cards and outputs.
Definition: display_configuration.h:166
std::shared_ptr< Surface > surface_after(std::shared_ptr< Surface > const &) const override
Definition: application_session.cpp:172