16 #ifndef BLOOMBERG_QUANTUM_POOL_MANAGER_H 17 #define BLOOMBERG_QUANTUM_POOL_MANAGER_H 22 #include <type_traits> 24 #include <quantum/quantum_spinlock.h> 68 template <
typename... Args >
73 template <
typename... Args >
92 ssize_t _freeBlockIndex{-1};
93 size_t _numHeapAllocatedBlocks{0};
99 #include <quantum/impl/quantum_contiguous_pool_manager_impl.h> 101 #endif //BLOOMBERG_QUANTUM_POOL_MANAGER_H virtual ~ContiguousPoolManager()
Definition: quantum_contiguous_pool_manager_impl.h:62
const value_type * const_pointer
Definition: quantum_contiguous_pool_manager.h:46
uint16_t index_type
Definition: quantum_contiguous_pool_manager.h:50
ContiguousPoolManager< T > this_type
Definition: quantum_contiguous_pool_manager.h:43
Provides fast (quasi zero-time) in-place allocation for STL containers. Objects are allocated from a ...
Definition: quantum_contiguous_pool_manager.h:40
Definition: quantum_buffer_impl.h:22
size_t allocatedBlocks() const
Definition: quantum_contiguous_pool_manager_impl.h:180
bool isFull() const
Definition: quantum_contiguous_pool_manager_impl.h:192
size_t allocatedHeapBlocks() const
Definition: quantum_contiguous_pool_manager_impl.h:186
void dispose(pointer p)
Definition: quantum_contiguous_pool_manager_impl.h:173
ContiguousPoolManager & operator=(const this_type &)=delete
value_type & reference
Definition: quantum_contiguous_pool_manager.h:47
value_type * pointer
Definition: quantum_contiguous_pool_manager.h:45
void construct(T *p, Args &&... args)
Definition: quantum_contiguous_pool_manager_impl.h:109
T value_type
Definition: quantum_contiguous_pool_manager.h:44
const value_type & const_reference
Definition: quantum_contiguous_pool_manager.h:48
void deallocate(pointer p, size_type=1)
Definition: quantum_contiguous_pool_manager_impl.h:142
void setBuffer(aligned_type *buffer, index_type size)
Definition: quantum_contiguous_pool_manager_impl.h:68
bool isEmpty() const
Definition: quantum_contiguous_pool_manager_impl.h:198
pointer create(Args &&... args)
Definition: quantum_contiguous_pool_manager_impl.h:165
pointer allocate(size_type=1, const_pointer=0)
Definition: quantum_contiguous_pool_manager_impl.h:125
size_type max_size() const
Definition: quantum_contiguous_pool_manager_impl.h:102
pointer address(reference x) const
Definition: quantum_contiguous_pool_manager_impl.h:90
std::aligned_storage< sizeof(T), alignof(T)> storage_type
Definition: quantum_contiguous_pool_manager.h:51
ContiguousPoolManager()
Definition: quantum_contiguous_pool_manager_impl.h:28
storage_type::type aligned_type
Definition: quantum_contiguous_pool_manager.h:52
void destroy(pointer p)
Definition: quantum_contiguous_pool_manager_impl.h:115
size_t size_type
Definition: quantum_contiguous_pool_manager.h:49