19 #ifndef MIR_SHELL_APPLICATION_MANAGER_H_
20 #define MIR_SHELL_APPLICATION_MANAGER_H_
41 class SessionContainer;
46 class SnapshotStrategy;
47 class SessionEventSink;
48 class SessionListener;
49 struct SurfaceCreationParameters;
54 explicit SessionManager(std::shared_ptr<SurfaceFactory>
const& surface_factory,
55 std::shared_ptr<SessionContainer>
const& app_container,
56 std::shared_ptr<FocusSequence>
const& focus_sequence,
57 std::shared_ptr<FocusSetter>
const& focus_setter,
58 std::shared_ptr<SnapshotStrategy>
const& snapshot_strategy,
59 std::shared_ptr<SessionEventSink>
const& session_event_sink,
60 std::shared_ptr<SessionListener>
const& session_listener);
64 std::string
const& name, std::shared_ptr<frontend::EventSink>
const& sink);
65 virtual void close_session(std::shared_ptr<frontend::Session>
const& session);
72 void set_focus_to(std::shared_ptr<Session>
const& focus);
81 std::shared_ptr<SurfaceFactory>
const surface_factory;
82 std::shared_ptr<SessionContainer>
const app_container;
83 std::shared_ptr<FocusSequence>
const focus_sequence;
84 std::shared_ptr<FocusSetter>
const focus_setter;
85 std::shared_ptr<SnapshotStrategy>
const snapshot_strategy;
86 std::shared_ptr<SessionEventSink>
const session_event_sink;
87 std::shared_ptr<SessionListener>
const session_listener;
90 std::weak_ptr<Session> focus_application;
92 void set_focus_to_locked(std::unique_lock<std::mutex>
const& lock, std::shared_ptr<Session>
const& next_focus);
98 #endif // MIR_SHELL_APPLICATION_MANAGER_H_