Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::interprocess::private_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::private_node_allocator< T, SegmentManager, NodesPerBlock >:
Collaboration diagram for boost::interprocess::private_node_allocator< T, SegmentManager, NodesPerBlock >:

Classes

struct  rebind
 

Public Types

typedef
boost::interprocess::version_type
< private_node_allocator, 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::difference_type 
difference_type
 
typedef
boost::container::container_detail::transform_multiallocation_chain
< typename
SegmentManager::multiallocation_chain,
T
multiallocation_chain
 

Public Member Functions

 private_node_allocator (SegmentManager *segment_mngr)
 
template<class T2 >
 private_node_allocator (const private_node_allocator< T2, SegmentManager, NodesPerBlock > &other)
 
segment_managerget_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...
 

Detailed Description

template<class T, class SegmentManager, std::size_t NodesPerBlock>
singleton boost::interprocess::private_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 allocator has its own node pool. NodesPerBlock is the number of nodes allocated at once when the allocator needs runs out of nodes

Member Typedef Documentation

typedef boost::intrusive:: pointer_traits<void_pointer>::template rebind_pointer<const T>::type boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::const_pointer
inherited
typedef ipcdetail::add_reference<const value_type>::type boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::const_reference
inherited
typedef boost::container::container_detail::transform_multiallocation_chain<typename SegmentManager::multiallocation_chain, T> boost::interprocess::ipcdetail::private_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::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::pointer
inherited
typedef ipcdetail::add_reference<value_type>::type boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::reference
inherited
typedef SegmentManager boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::segment_manager
inherited
typedef segment_manager::size_type boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::size_type
inherited
typedef T boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::value_type
inherited
template<class T, class SegmentManager, std::size_t NodesPerBlock>
typedef boost::interprocess::version_type<private_node_allocator, 2> boost::interprocess::private_node_allocator< T, SegmentManager, NodesPerBlock >::version
typedef SegmentManager::void_pointer boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::void_pointer
inherited

Constructor & Destructor Documentation

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

Member Function Documentation

node_pool_t* boost::interprocess::ipcdetail::private_node_allocator_base< Version, T, SegmentManager, NodesPerBlock >::get_node_pool ( ) const
inlineinherited

Returns the internal node pool. Never throws.

segment_manager* boost::interprocess::ipcdetail::private_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: