12# pragma clang diagnostic push
13# pragma clang diagnostic ignored "-Wold-style-cast"
17# pragma clang diagnostic pop
29 class BufferPool :
public std::enable_shared_from_this<BufferPool> {
40#if __cplusplus >= 201703L
53 _queue.enqueue(std::move(buffer));
一个缓冲区池。 从这个池中弹出的缓冲区在销毁时会自动返回到池中, 这样分配的内存可以被重用。
Buffer Pop()
从队列中弹出一个缓冲区,如果队列为空,则创建一个新的缓冲区。
BufferPool(size_t estimated_size)
void Push(Buffer &&buffer)
moodycamel::ConcurrentQueue< Buffer > _queue
一块原始数据。 请注意,如果需要更多容量,则会分配一个新的内存块,并 删除旧的内存块。这意味着默认情况下,缓冲区只能增长。要释放内存,使用 clear 或 pop。
std::weak_ptr< BufferPool > _parent_pool