19 #ifndef MIR_SCENE_APPLICATION_MANAGER_H_
20 #define MIR_SCENE_APPLICATION_MANAGER_H_
37 class SessionListener;
42 class SessionEventSink;
43 class SessionContainer;
44 class SnapshotStrategy;
49 explicit SessionManager(std::shared_ptr<shell::SurfaceFactory>
const& surface_factory,
50 std::shared_ptr<SessionContainer>
const& app_container,
51 std::shared_ptr<shell::FocusSetter>
const& focus_setter,
52 std::shared_ptr<SnapshotStrategy>
const& snapshot_strategy,
53 std::shared_ptr<SessionEventSink>
const& session_event_sink,
54 std::shared_ptr<shell::SessionListener>
const& session_listener);
59 std::string
const& name,
60 std::shared_ptr<frontend::EventSink>
const& sink);
62 virtual void close_session(std::shared_ptr<frontend::Session>
const& session);
69 void set_focus_to(std::shared_ptr<shell::Session>
const& focus);
78 std::shared_ptr<shell::SurfaceFactory>
const surface_factory;
79 std::shared_ptr<SessionContainer>
const app_container;
80 std::shared_ptr<shell::FocusSetter>
const focus_setter;
81 std::shared_ptr<SnapshotStrategy>
const snapshot_strategy;
82 std::shared_ptr<SessionEventSink>
const session_event_sink;
83 std::shared_ptr<shell::SessionListener>
const session_listener;
86 std::weak_ptr<shell::Session> focus_application;
88 void set_focus_to_locked(std::unique_lock<std::mutex>
const& lock, std::shared_ptr<shell::Session>
const& next_focus);
94 #endif // MIR_SCENE_APPLICATION_MANAGER_H_
Definition: surface_creation_parameters.h:38
virtual std::shared_ptr< frontend::Session > open_session(pid_t client_pid, std::string const &name, std::shared_ptr< frontend::EventSink > const &sink)
Definition: session_manager.cpp:76
void handle_surface_created(std::shared_ptr< frontend::Session > const &session)
Definition: session_manager.cpp:168
void set_focus_to(std::shared_ptr< shell::Session > const &focus)
Definition: session_manager.cpp:113
Definition: session_manager.h:46
Definition: focus_controller.h:30
void focus_next()
Definition: session_manager.cpp:134
virtual ~SessionManager()
Definition: session_manager.cpp:56
virtual void close_session(std::shared_ptr< frontend::Session > const &session)
Definition: session_manager.cpp:119
SessionManager & operator=(const SessionManager &)=delete
Definition: int_wrapper.h:27
SessionManager(std::shared_ptr< shell::SurfaceFactory > const &surface_factory, std::shared_ptr< SessionContainer > const &app_container, std::shared_ptr< shell::FocusSetter > const &focus_setter, std::shared_ptr< SnapshotStrategy > const &snapshot_strategy, std::shared_ptr< SessionEventSink > const &session_event_sink, std::shared_ptr< shell::SessionListener > const &session_listener)
std::weak_ptr< shell::Session > focussed_application() const
Definition: session_manager.cpp:149
frontend::SurfaceId create_surface_for(std::shared_ptr< frontend::Session > const &session, shell::SurfaceCreationParameters const ¶ms)
Definition: session_manager.cpp:157