An STL node allocator that uses a segment manager as memory source. More...
#include <interprocess_fwd.hpp>
Classes | |
struct | rebind |
Public Types | |
typedef boost::interprocess::version_type < private_adaptive_pool, 2 > | version |
typedef SegmentManager | segment_manager |
typedef SegmentManager::void_pointer | void_pointer |
typedef boost::intrusive::pointer_traits < void_pointer >::template rebind_pointer< T >::type | pointer |
typedef boost::intrusive::pointer_traits < void_pointer >::template rebind_pointer< const T > ::type | const_pointer |
typedef T | value_type |
typedef ipcdetail::add_reference < value_type >::type | reference |
typedef ipcdetail::add_reference < const value_type >::type | const_reference |
typedef segment_manager::size_type | size_type |
typedef segment_manager::size_type | difference_type |
typedef boost::container::container_detail::transform_multiallocation_chain < typename SegmentManager::multiallocation_chain, T > | multiallocation_chain |
Public Member Functions | |
private_adaptive_pool (SegmentManager *segment_mngr) | |
template<class T2 > | |
private_adaptive_pool (const private_adaptive_pool< T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &other) | |
segment_manager * | get_segment_manager () const |
Returns the segment manager. Never throws. More... | |
node_pool_t * | get_node_pool () const |
Returns the internal node pool. Never throws. More... | |
An STL node allocator that uses a segment manager as memory source.
The internal pointer type will of the same type (raw, smart) as "typename SegmentManager::void_pointer" type. This allows placing the allocator in shared memory, memory mapped-files, etc... This allocator has its own node pool.
NodesPerBlock is the minimum number of nodes of nodes allocated at once when the allocator needs runs out of nodes. MaxFreeBlocks is the maximum number of totally free blocks that the adaptive node pool will hold. The rest of the totally free blocks will be deallocated with the segment manager.
OverheadPercent is the (approximated) maximum size overhead (1-20%) of the allocator: (memory usable for nodes / total memory allocated from the segment manager)
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
typedef boost::interprocess::version_type<private_adaptive_pool, 2> boost::interprocess::private_adaptive_pool< T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::version |
|
inherited |
|
inline |
|
inline |
|
inlineinherited |
Returns the internal node pool. Never throws.
|
inlineinherited |
Returns the segment manager. Never throws.