19 #ifndef MIR_CLIENT_BUFFER_VAULT_H_
20 #define MIR_CLIENT_BUFFER_VAULT_H_
32 namespace protobuf {
class Buffer; }
54 std::shared_ptr<ClientBufferFactory>
const&,
55 std::shared_ptr<ServerBufferRequests>
const&,
57 unsigned int initial_nbuffers);
61 void deposit(std::shared_ptr<ClientBuffer>
const& buffer);
67 std::shared_ptr<ClientBufferFactory>
const factory;
68 std::shared_ptr<ServerBufferRequests>
const server_requests;
75 std::shared_ptr<ClientBuffer> buffer;
80 std::map<int, BufferEntry> buffers;
81 std::deque<NoTLSPromise<std::shared_ptr<ClientBuffer>>> promises;
All things Mir.
Definition: atomic_callback.h:25
A factory for creating client-side representations of graphics buffers.
Definition: client_buffer_factory.h:38
ServerBufferRequests()=default
Definition: buffer_vault.h:50
NoTLSFuture< std::shared_ptr< ClientBuffer > > withdraw()
Definition: buffer_vault.cpp:58
virtual ~ServerBufferRequests()=default
~BufferVault()
Definition: buffer_vault.cpp:52
Owner
Definition: buffer_vault.cpp:31
virtual void submit_buffer(int buffer_id, ClientBuffer &)=0
void wire_transfer_inbound(protobuf::Buffer const &)
Definition: buffer_vault.cpp:109
void deposit(std::shared_ptr< ClientBuffer > const &buffer)
Definition: buffer_vault.cpp:79
virtual void free_buffer(int buffer_id)=0
Definition: buffer_vault.h:35
Definition: no_tls_future-inl.h:97
Definition: client_buffer.h:52
virtual void allocate_buffer(geometry::Size size, MirPixelFormat format, int usage)=0
void wire_transfer_outbound(std::shared_ptr< ClientBuffer > const &buffer)
Definition: buffer_vault.cpp:91
void set_size(geometry::Size)
Definition: buffer_vault.cpp:156
ServerBufferRequests & operator=(ServerBufferRequests const &)=delete
int const size
Definition: make_socket_rpc_channel.cpp:51
BufferVault(std::shared_ptr< ClientBufferFactory > const &, std::shared_ptr< ServerBufferRequests > const &, geometry::Size size, MirPixelFormat format, int usage, unsigned int initial_nbuffers)
Definition: buffer_vault.cpp:38