Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Class template allocator

boost::interprocess::allocator

Synopsis

// In header: <boost/interprocess/allocators/allocator.hpp>

template<typename T, typename SegmentManager> 
class allocator {
public:
  // types
  typedef                                                                        ;
  typedef                                                          ;   
  typedef                                                                                     ;     
  typedef     ;        
  typedef  ;  
  typedef                                                                           ;      
  typedef                                                                           ;
  typedef                                                            ;      
  typedef                                                      ;
  typedef allocator,                                     ;        

  // member classes/structs/unions
  template<typename T2> 
  struct rebind {
    // types
    typedef allocator<  ;
  };

  // construct/copy/destruct
  ();
  (allocator &);
  template<typename T2> (allocator< );

  // public member functions
   () ;
   (,  = );
   (, );
   () ;
   () ;
   (, , 
                             , );
   (, , );
   (, , );
   ();
   ();
   (, );
   ();
   ();
   () ;
   () ;
  template<typename P>  (, );
   ();

  // friend functions
   (, );
};

Description

An STL compatible 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...

allocator public construct/copy/destruct

  1. ( segment_mngr);

    Constructor from the segment manager. Never throws

  2. (allocator & other);

    Constructor from other allocator. Never throws

  3. template<typename T2> (allocator<  other);

    Constructor from related allocator. Never throws

allocator public member functions

  1.  () ;

    Returns the segment manager. Never throws

  2.  ( count,  hint = );

    Allocates memory for an array of count elements. Throws boost::interprocess::bad_alloc if there is no enough memory

  3.  ( ptr, );

    Deallocates memory previously allocated. Never throws

  4.  () ;

    Returns the number of elements that could be allocated. Never throws

  5.  ( p) ;

    Returns maximum the number of objects the previously allocated memory pointed by p can hold. This size only works for memory allocated with allocate, allocation_command and allocate_many.

  6.  ( command, 
                                limit_size, 
                                prefer_in_recvd_out_size, 
                                reuse);
  7.  ( elem_size,  num_elements, 
                        chain);

    Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

  8.  ( elem_sizes,  n_elements, 
                        chain);

    Allocates n_elements elements, each one of size elem_sizes[i]in a contiguous block of memory. The elements must be deallocated

  9.  ( chain);

    Allocates many elements of size elem_size in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. The elements must be deallocated with deallocate(...)

  10.  ();

    Allocates just one object. Memory allocated with this function must be deallocated only with deallocate_one(). Throws boost::interprocess::bad_alloc if there is no enough memory

  11.  ( num_elements, 
                              chain);

    Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

  12.  ( p);

    Deallocates memory previously allocated with allocate_one(). You should never use deallocate_one to deallocate memory allocated with other functions different from allocate_one(). Never throws

  13.  ( chain);

    Allocates many elements of size == 1 in a contiguous block of memory. The minimum number to be allocated is min_elements, the preferred and maximum number is preferred_elements. The number of actually allocated elements is will be assigned to received_size. Memory allocated with this function must be deallocated only with deallocate_one().

  14.  ( value) ;

    Returns address of mutable object. Never throws

  15.  ( value) ;

    Returns address of non mutable object. Never throws

  16. template<typename P>  ( ptr,  p);

    Constructs an object Throws if T's constructor throws For backwards compatibility with libraries using C++03 allocators

  17.  ( ptr);

    Destroys object. Throws if object's destructor throws

allocator friend functions

  1.  ( alloc1,  alloc2);

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


PrevUpHomeNext