Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::interprocess::node_allocator< T, SegmentManager, NodesPerBlock > Singleton Reference

An STL node allocator that uses a segment manager as memory source. More...

#include <interprocess_fwd.hpp>

Inheritance diagram for boost::interprocess::node_allocator< T, SegmentManager, NodesPerBlock >:
Collaboration diagram for boost::interprocess::node_allocator< T, SegmentManager, NodesPerBlock >:

Classes

struct  rebind
 

Public Types

typedef
boost::interprocess::version_type
< node_allocator, 2 > 
version
 
typedef
SegmentManager::void_pointer 
void_pointer
 
typedef SegmentManager segment_manager
 
typedef node_allocator_base
< Version, T, SegmentManager,
NodesPerBlock > 
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::container::container_detail::transform_multiallocation_chain
< typename
SegmentManager::multiallocation_chain,
T
multiallocation_chain
 

Public Member Functions

 node_allocator (SegmentManager *segment_mngr)
 
template<class T2 >
 node_allocator (const node_allocator< T2, SegmentManager, NodesPerBlock > &other)
 
 BOOST_STATIC_ASSERT ((Version<=2))
 
void * get_node_pool () const
 Returns a pointer to the node pool. More...
 
segment_managerget_segment_manager () const
 Returns the segment manager. More...
 

Detailed Description

template<class T, class SegmentManager, std::size_t NodesPerBlock>
singleton boost::interprocess::node_allocator< T, SegmentManager, NodesPerBlock >

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 node allocator shares a segregated storage between all instances of node_allocator with equal sizeof(T) placed in the same segment group. NodesPerBlock is the number of nodes allocated at once when the allocator runs out of nodes

Member Typedef Documentation

typedef boost::intrusive:: pointer_traits<void_pointer>::template rebind_pointer<const T>::type boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::const_pointer
inherited
typedef ipcdetail::add_reference<const value_type>::type boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::const_reference
inherited
typedef segment_manager::difference_type boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::difference_type
inherited
typedef boost::container::container_detail::transform_multiallocation_chain<typename SegmentManager::multiallocation_chain, T> boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::multiallocation_chain
inherited
typedef boost::intrusive:: pointer_traits<void_pointer>::template rebind_pointer<T>::type boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::pointer
inherited
typedef ipcdetail::add_reference<value_type>::type boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::reference
inherited
typedef SegmentManager boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::segment_manager
inherited
typedef node_allocator_base<Version, T, SegmentManager, NodesPerBlock> boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::self_t
inherited
typedef segment_manager::size_type boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::size_type
inherited
typedef T boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::value_type
inherited
template<class T, class SegmentManager, std::size_t NodesPerBlock>
typedef boost::interprocess::version_type<node_allocator, 2> boost::interprocess::node_allocator< T, SegmentManager, NodesPerBlock >::version
typedef SegmentManager::void_pointer boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::void_pointer
inherited

Constructor & Destructor Documentation

template<class T, class SegmentManager, std::size_t NodesPerBlock>
boost::interprocess::node_allocator< T, SegmentManager, NodesPerBlock >::node_allocator ( SegmentManager *  segment_mngr)
inline
template<class T, class SegmentManager, std::size_t NodesPerBlock>
template<class T2 >
boost::interprocess::node_allocator< T, SegmentManager, NodesPerBlock >::node_allocator ( const node_allocator< T2, SegmentManager, NodesPerBlock > &  other)
inline

Member Function Documentation

boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::BOOST_STATIC_ASSERT ( (Version<=2)  )
inherited
void* boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::get_node_pool ( ) const
inlineinherited

Returns a pointer to the node pool.

Never throws

segment_manager* boost::interprocess::ipcdetail::node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::get_segment_manager ( ) const
inlineinherited

Returns the segment manager.

Never throws


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