21 #include <type_traits> 168 assert(idx >= 0 && idx <
length());
173 assert(idx >= 0 && idx <
length());
181 push(&data, &data + 1);
192 uint32_t n = std::distance(begin, end);
215 return reinterpret_cast<T*
>(p);
218 return reinterpret_cast<const T*
>(p);
222 return n /
sizeof(
T);
228 return n *
sizeof(
T);
static T * cast(uint8_t *p)
const T * bufferEnd() const
bool usingJEMalloc() noexcept
T & operator[](ssize_t idx)
static uint32_t smul(uint32_t n)
const uint8_t * tail() const
void advance(std::size_t amount)
const uint8_t * data() const
void reserve(std::size_t minHeadroom, std::size_t minTailroom)
uint32_t tailroom() const
—— Concurrent Priority Queue Implementation ——
const uint8_t * bufferEnd() const
std::size_t capacity() const
std::size_t tailroom() const
uint8_t * writableBuffer()
uint32_t capacity() const
const IOBuf * ioBuf() const
constexpr std::decay< T >::type copy(T &&value) noexcept(noexcept(typename std::decay< T >::type(std::forward< T >(value))))
void push(IT begin, IT end)
void push_back(const T &data)
void prepend(std::size_t amount)
std::size_t headroom() const
std::size_t length() const
const value_type * const_iterator
void retreat(std::size_t amount)
static const char *const value
const value_type & const_reference
static uint32_t sdiv(uint32_t n)
void trimStart(uint32_t n)
TypedIOBuf & operator=(TypedIOBuf &&)=default
static const T * cast(const uint8_t *p)
void trimStart(std::size_t amount)
const T & operator[](ssize_t idx) const
void trimEnd(std::size_t amount)
const uint8_t * buffer() const
void reserve(uint32_t minHeadroom, uint32_t minTailroom)
void reserve(uint32_t minTailroom)
void append(std::size_t amount)
uint32_t headroom() const