19 #ifndef MIR_CLIENT_CONNECTION_SURFACE_MAP_H_ 20 #define MIR_CLIENT_CONNECTION_SURFACE_MAP_H_ 24 #include <shared_mutex> 25 #include <unordered_map> 33 class PresentationChain;
49 void insert(
int buffer_id, std::shared_ptr<MirBuffer>
const&
buffer)
override;
50 void erase(
int buffer_id)
override;
51 std::shared_ptr<MirBuffer>
buffer(
int buffer_id)
const override;
54 std::shared_timed_mutex
mutable guard;
55 std::unordered_map<frontend::SurfaceId, std::shared_ptr<MirSurface>> surfaces;
56 std::shared_timed_mutex
mutable stream_guard;
57 std::unordered_map<frontend::BufferStreamId, std::shared_ptr<ClientBufferStream>> streams;
58 std::unordered_map<frontend::BufferStreamId, std::shared_ptr<MirPresentationChain>> chains;
59 std::shared_timed_mutex
mutable buffer_guard;
60 std::unordered_map<int, std::shared_ptr<MirBuffer>> buffers;
void with_all_streams_do(std::function< void(ClientBufferStream *)> const &) const override
Definition: surface_map.cpp:79
All things Mir.
Definition: atomic_callback.h:25
Definition: mir_surface.h:147
Definition: surface_map.h:40
void erase(frontend::SurfaceId surface_id)
Definition: surface_map.cpp:54
void insert(frontend::SurfaceId surface_id, std::shared_ptr< MirSurface > const &surface)
Definition: surface_map.cpp:48
Definition: connection_surface_map.h:34
std::shared_ptr< MirBuffer > buffer(int buffer_id) const override
Definition: surface_map.cpp:123
void with_stream_do(frontend::BufferStreamId stream_id, std::function< void(ClientBufferStream *)> const &exec) const override
Definition: surface_map.cpp:60
Definition: mir_presentation_chain.h:26
Definition: client_buffer_stream.h:68
void with_surface_do(frontend::SurfaceId surface_id, std::function< void(MirSurface *)> const &exec) const override
Definition: surface_map.cpp:29