Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > Class Template Reference

#include <adaptive_pool.hpp>

Inheritance diagram for boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >:
Collaboration diagram for boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >:

Classes

struct  node_pool
 
struct  rebind
 Obtains adaptive_pool_base from adaptive_pool_base. More...
 

Public Types

typedef
SegmentManager::void_pointer 
void_pointer
 
typedef SegmentManager segment_manager
 
typedef adaptive_pool_base
< Version, T, SegmentManager,
NodesPerBlock, MaxFreeBlocks,
OverheadPercent > 
self_t
 
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::difference_type 
difference_type
 
typedef
boost::interprocess::version_type
< adaptive_pool_base, Version > 
version
 
typedef
boost::container::container_detail::transform_multiallocation_chain
< typename
SegmentManager::multiallocation_chain,
T
multiallocation_chain
 

Public Member Functions

 BOOST_STATIC_ASSERT ((Version<=2))
 
 adaptive_pool_base (segment_manager *segment_mngr)
 Constructor from a segment manager. More...
 
 adaptive_pool_base (const adaptive_pool_base &other)
 Copy constructor from other adaptive_pool_base. More...
 
adaptive_pool_baseoperator= (const adaptive_pool_base &other)
 Assignment from other adaptive_pool_base. More...
 
template<class T2 >
 adaptive_pool_base (const adaptive_pool_base< Version, T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &other)
 Copy constructor from related adaptive_pool_base. More...
 
 ~adaptive_pool_base ()
 Destructor, removes node_pool_t from memory if its reference count reaches to zero. More...
 
void * get_node_pool () const
 Returns a pointer to the node pool. More...
 
segment_managerget_segment_manager () const
 Returns the segment manager. More...
 

Friends

void swap (self_t &alloc1, self_t &alloc2)
 Swaps allocators. More...
 

Member Typedef Documentation

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef boost::intrusive:: pointer_traits<void_pointer>::template rebind_pointer<const T>::type boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::const_pointer
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef ipcdetail::add_reference<const value_type>::type boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::const_reference
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef segment_manager::difference_type boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::difference_type
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef boost::container::container_detail::transform_multiallocation_chain<typename SegmentManager::multiallocation_chain, T> boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::multiallocation_chain
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef boost::intrusive:: pointer_traits<void_pointer>::template rebind_pointer<T>::type boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::pointer
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef ipcdetail::add_reference<value_type>::type boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::reference
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef SegmentManager boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::segment_manager
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef adaptive_pool_base<Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent> boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::self_t
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef segment_manager::size_type boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::size_type
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef T boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::value_type
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef boost::interprocess::version_type<adaptive_pool_base, Version> boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::version
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
typedef SegmentManager::void_pointer boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::void_pointer

Constructor & Destructor Documentation

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::adaptive_pool_base ( segment_manager segment_mngr)
inline

Constructor from a segment manager.

If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::adaptive_pool_base ( const adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &  other)
inline

Copy constructor from other adaptive_pool_base.

Increments the reference count of the associated node pool. Never throws

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
template<class T2 >
boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::adaptive_pool_base ( const adaptive_pool_base< Version, T2, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &  other)
inline

Copy constructor from related adaptive_pool_base.

If not present, constructs a node pool. Increments the reference count of the associated node pool. Can throw boost::interprocess::bad_alloc

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::~adaptive_pool_base ( )
inline

Destructor, removes node_pool_t from memory if its reference count reaches to zero.

Never throws

Member Function Documentation

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::BOOST_STATIC_ASSERT ( (Version<=2)  )
template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
void* boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::get_node_pool ( ) const
inline

Returns a pointer to the node pool.

Never throws

Referenced by boost::interprocess::ipcdetail::operator!=(), and boost::interprocess::ipcdetail::operator==().

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
segment_manager* boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::get_segment_manager ( ) const
inline

Returns the segment manager.

Never throws

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
adaptive_pool_base& boost::interprocess::ipcdetail::adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::operator= ( const adaptive_pool_base< Version, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent > &  other)
inline

Assignment from other adaptive_pool_base.

Friends And Related Function Documentation

template<unsigned int Version, class T, class SegmentManager, std::size_t NodesPerBlock, std::size_t MaxFreeBlocks, unsigned char OverheadPercent>
void swap ( self_t alloc1,
self_t alloc2 
)
friend

Swaps allocators.

Does not throw. If each allocator is placed in a different memory segment, the result is undefined.

Referenced by boost::interprocess::ipcdetail::adaptive_pool_base< 1, T, SegmentManager, NodesPerBlock, MaxFreeBlocks, OverheadPercent >::operator=().


The documentation for this class was generated from the following file: