19 #ifndef MIR_SHELL_APPLICATION_SESSION_H_
20 #define MIR_SHELL_APPLICATION_SESSION_H_
36 class SnapshotStrategy;
37 class SessionListener;
43 std::shared_ptr<SurfaceFactory>
const& surface_factory,
44 std::string
const& session_name,
45 std::shared_ptr<SnapshotStrategy>
const& snapshot_strategy,
46 std::shared_ptr<SessionListener>
const& session_listener,
47 std::shared_ptr<frontend::EventSink>
const& sink);
58 std::string
name()
const;
75 std::shared_ptr<SurfaceFactory>
const surface_factory;
76 std::string
const session_name;
77 std::shared_ptr<SnapshotStrategy>
const snapshot_strategy;
78 std::shared_ptr<SessionListener>
const session_listener;
79 std::shared_ptr<frontend::EventSink>
const event_sink;
83 std::atomic<int> next_surface_id;
85 typedef std::map<frontend::SurfaceId, std::shared_ptr<Surface>> Surfaces;
87 std::mutex
mutable surfaces_mutex;
94 #endif // MIR_SHELL_APPLICATION_SESSION_H_