Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Class template segment_manager_base

boost::interprocess::segment_manager_base

Synopsis

// In header: <boost/interprocess/segment_manager.hpp>

template<typename MemoryAlgorithm> 
class segment_manager_base : private  {
public:
  // types
  typedef segment_manager_base<  ;
  typedef            ;             
  typedef            ;             
  typedef                          ;         

  // construct/copy/destruct
  (, );

  // public member functions
   () ;
   () ;
   (, );
   ();
   () ;
   ();
   (, , );
   (, );
   ();
   ();
   ();
   ();
   ();
   ();
   () ;

  // public static functions
   ();

  // public data members
  static  ;
};

Description

This object is the public base class of segment manager. This class only depends on the memory allocation algorithm and implements all the allocation features not related to named or unique objects.

Storing a reference to segment_manager forces the holder class to be dependent on index types and character types. When such dependence is not desirable and only anonymous and raw allocations are needed, segment_manager_base is the correct answer.

segment_manager_base public construct/copy/destruct

  1. ( sz,  reserved_bytes);

    Constructor of the segment_manager_base

    "size" is the size of the memory segment where the basic segment manager is being constructed.

    "reserved_bytes" is the number of bytes after the end of the memory algorithm object itself that the memory algorithm will exclude from dynamic allocation

    Can throw

segment_manager_base public member functions

  1.  () ;

    Returns the size of the memory segment

  2.  () ;

    Returns the number of free bytes of the memory segment

  3.  ( nbytes, );

    Allocates nbytes bytes. This function is only used in single-segment management. Never throws

  4.  ();

    Returns a reference to the internal memory algorithm. This function is useful for custom memory algorithms that need additional configuration options after construction. Never throws. This function should be only used by advanced users.

  5.  () ;

    Returns a const reference to the internal memory algorithm. This function is useful for custom memory algorithms that need additional configuration options after construction. Never throws. This function should be only used by advanced users.

  6.  ( nbytes);

    Allocates nbytes bytes. Throws boost::interprocess::bad_alloc on failure

  7.  ( nbytes,  alignment, 
                            );

    Allocates nbytes bytes. This function is only used in single-segment management. Never throws

  8.  ( nbytes,  alignment);

    Allocates nbytes bytes. This function is only used in single-segment management. Throws bad_alloc when fails

  9.  ( addr);

    Deallocates the bytes allocated with allocate/allocate_many() pointed by addr

  10.  ( extra_size);

    Increases managed memory in extra_size bytes more. This only works with single-segment management.

  11.  ();

    Decreases managed memory to the minimum. This only works with single-segment management.

  12.  ();

    Returns the result of "all_memory_deallocated()" function of the used memory algorithm

  13.  ();

    Returns the result of "check_sanity()" function of the used memory algorithm

  14.  ();

    Writes to zero free memory (memory not yet allocated) of the memory algorithm

  15.  ( ptr) ;
    Returns the size of the buffer previously allocated pointed by ptr.

segment_manager_base public static functions

  1.  ( size);

    Obtains the minimum size needed by the segment manager

segment_manager_base public public data members

  1. static  ;

    This constant indicates the payload size associated with each allocation of the memory algorithm


PrevUpHomeNext