Boost.Interprocess Header Reference
Описывает адаптивный_пул объединенной совместной памяти STL совместимый распределитель
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock, 
             std::size_t MaxFreeBlocks, unsigned char OverheadPercent> 
      class adaptive_pool;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator==(const adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const adaptive_pool< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator!=(const adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const adaptive_pool< T, S, NodesPerBlock, F, OP > &);
  }
}Описывает распределитель, который выделяет части буфера памяти фиксированного размера (общая память, отображенный файл).
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager> class allocator;
    template<typename T, typename SegmentManager> 
      bool operator==(const allocator< T, SegmentManager > &, 
                      const allocator< T, SegmentManager > &);
    template<typename T, typename SegmentManager> 
      bool operator!=(const allocator< T, SegmentManager > &, 
                      const allocator< T, SegmentManager > &);
  }
}Описывает cached_adaptive_pool объединенную общую память STL совместимый распределитель
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock, 
             std::size_t MaxFreeBlocks, unsigned char OverheadPercent> 
      class cached_adaptive_pool;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             std::size_t OP> 
      bool operator==(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             std::size_t OP> 
      bool operator!=(const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const cached_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
  }
}Описывает кэшированный_cached_node_allocator объединенную общую память STL совместимый распределитель
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock> 
      class cached_node_allocator;
    template<typename T, typename S, std::size_t NPC> 
      bool operator==(const cached_node_allocator< T, S, NPC > &, 
                      const cached_node_allocator< T, S, NPC > &);
    template<typename T, typename S, std::size_t NPC> 
      bool operator!=(const cached_node_allocator< T, S, NPC > &, 
                      const cached_node_allocator< T, S, NPC > &);
  }
}Описание node_allocator pooled shared memory STL
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock> 
      class node_allocator;
    template<typename T, typename S, std::size_t NPC> 
      bool operator==(const node_allocator< T, S, NPC > &, 
                      const node_allocator< T, S, NPC > &);
    template<typename T, typename S, std::size_t NPC> 
      bool operator!=(const node_allocator< T, S, NPC > &, 
                      const node_allocator< T, S, NPC > &);
  }
}Описывает private_adaptive_pool_base Объединенная общая память STL совместимый распределитель
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock, 
             std::size_t MaxFreeBlocks, unsigned char OverheadPercent> 
      class private_adaptive_pool;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator==(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator!=(const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &, 
                      const private_adaptive_pool< T, S, NodesPerBlock, F, OP > &);
  }
}Описывает частный_node_allocator_base Объединенная общая память STL совместимый распределитель
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager, std::size_t NodesPerBlock> 
      class private_node_allocator;
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator==(const private_node_allocator< T, S, NodesPerBlock, F, OP > &, 
                      const private_node_allocator< T, S, NodesPerBlock, F, OP > &);
    template<typename T, typename S, std::size_t NodesPerBlock, std::size_t F, 
             unsigned char OP> 
      bool operator!=(const private_node_allocator< T, S, NodesPerBlock, F, OP > &, 
                      const private_node_allocator< T, S, NodesPerBlock, F, OP > &);
  }
}Описывает функцию, которая создает анонимную общую память, которая может быть разделена между разветвленными процессами
namespace boost {
  namespace interprocess {
    mapped_region anonymous_shared_memory(std::size_t, void * = 0);
  }
}Описывает нумерацию ошибок межпроцессных классов
namespace boost {
  namespace interprocess {
    enum error_code_t { no_error = = 0, system_error, other_error, 
                        security_error, read_only_error, io_error, path_error, 
                        not_found_error, busy_error, already_exists_error, 
                        not_empty_error, is_directory_error, 
                        out_of_space_error, out_of_memory_error, 
                        out_of_resource_error, lock_error, sem_error, 
                        mode_error, size_error, corrupted_error, 
                        not_such_file_or_directory, invalid_argument, 
                        timeout_when_locking_error, 
                        timeout_when_waiting_error, owner_dead_error };
    typedef int native_error_t;
  }
}Описывает классы file_mapping и mapped region
namespace boost {
  namespace interprocess {
    class file_mapping;
  }
}Описывает индексный адаптер импульса::map-контейнер, чтобы использовать его в качестве имени/общего индекса памяти
namespace boost {
  namespace interprocess {
    template<typename MapConfig> class flat_map_index;
  }
}Описывает индексный адаптер импульса::intrusive::set контейнер, чтобы использовать его в качестве имени/общего индекса памяти
namespace boost {
  namespace interprocess {
    template<typename MapConfig> class iset_index;
  }
}Описывает адаптер индекса импульса::intrusive::unordered_set container, чтобы использовать его в качестве имени/общего индекса памяти
namespace boost {
  namespace interprocess {
    template<typename MapConfig> class iunordered_set_index;
  }
}Описывает индексный адаптер импульса::map-контейнер, чтобы использовать его в качестве имени/общего индекса памяти
namespace boost {
  namespace interprocess {
    template<typename MapConfig> class map_index;
  }
}Описывает адаптер нулевого индекса, так что если мы не хотим строить названные объекты, мы можем использовать этот тип нулевого индекса для экономии ресурсов.
namespace boost {
  namespace interprocess {
    template<typename MapConfig> class null_index;
  }
}Описывает адаптер индекса импульса::unordered_map контейнер, чтобы использовать его как имя / общий индекс памяти
namespace boost {
  namespace interprocess {
    template<typename MapConfig> class unordered_map_index;
  }
}Этот файл заголовка вперед объявляет основные типы межпроцессов:
Следующие механизмы и замки синхронизации:
Следующие семейства мутекс:
Следующие распределители:
Следующие алгоритмы распределения:
Следующие типы индексов:
Следующие управляемые типы памяти:
Следующие виды исключений:
Следующие типы потоков:
Следующие типы умных указателей:
Следующие типы межпроцессных коммуникаций:
Описывает очередь сообщений между процессами. Этот класс позволяет отправлять сообщения между процессами и позволяет блокировать, не блокировать и синхронизировать отправку и получение.
namespace boost {
  namespace interprocess {
    template<typename VoidPointer> class message_queue_t;
    typedef message_queue_t< offset_ptr< void > > message_queue;
  }
}namespace boost {
  namespace interprocess {
    template<typename CharType, typename AllocationAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class basic_managed_shared_memory;
    typedef basic_managed_shared_memory< char,rbtree_best_fit< mutex_family >,iset_index > managed_shared_memory;
    typedef basic_managed_shared_memory< wchar_t,rbtree_best_fit< mutex_family >,iset_index > wmanaged_shared_memory;
    typedef basic_managed_shared_memory< char,rbtree_best_fit< mutex_family, void * >,iset_index > fixed_managed_shared_memory;
    typedef basic_managed_shared_memory< wchar_t,rbtree_best_fit< mutex_family, void * >,iset_index > wfixed_managed_shared_memory;
  }
}Описывает картографический класс региона
namespace boost {
  namespace interprocess {
    class mapped_region;
  }
}Описывает наиболее подходящий алгоритм, основанный на навязчивом красно-черном дереве, используемом для распределения объектов в общей памяти. Этот класс предназначен в качестве базового класса для реализации одного сегмента и нескольких сегментов.
namespace boost {
  namespace interprocess {
    template<typename MutexFamily, typename VoidPointer, 
             std::size_t MemAlignment> 
      class rbtree_best_fit;
  }
}Описывает алгоритм последовательной подгонки, используемый для распределения объектов в общей памяти.
namespace boost {
  namespace interprocess {
    template<typename MutexFamily, typename VoidPointer> class simple_seq_fit;
  }
}Описывает умный указатель, который хранит смещение между этим указателем и целевым указателем, называемым offset_ptr.
namespace boost {
  namespace interprocess {
    template<typename PointedType, typename DifferenceType, 
             typename OffsetType, std::size_t OffsetAlignment> 
      class offset_ptr;
    template<typename E, typename T, typename W, typename X, typename Y, 
             std::size_t Z> 
      std::basic_ostream< E, T > & 
      operator<<(std::basic_ostream< E, T > &, 
                 offset_ptr< W, X, Y, Z > const &);
    template<typename E, typename T, typename W, typename X, typename Y, 
             std::size_t Z> 
      std::basic_istream< E, T > & 
      operator>>(std::basic_istream< E, T > &, offset_ptr< W, X, Y, Z > &);
    
    template<typename T1, typename P1, typename O1, std::size_t A1, 
             typename T2, typename P2, typename O2, std::size_t A2> 
      boost::interprocess::offset_ptr< T1, P1, O1, A1 > 
      static_pointer_cast(const boost::interprocess::offset_ptr< T2, P2, O2, A2 > & r);
    
    template<typename T1, typename P1, typename O1, std::size_t A1, 
             typename T2, typename P2, typename O2, std::size_t A2> 
      boost::interprocess::offset_ptr< T1, P1, O1, A1 > 
      const_pointer_cast(const boost::interprocess::offset_ptr< T2, P2, O2, A2 > & r);
    
    template<typename T1, typename P1, typename O1, std::size_t A1, 
             typename T2, typename P2, typename O2, std::size_t A2> 
      boost::interprocess::offset_ptr< T1, P1, O1, A1 > 
      dynamic_pointer_cast(const boost::interprocess::offset_ptr< T2, P2, O2, A2 > & r);
    
    template<typename T1, typename P1, typename O1, std::size_t A1, 
             typename T2, typename P2, typename O2, std::size_t A2> 
      boost::interprocess::offset_ptr< T1, P1, O1, A1 > 
      reinterpret_pointer_cast(const boost::interprocess::offset_ptr< T2, P2, O2, A2 > & r);
  }
}Описывает класс разрешений
namespace boost {
  namespace interprocess {
    class permissions;
  }
}Описывает объект, помещенный в сегмент памяти, который предоставляет возможности выделения именованных объектов для выделений одного и нескольких сегментов.
namespace boost {
  namespace interprocess {
    template<typename MemoryAlgorithm> class segment_manager_base;
    template<typename CharType, typename MemoryAlgorithm, 
             template< class IndexConfig > class IndexType> 
      class segment_manager;
  }
}Описывает класс управления объектами общей памяти.
namespace boost {
  namespace interprocess {
    class shared_memory_object;
  }
}Описывает функтор для удаления объектов из сегмента.
namespace boost {
  namespace interprocess {
    template<typename T, typename SegmentManager> class deleter;
  }
}Описывает утилиту для формирования общего указателя из этого
Описывает навязчивый указатель собственности.
namespace boost {
  namespace interprocess {
    template<typename T, typename VoidPointer> class intrusive_ptr;
    template<typename T, typename U, typename VP> 
      bool operator==(intrusive_ptr< T, VP > const &, 
                      intrusive_ptr< U, VP > const &);
    template<typename T, typename U, typename VP> 
      bool operator!=(intrusive_ptr< T, VP > const &, 
                      intrusive_ptr< U, VP > const &);
    template<typename T, typename VP> 
      bool operator==(intrusive_ptr< T, VP > const &, 
                      const typename intrusive_ptr< T, VP >::pointer &);
    template<typename T, typename VP> 
      bool operator!=(intrusive_ptr< T, VP > const &, 
                      const typename intrusive_ptr< T, VP >::pointer &);
    template<typename T, typename VP> 
      bool operator==(const typename intrusive_ptr< T, VP >::pointer &, 
                      intrusive_ptr< T, VP > const &);
    template<typename T, typename VP> 
      bool operator!=(const typename intrusive_ptr< T, VP >::pointer &, 
                      intrusive_ptr< T, VP > const &);
    template<typename T, typename VP> 
      bool operator<(intrusive_ptr< T, VP > const &, 
                     intrusive_ptr< T, VP > const &);
    template<typename T, typename VP> 
      void swap(intrusive_ptr< T, VP > &, intrusive_ptr< T, VP > &);
    template<typename E, typename T, typename Y, typename VP> 
      std::basic_ostream< E, T > & 
      operator<<(std::basic_ostream< E, T > & os, 
                 intrusive_ptr< Y, VP > const & p);
    template<typename T, typename VP> 
      boost::interprocess::intrusive_ptr< T, VP >::pointer 
      to_raw_pointer(intrusive_ptr< T, VP >);
  }
}Описывает умный указатель shared_ptr
namespace boost {
  namespace interprocess {
    template<typename T, typename VoidAllocator, typename Deleter> 
      class enable_shared_from_this;
    template<typename T, typename VoidAllocator, typename Deleter> 
      class shared_ptr;
    template<typename T, typename ManagedMemory> struct managed_shared_ptr;
    template<typename T, typename VoidAllocator, typename Deleter, typename U, 
             typename VoidAllocator2, typename Deleter2> 
      bool operator==(shared_ptr< T, VoidAllocator, Deleter > const & a, 
                      shared_ptr< U, VoidAllocator2, Deleter2 > const & b);
    template<typename T, typename VoidAllocator, typename Deleter, typename U, 
             typename VoidAllocator2, typename Deleter2> 
      bool operator!=(shared_ptr< T, VoidAllocator, Deleter > const & a, 
                      shared_ptr< U, VoidAllocator2, Deleter2 > const & b);
    template<typename T, typename VoidAllocator, typename Deleter, typename U, 
             typename VoidAllocator2, typename Deleter2> 
      bool operator<(shared_ptr< T, VoidAllocator, Deleter > const & a, 
                     shared_ptr< U, VoidAllocator2, Deleter2 > const & b);
    template<typename T, typename VoidAllocator, typename Deleter> 
      void swap(shared_ptr< T, VoidAllocator, Deleter > & a, 
                shared_ptr< T, VoidAllocator, Deleter > & b);
    template<typename T, typename VoidAllocator, typename Deleter, typename U> 
      shared_ptr< T, VoidAllocator, Deleter > 
      static_pointer_cast(shared_ptr< U, VoidAllocator, Deleter > const & r);
    template<typename T, typename VoidAllocator, typename Deleter, typename U> 
      shared_ptr< T, VoidAllocator, Deleter > 
      const_pointer_cast(shared_ptr< U, VoidAllocator, Deleter > const & r);
    template<typename T, typename VoidAllocator, typename Deleter, typename U> 
      shared_ptr< T, VoidAllocator, Deleter > 
      dynamic_pointer_cast(shared_ptr< U, VoidAllocator, Deleter > const & r);
    template<typename T, typename VoidAllocator, typename Deleter> 
      T * to_raw_pointer(shared_ptr< T, VoidAllocator, Deleter > const & p);
    template<typename E, typename T, typename Y, typename VoidAllocator, 
             typename Deleter> 
      std::basic_ostream< E, T > & 
      operator<<(std::basic_ostream< E, T > & os, 
                 shared_ptr< Y, VoidAllocator, Deleter > const & p);
    template<typename T, typename ManagedMemory> 
      managed_shared_ptr< T, ManagedMemory >::type 
      make_managed_shared_ptr(T *, ManagedMemory &);
    template<typename T, typename ManagedMemory> 
      managed_shared_ptr< T, ManagedMemory >::type 
      make_managed_shared_ptr(T *, ManagedMemory &, const std::nothrow_t &);
  }
}Этот заголовок предоставляет утилиты для определения уникального_ptr, который хорошо играет с управляемыми сегментами.
namespace boost {
  namespace interprocess {
    template<typename T, typename ManagedMemory> struct managed_unique_ptr;
    template<typename T, typename ManagedMemory> 
      managed_unique_ptr< T, ManagedMemory >::type 
      make_managed_unique_ptr(T *, ManagedMemory &);
  }
}Описывает умный указатель weak_ptr.
namespace boost {
  namespace interprocess {
    template<typename T, typename A, typename D> class weak_ptr;
    template<typename T, typename ManagedMemory> struct managed_weak_ptr;
    template<typename T, typename A, typename D, typename U, typename A2, 
             typename D2> 
      bool operator<(weak_ptr< T, A, D > const & a, 
                     weak_ptr< U, A2, D2 > const & b);
    template<typename T, typename A, typename D> 
      void swap(weak_ptr< T, A, D > & a, weak_ptr< T, A, D > & b);
    template<typename T, typename ManagedMemory> 
      managed_weak_ptr< T, ManagedMemory >::type 
      make_managed_weak_ptr(T *, ManagedMemory &);
  }
}Этот файл определяет классы basic_vectorbuf, basic_ivectorstream, basic_ovectorstream и basic_vectorstream. Эти классы представляют собой потоки и потоки, источниками или назначениями которых являются векторы, подобные STL, которые могут быть заменены внешними векторами, чтобы избежать ненужных выделений / копий.
namespace boost {
  namespace interprocess {
    template<typename CharVector, typename CharTraits> class basic_vectorbuf;
    template<typename CharVector, typename CharTraits> 
      class basic_ivectorstream;
    template<typename CharVector, typename CharTraits> 
      class basic_ovectorstream;
    template<typename CharVector, typename CharTraits> class basic_vectorstream;
  }
}Описывает класс, который обертывает возможности блокировки файлов.
namespace boost {
  namespace interprocess {
    class file_lock;
  }
}Описывает переменные interprocess_condition class
namespace boost {
  namespace interprocess {
    class interprocess_condition;
  }
}Описывает класс mutex, который может быть помещен в память, разделяемую несколькими процессами.
namespace boost {
  namespace interprocess {
    class interprocess_mutex;
  }
}Классы interprocess_recursive_mutex и shared_recursive_try_mutex
namespace boost {
  namespace interprocess {
    class interprocess_recursive_mutex;
  }
}Описывает класс interprocess_semaphore для межпроцессной синхронизации
namespace boost {
  namespace interprocess {
    class interprocess_semaphore;
  }
}Описывает общий алгоритм соответствия семейства interprocess_mutex, используемый для распределения объектов в общей памяти.
namespace boost {
  namespace interprocess {
    struct mutex_family;
    struct null_mutex_family;
  }
}Описывает названный класс условий для синхронизации между процессами
namespace boost {
  namespace interprocess {
    class named_condition;
  }
}Описывает названный класс условий для синхронизации между процессами
namespace boost {
  namespace interprocess {
    class named_condition_any;
  }
}Назван класс mutex для синхронизации между процессами
namespace boost {
  namespace interprocess {
    class named_mutex;
  }
}Оригинальное название: Named_recursive_mutex Класс межпроцессной синхронизации
namespace boost {
  namespace interprocess {
    class named_recursive_mutex;
  }
}Описывает именуемый класс семафоров для межпроцессной синхронизации
namespace boost {
  namespace interprocess {
    class named_semaphore;
  }
}Описано название класса mutex для межпроцессной синхронизации
namespace boost {
  namespace interprocess {
    class named_sharable_mutex;
  }
}Описано название модернизируемого класса mutex для межпроцессной синхронизации
namespace boost {
  namespace interprocess {
    class named_upgradable_mutex;
  }
}Обсуждение Null_mutex классы
namespace boost {
  namespace interprocess {
    class null_mutex;
  }
}Описывает класс scoped_lock.
namespace boost {
  namespace interprocess {
    template<typename Mutex> class scoped_lock;
  }
}Описывает класс upgradable_lock, который служит для приобретения модифицируемого замка mutex.
namespace boost {
  namespace interprocess {
    template<typename SharableMutex> class sharable_lock;
  }
}Описывает класс upgradable_lock, который служит для приобретения модифицируемого замка mutex.
namespace boost {
  namespace interprocess {
    template<typename UpgradableMutex> class upgradable_lock;
  }
}Описывает класс, представляющий собой общую память нативных окон.
namespace boost {
  namespace interprocess {
    class windows_shared_memory;
  }
}Описывает класс, представляющий тип ключа xsi.
namespace boost {
  namespace interprocess {
    class xsi_key;
  }
}Описывает класс, представляющий собой общую память xsi.
namespace boost {
  namespace interprocess {
    class xsi_shared_memory;
  }
}