summaryrefslogtreecommitdiff
path: root/src/third_party/boost-1.69.0/boost/interprocess/interprocess_fwd.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/boost-1.69.0/boost/interprocess/interprocess_fwd.hpp')
-rw-r--r--src/third_party/boost-1.69.0/boost/interprocess/interprocess_fwd.hpp516
1 files changed, 516 insertions, 0 deletions
diff --git a/src/third_party/boost-1.69.0/boost/interprocess/interprocess_fwd.hpp b/src/third_party/boost-1.69.0/boost/interprocess/interprocess_fwd.hpp
new file mode 100644
index 00000000000..882256e9344
--- /dev/null
+++ b/src/third_party/boost-1.69.0/boost/interprocess/interprocess_fwd.hpp
@@ -0,0 +1,516 @@
+//////////////////////////////////////////////////////////////////////////////
+//
+// (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost
+// Software License, Version 1.0. (See accompanying file
+// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+//
+// See http://www.boost.org/libs/interprocess for documentation.
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#ifndef BOOST_INTERPROCESS_FWD_HPP
+#define BOOST_INTERPROCESS_FWD_HPP
+
+#ifndef BOOST_CONFIG_HPP
+# include <boost/config.hpp>
+#endif
+#ifndef BOOST_CSTDINT_HPP
+# include <boost/cstdint.hpp>
+#endif
+#
+#if defined(BOOST_HAS_PRAGMA_ONCE)
+# pragma once
+#endif
+
+#include <boost/interprocess/detail/std_fwd.hpp>
+
+//! \file
+//! This header file forward declares the basic interprocess types:
+//! - boost::interprocess::offset_ptr;
+//! - boost::interprocess::permissions;
+//! - boost::interprocess::mapped_region;
+//! - boost::interprocess::file_mapping;
+//! - boost::interprocess::shared_memory_object;
+//! - boost::interprocess::windows_shared_memory;
+//! - boost::interprocess::xsi_shared_memory;
+//!
+//! The following synchronization mechanisms and locks:
+//! - boost::interprocess::null_mutex;
+//! - boost::interprocess::interprocess_mutex;
+//! - boost::interprocess::interprocess_recursive_mutex;
+//! - boost::interprocess::interprocess_semaphore;
+//! - boost::interprocess::named_mutex;
+//! - boost::interprocess::named_recursive_mutex;
+//! - boost::interprocess::named_semaphore;
+//! - boost::interprocess::interprocess_sharable_mutex;
+//! - boost::interprocess::interprocess_condition;
+//! - boost::interprocess::scoped_lock;
+//! - boost::interprocess::sharable_lock;
+//! - boost::interprocess::upgradable_lock;
+//!
+//! The following mutex families:
+//! - boost::interprocess::mutex_family;
+//! - boost::interprocess::null_mutex_family;
+//!
+//! The following allocators:
+//! - boost::interprocess::allocator;
+//! - boost::interprocess::node_allocator;
+//! - boost::interprocess::private_node_allocator;
+//! - boost::interprocess::cached_node_allocator;
+//! - boost::interprocess::adaptive_pool;
+//! - boost::interprocess::private_adaptive_pool;
+//! - boost::interprocess::cached_adaptive_pool;
+//!
+//! The following allocation algorithms:
+//! - boost::interprocess::simple_seq_fit;
+//! - boost::interprocess::rbtree_best_fit;
+//!
+//! The following index types:
+//! - boost::interprocess::flat_map_index;
+//! - boost::interprocess::iset_index;
+//! - boost::interprocess::iunordered_set_index;
+//! - boost::interprocess::map_index;
+//! - boost::interprocess::null_index;
+//! - boost::interprocess::unordered_map_index;
+//!
+//! The following managed memory types:
+//! - boost::interprocess::segment_manager;
+//! - boost::interprocess::basic_managed_external_buffer
+//! - boost::interprocess::managed_external_buffer
+//! - boost::interprocess::wmanaged_external_buffer
+//! - boost::interprocess::basic_managed_shared_memory
+//! - boost::interprocess::managed_shared_memory
+//! - boost::interprocess::wmanaged_shared_memory
+//! - boost::interprocess::basic_managed_windows_shared_memory
+//! - boost::interprocess::managed_windows_shared_memory
+//! - boost::interprocess::wmanaged_windows_shared_memory
+//! - boost::interprocess::basic_managed_xsi_shared_memory
+//! - boost::interprocess::managed_xsi_shared_memory
+//! - boost::interprocess::wmanaged_xsi_shared_memory
+//! - boost::interprocess::fixed_managed_shared_memory
+//! - boost::interprocess::wfixed_managed_shared_memory
+//! - boost::interprocess::basic_managed_heap_memory
+//! - boost::interprocess::managed_heap_memory
+//! - boost::interprocess::wmanaged_heap_memory
+//! - boost::interprocess::basic_managed_mapped_file
+//! - boost::interprocess::managed_mapped_file
+//! - boost::interprocess::wmanaged_mapped_file
+//!
+//! The following exception types:
+//! - boost::interprocess::interprocess_exception
+//! - boost::interprocess::lock_exception
+//! - boost::interprocess::bad_alloc
+//!
+//! The following stream types:
+//! - boost::interprocess::basic_bufferbuf
+//! - boost::interprocess::basic_ibufferstream
+//! - boost::interprocess::basic_obufferstream
+//! - boost::interprocess::basic_bufferstream
+//! - boost::interprocess::basic_vectorbuf
+//! - boost::interprocess::basic_ivectorstream
+//! - boost::interprocess::basic_ovectorstream
+//! - boost::interprocess::basic_vectorstream
+//!
+//! The following smart pointer types:
+//! - boost::interprocess::scoped_ptr
+//! - boost::interprocess::intrusive_ptr
+//! - boost::interprocess::shared_ptr
+//! - boost::interprocess::weak_ptr
+//!
+//! The following interprocess communication types:
+//! - boost::interprocess::message_queue_t;
+//! - boost::interprocess::message_queue;
+
+#include <boost/interprocess/detail/config_begin.hpp>
+#include <boost/interprocess/detail/workaround.hpp>
+
+#if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
+
+#include <cstddef>
+
+//////////////////////////////////////////////////////////////////////////////
+// Standard predeclarations
+//////////////////////////////////////////////////////////////////////////////
+
+namespace boost{ namespace intrusive{ } }
+namespace boost{ namespace interprocess{ namespace bi = boost::intrusive; } }
+
+namespace boost { namespace interprocess {
+
+//////////////////////////////////////////////////////////////////////////////
+// permissions
+//////////////////////////////////////////////////////////////////////////////
+
+class permissions;
+
+//////////////////////////////////////////////////////////////////////////////
+// shared_memory
+//////////////////////////////////////////////////////////////////////////////
+
+class shared_memory_object;
+
+#if defined (BOOST_INTERPROCESS_WINDOWS)
+class windows_shared_memory;
+#endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
+
+#if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
+class xsi_shared_memory;
+#endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
+
+//////////////////////////////////////////////////////////////////////////////
+// file mapping / mapped region
+//////////////////////////////////////////////////////////////////////////////
+
+class file_mapping;
+class mapped_region;
+
+//////////////////////////////////////////////////////////////////////////////
+// Mutexes
+//////////////////////////////////////////////////////////////////////////////
+
+class null_mutex;
+
+class interprocess_mutex;
+class interprocess_recursive_mutex;
+
+class named_mutex;
+class named_recursive_mutex;
+
+class interprocess_semaphore;
+class named_semaphore;
+
+//////////////////////////////////////////////////////////////////////////////
+// Mutex families
+//////////////////////////////////////////////////////////////////////////////
+
+struct mutex_family;
+struct null_mutex_family;
+
+//////////////////////////////////////////////////////////////////////////////
+// Other synchronization classes
+//////////////////////////////////////////////////////////////////////////////
+
+class interprocess_sharable_mutex;
+class interprocess_condition;
+
+//////////////////////////////////////////////////////////////////////////////
+// Locks
+//////////////////////////////////////////////////////////////////////////////
+
+template <class Mutex>
+class scoped_lock;
+
+template <class SharableMutex>
+class sharable_lock;
+
+template <class UpgradableMutex>
+class upgradable_lock;
+
+//////////////////////////////////////////////////////////////////////////////
+// STL compatible allocators
+//////////////////////////////////////////////////////////////////////////////
+
+template<class T, class SegmentManager>
+class allocator;
+
+template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
+class node_allocator;
+
+template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
+class private_node_allocator;
+
+template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
+class cached_node_allocator;
+
+template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
+ , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
+class adaptive_pool;
+
+template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
+ , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
+class private_adaptive_pool;
+
+template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
+ , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
+class cached_adaptive_pool;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// offset_ptr
+//////////////////////////////////////////////////////////////////////////////
+
+static const std::size_t offset_type_alignment = 0;
+
+#if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
+# ifdef BOOST_HAS_INTPTR_T
+ using ::boost::uintptr_t;
+# else
+ typedef std::size_t uintptr_t;
+# endif
+#endif
+
+template < class T, class DifferenceType = std::ptrdiff_t
+ , class OffsetType = uintptr_t, std::size_t Alignment = offset_type_alignment>
+class offset_ptr;
+
+//////////////////////////////////////////////////////////////////////////////
+// Memory allocation algorithms
+//////////////////////////////////////////////////////////////////////////////
+
+//Single segment memory allocation algorithms
+template<class MutexFamily, class VoidMutex = offset_ptr<void> >
+class simple_seq_fit;
+
+template<class MutexFamily, class VoidMutex = offset_ptr<void>, std::size_t MemAlignment = 0>
+class rbtree_best_fit;
+
+//////////////////////////////////////////////////////////////////////////////
+// Index Types
+//////////////////////////////////////////////////////////////////////////////
+
+template<class IndexConfig> class flat_map_index;
+template<class IndexConfig> class iset_index;
+template<class IndexConfig> class iunordered_set_index;
+template<class IndexConfig> class map_index;
+template<class IndexConfig> class null_index;
+template<class IndexConfig> class unordered_map_index;
+
+//////////////////////////////////////////////////////////////////////////////
+// Segment manager
+//////////////////////////////////////////////////////////////////////////////
+
+template <class CharType
+ ,class MemoryAlgorithm
+ ,template<class IndexConfig> class IndexType>
+class segment_manager;
+
+//////////////////////////////////////////////////////////////////////////////
+// External buffer managed memory classes
+//////////////////////////////////////////////////////////////////////////////
+
+template <class CharType
+ ,class MemoryAlgorithm
+ ,template<class IndexConfig> class IndexType>
+class basic_managed_external_buffer;
+
+typedef basic_managed_external_buffer
+ <char
+ ,rbtree_best_fit<null_mutex_family>
+ ,iset_index>
+managed_external_buffer;
+
+typedef basic_managed_external_buffer
+ <wchar_t
+ ,rbtree_best_fit<null_mutex_family>
+ ,iset_index>
+wmanaged_external_buffer;
+
+//////////////////////////////////////////////////////////////////////////////
+// managed memory classes
+//////////////////////////////////////////////////////////////////////////////
+
+template <class CharType
+ ,class MemoryAlgorithm
+ ,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;
+
+
+//////////////////////////////////////////////////////////////////////////////
+// Windows shared memory managed memory classes
+//////////////////////////////////////////////////////////////////////////////
+
+#if defined (BOOST_INTERPROCESS_WINDOWS)
+
+template <class CharType
+ ,class MemoryAlgorithm
+ ,template<class IndexConfig> class IndexType>
+class basic_managed_windows_shared_memory;
+
+typedef basic_managed_windows_shared_memory
+ <char
+ ,rbtree_best_fit<mutex_family>
+ ,iset_index>
+managed_windows_shared_memory;
+
+typedef basic_managed_windows_shared_memory
+ <wchar_t
+ ,rbtree_best_fit<mutex_family>
+ ,iset_index>
+wmanaged_windows_shared_memory;
+
+#endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
+
+#if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
+
+template <class CharType
+ ,class MemoryAlgorithm
+ ,template<class IndexConfig> class IndexType>
+class basic_managed_xsi_shared_memory;
+
+typedef basic_managed_xsi_shared_memory
+ <char
+ ,rbtree_best_fit<mutex_family>
+ ,iset_index>
+managed_xsi_shared_memory;
+
+typedef basic_managed_xsi_shared_memory
+ <wchar_t
+ ,rbtree_best_fit<mutex_family>
+ ,iset_index>
+wmanaged_xsi_shared_memory;
+
+#endif //#if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
+
+//////////////////////////////////////////////////////////////////////////////
+// Fixed address 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;
+
+//////////////////////////////////////////////////////////////////////////////
+// Heap memory managed memory classes
+//////////////////////////////////////////////////////////////////////////////
+
+template
+ <class CharType
+ ,class MemoryAlgorithm
+ ,template<class IndexConfig> class IndexType>
+class basic_managed_heap_memory;
+
+typedef basic_managed_heap_memory
+ <char
+ ,rbtree_best_fit<null_mutex_family>
+ ,iset_index>
+managed_heap_memory;
+
+typedef basic_managed_heap_memory
+ <wchar_t
+ ,rbtree_best_fit<null_mutex_family>
+ ,iset_index>
+wmanaged_heap_memory;
+
+//////////////////////////////////////////////////////////////////////////////
+// Mapped file managed memory classes
+//////////////////////////////////////////////////////////////////////////////
+
+template
+ <class CharType
+ ,class MemoryAlgorithm
+ ,template<class IndexConfig> class IndexType>
+class basic_managed_mapped_file;
+
+typedef basic_managed_mapped_file
+ <char
+ ,rbtree_best_fit<mutex_family>
+ ,iset_index>
+managed_mapped_file;
+
+typedef basic_managed_mapped_file
+ <wchar_t
+ ,rbtree_best_fit<mutex_family>
+ ,iset_index>
+wmanaged_mapped_file;
+
+//////////////////////////////////////////////////////////////////////////////
+// Exceptions
+//////////////////////////////////////////////////////////////////////////////
+
+class interprocess_exception;
+class lock_exception;
+class bad_alloc;
+
+//////////////////////////////////////////////////////////////////////////////
+// Bufferstream
+//////////////////////////////////////////////////////////////////////////////
+
+//bufferstream
+template <class CharT
+ ,class CharTraits = std::char_traits<CharT> >
+class basic_bufferbuf;
+
+template <class CharT
+ ,class CharTraits = std::char_traits<CharT> >
+class basic_ibufferstream;
+
+template <class CharT
+ ,class CharTraits = std::char_traits<CharT> >
+class basic_obufferstream;
+
+template <class CharT
+ ,class CharTraits = std::char_traits<CharT> >
+class basic_bufferstream;
+
+//////////////////////////////////////////////////////////////////////////////
+// Vectorstream
+//////////////////////////////////////////////////////////////////////////////
+
+template <class CharVector
+ ,class CharTraits = std::char_traits<typename CharVector::value_type> >
+class basic_vectorbuf;
+
+template <class CharVector
+ ,class CharTraits = std::char_traits<typename CharVector::value_type> >
+class basic_ivectorstream;
+
+template <class CharVector
+ ,class CharTraits = std::char_traits<typename CharVector::value_type> >
+class basic_ovectorstream;
+
+template <class CharVector
+ ,class CharTraits = std::char_traits<typename CharVector::value_type> >
+class basic_vectorstream;
+
+//////////////////////////////////////////////////////////////////////////////
+// Smart pointers
+//////////////////////////////////////////////////////////////////////////////
+
+template<class T, class Deleter>
+class scoped_ptr;
+
+template<class T, class VoidPointer>
+class intrusive_ptr;
+
+template<class T, class VoidAllocator, class Deleter>
+class shared_ptr;
+
+template<class T, class VoidAllocator, class Deleter>
+class weak_ptr;
+
+//////////////////////////////////////////////////////////////////////////////
+// IPC
+//////////////////////////////////////////////////////////////////////////////
+
+template<class VoidPointer>
+class message_queue_t;
+
+typedef message_queue_t<offset_ptr<void> > message_queue;
+
+}} //namespace boost { namespace interprocess {
+
+#endif //#if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
+
+#include <boost/interprocess/detail/config_end.hpp>
+
+#endif //#ifndef BOOST_INTERPROCESS_FWD_HPP