类
查看源码libs::RingBuffer
上游未提供类型说明。
构造与析构
1RingBuffer
libs::RingBuffer< T, Capacity, Overwrite >::RingBuffer ()=default
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:22成员函数
14back
const T * libs::RingBuffer< T, Capacity, Overwrite >::back () const noexcept
查看队尾元素(最新入队的元素,不弹出)。 队尾元素指针,队列为空时返回 nullptr。
libs/utils/ring_buffer/RingBuffer.hpp:140capacity
static constexpr std::size_t libs::RingBuffer< T, Capacity, Overwrite >::capacity () noexcept
返回实际可存储的元素个数。 由于需要留出一个空槽位,所以有效容量比模板参数少 1。
libs/utils/ring_buffer/RingBuffer.hpp:176clear
void libs::RingBuffer< T, Capacity, Overwrite >::clear () noexcept
清空缓冲区中的所有元素。 这个操作只会复位读写指针,不会改写底层存储。
libs/utils/ring_buffer/RingBuffer.hpp:152emplace
T * libs::RingBuffer< T, Capacity, Overwrite >::emplace () noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:75empty
bool libs::RingBuffer< T, Capacity, Overwrite >::empty () const noexcept
查询队列状态。
libs/utils/ring_buffer/RingBuffer.hpp:161front
const T * libs::RingBuffer< T, Capacity, Overwrite >::front () const noexcept
查看队头元素(不弹出)。 队头元素指针,队列为空时返回 nullptr。
libs/utils/ring_buffer/RingBuffer.hpp:128full
bool libs::RingBuffer< T, Capacity, Overwrite >::full () const noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:162next
static constexpr std::size_t libs::RingBuffer< T, Capacity, Overwrite >::next (const std::size_t idx) noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:185pop
T * libs::RingBuffer< T, Capacity, Overwrite >::pop () noexcept
返回队头元素指针并前移读指针。 调用方拿到的是缓冲区内部元素的直接地址,因此应该尽快消费,不要长期持有。
libs/utils/ring_buffer/RingBuffer.hpp:114pop
bool libs::RingBuffer< T, Capacity, Overwrite >::pop (T &out) noexcept
弹出一个元素到 out。 空队列时返回 false。这个接口适合调用方需要保留一份拷贝的情况。
libs/utils/ring_buffer/RingBuffer.hpp:98prev
static constexpr std::size_t libs::RingBuffer< T, Capacity, Overwrite >::prev (const std::size_t idx) noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:190push
bool libs::RingBuffer< T, Capacity, Overwrite >::push (Builder &&builder) noexcept
使用 builder 原地构造元素,避免额外拷贝。 builder 会直接拿到队头位置的引用,适合构造较大的对象或者需要分步骤填充对象的场景。
libs/utils/ring_buffer/RingBuffer.hpp:60push
bool libs::RingBuffer< T, Capacity, Overwrite >::push (const T &value) noexcept
直接把一个元素拷贝入队。 true 表示入队成功;如果缓冲区已满且不允许覆盖,则返回 false。
libs/utils/ring_buffer/RingBuffer.hpp:29size
std::size_t libs::RingBuffer< T, Capacity, Overwrite >::size () const noexcept
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:164成员变量
3buffer_
T libs::RingBuffer< T, Capacity, Overwrite >::buffer_[Capacity] [Capacity]
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:179head_
volatile std::size_t libs::RingBuffer< T, Capacity, Overwrite >::head_
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:181tail_
volatile std::size_t libs::RingBuffer< T, Capacity, Overwrite >::tail_
上游未提供说明。
libs/utils/ring_buffer/RingBuffer.hpp:182