qb::allocator::pipe< T, _SIZE > Class Template Reference
Inheritance diagram for qb::allocator::pipe< T, _SIZE >:
qb::nocopy

Public Member Functions

std::size_t capacity () const
 
const auto data () const
 
std::size_t begin () const
 
std::size_t end () const
 
void free_front (std::size_t const size)
 
void free_back (std::size_t const size)
 
void reset (std::size_t const begin)
 
void reset ()
 
void free (std::size_t const size)
 
auto * allocate_back (std::size_t const size)
 
template<typename U , typename ... _Init>
U & allocate_back (_Init &&...init)
 
template<typename U , typename ... _Init>
U & allocate_size (std::size_t const size, _Init &&...init)
 
auto allocate (std::size_t const size)
 
template<typename U , typename ... _Init>
U & allocate (_Init &&...init)
 
template<typename U >
U & recycle_back (U const &data)
 
template<typename U >
U & recycle_back (U const &data, std::size_t const size)
 
template<typename U >
U & recycle (U const &data)
 
template<typename U >
U & recycle (U const &data, std::size_t const size)
 
void reorder ()
 

Protected Attributes

std::size_t _begin
 
std::size_t _end
 
bool flag_front
 
char __padding2__ [QB_LOCKFREE_CACHELINE_BYTES -(2 *sizeof(std::size_t)+sizeof(bool))]
 
std::size_t _capacity
 
std::size_t _factor
 
T * _data