comparison DEPENDENCIES/generic/include/boost/interprocess/interprocess_fwd.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
9 ////////////////////////////////////////////////////////////////////////////// 9 //////////////////////////////////////////////////////////////////////////////
10 10
11 #ifndef BOOST_INTERPROCESS_FWD_HPP 11 #ifndef BOOST_INTERPROCESS_FWD_HPP
12 #define BOOST_INTERPROCESS_FWD_HPP 12 #define BOOST_INTERPROCESS_FWD_HPP
13 13
14 #if defined (_MSC_VER) && (_MSC_VER >= 1200) 14 #ifndef BOOST_CONFIG_HPP
15 # include <boost/config.hpp>
16 #endif
17 #
18 #if defined(BOOST_HAS_PRAGMA_ONCE)
15 # pragma once 19 # pragma once
16 #endif 20 #endif
17 21
22 #include <boost/interprocess/detail/std_fwd.hpp>
23
24 //! \file
25 //! This header file forward declares the basic interprocess types:
26 //! - boost::interprocess::offset_ptr;
27 //! - boost::interprocess::permissions;
28 //! - boost::interprocess::mapped_region;
29 //! - boost::interprocess::file_mapping;
30 //! - boost::interprocess::shared_memory_object;
31 //! - boost::interprocess::windows_shared_memory;
32 //! - boost::interprocess::xsi_shared_memory;
33 //!
34 //! The following synchronization mechanisms and locks:
35 //! - boost::interprocess::null_mutex;
36 //! - boost::interprocess::interprocess_mutex;
37 //! - boost::interprocess::interprocess_recursive_mutex;
38 //! - boost::interprocess::interprocess_semaphore;
39 //! - boost::interprocess::named_mutex;
40 //! - boost::interprocess::named_recursive_mutex;
41 //! - boost::interprocess::named_semaphore;
42 //! - boost::interprocess::interprocess_sharable_mutex;
43 //! - boost::interprocess::interprocess_condition;
44 //! - boost::interprocess::scoped_lock;
45 //! - boost::interprocess::sharable_lock;
46 //! - boost::interprocess::upgradable_lock;
47 //!
48 //! The following mutex families:
49 //! - boost::interprocess::mutex_family;
50 //! - boost::interprocess::null_mutex_family;
51 //!
52 //! The following allocators:
53 //! - boost::interprocess::allocator;
54 //! - boost::interprocess::node_allocator;
55 //! - boost::interprocess::private_node_allocator;
56 //! - boost::interprocess::cached_node_allocator;
57 //! - boost::interprocess::adaptive_pool;
58 //! - boost::interprocess::private_adaptive_pool;
59 //! - boost::interprocess::cached_adaptive_pool;
60 //!
61 //! The following allocation algorithms:
62 //! - boost::interprocess::simple_seq_fit;
63 //! - boost::interprocess::rbtree_best_fit;
64 //!
65 //! The following index types:
66 //! - boost::interprocess::flat_map_index;
67 //! - boost::interprocess::iset_index;
68 //! - boost::interprocess::iunordered_set_index;
69 //! - boost::interprocess::map_index;
70 //! - boost::interprocess::null_index;
71 //! - boost::interprocess::unordered_map_index;
72 //!
73 //! The following managed memory types:
74 //! - boost::interprocess::segment_manager;
75 //! - boost::interprocess::basic_managed_external_buffer
76 //! - boost::interprocess::managed_external_buffer
77 //! - boost::interprocess::wmanaged_external_buffer
78 //! - boost::interprocess::basic_managed_shared_memory
79 //! - boost::interprocess::managed_shared_memory
80 //! - boost::interprocess::wmanaged_shared_memory
81 //! - boost::interprocess::basic_managed_windows_shared_memory
82 //! - boost::interprocess::managed_windows_shared_memory
83 //! - boost::interprocess::wmanaged_windows_shared_memory
84 //! - boost::interprocess::basic_managed_xsi_shared_memory
85 //! - boost::interprocess::managed_xsi_shared_memory
86 //! - boost::interprocess::wmanaged_xsi_shared_memory
87 //! - boost::interprocess::fixed_managed_shared_memory
88 //! - boost::interprocess::wfixed_managed_shared_memory
89 //! - boost::interprocess::basic_managed_heap_memory
90 //! - boost::interprocess::managed_heap_memory
91 //! - boost::interprocess::wmanaged_heap_memory
92 //! - boost::interprocess::basic_managed_mapped_file
93 //! - boost::interprocess::managed_mapped_file
94 //! - boost::interprocess::wmanaged_mapped_file
95 //!
96 //! The following exception types:
97 //! - boost::interprocess::interprocess_exception
98 //! - boost::interprocess::lock_exception
99 //! - boost::interprocess::bad_alloc
100 //!
101 //! The following stream types:
102 //! - boost::interprocess::basic_bufferbuf
103 //! - boost::interprocess::basic_ibufferstream
104 //! - boost::interprocess::basic_obufferstream
105 //! - boost::interprocess::basic_bufferstream
106 //! - boost::interprocess::basic_vectorbuf
107 //! - boost::interprocess::basic_ivectorstream
108 //! - boost::interprocess::basic_ovectorstream
109 //! - boost::interprocess::basic_vectorstream
110 //!
111 //! The following smart pointer types:
112 //! - boost::interprocess::scoped_ptr
113 //! - boost::interprocess::intrusive_ptr
114 //! - boost::interprocess::shared_ptr
115 //! - boost::interprocess::weak_ptr
116 //!
117 //! The following interprocess communication types:
118 //! - boost::interprocess::message_queue_t;
119 //! - boost::interprocess::message_queue;
120
18 #include <boost/interprocess/detail/config_begin.hpp> 121 #include <boost/interprocess/detail/config_begin.hpp>
19 #include <boost/interprocess/detail/workaround.hpp> 122 #include <boost/interprocess/detail/workaround.hpp>
20 123
124 #if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
125
21 #include <cstddef> 126 #include <cstddef>
22 127
23 ////////////////////////////////////////////////////////////////////////////// 128 //////////////////////////////////////////////////////////////////////////////
24 // Standard predeclarations 129 // Standard predeclarations
25 ////////////////////////////////////////////////////////////////////////////// 130 //////////////////////////////////////////////////////////////////////////////
26 131
27 /// @cond 132 namespace boost{ namespace intrusive{ } }
28 133 namespace boost{ namespace interprocess{ namespace bi = boost::intrusive; } }
29 namespace boost{
30 namespace intrusive{
31 }}
32
33 namespace boost{
34 namespace interprocess{
35 namespace bi = boost::intrusive;
36 }}
37
38 #include <utility>
39 #include <memory>
40 #include <functional>
41 #include <iosfwd>
42 #include <string>
43
44 /// @endcond
45 134
46 namespace boost { namespace interprocess { 135 namespace boost { namespace interprocess {
47 136
48 ////////////////////////////////////////////////////////////////////////////// 137 //////////////////////////////////////////////////////////////////////////////
49 // permissions 138 // permissions
55 // shared_memory 144 // shared_memory
56 ////////////////////////////////////////////////////////////////////////////// 145 //////////////////////////////////////////////////////////////////////////////
57 146
58 class shared_memory_object; 147 class shared_memory_object;
59 148
60 #if defined (BOOST_INTERPROCESS_WINDOWS) || defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED) 149 #if defined (BOOST_INTERPROCESS_WINDOWS)
61 class windows_shared_memory; 150 class windows_shared_memory;
62 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS) 151 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
63 152
64 ////////////////////////////////////////////////////////////////////////////// 153 #if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
65 // mapped file/mapped region/mapped_file 154 class xsi_shared_memory;
155 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
156
157 //////////////////////////////////////////////////////////////////////////////
158 // file mapping / mapped region
66 ////////////////////////////////////////////////////////////////////////////// 159 //////////////////////////////////////////////////////////////////////////////
67 160
68 class file_mapping; 161 class file_mapping;
69 class mapped_region; 162 class mapped_region;
70 class mapped_file;
71 163
72 ////////////////////////////////////////////////////////////////////////////// 164 //////////////////////////////////////////////////////////////////////////////
73 // Mutexes 165 // Mutexes
74 ////////////////////////////////////////////////////////////////////////////// 166 //////////////////////////////////////////////////////////////////////////////
75 167
93 185
94 ////////////////////////////////////////////////////////////////////////////// 186 //////////////////////////////////////////////////////////////////////////////
95 // Other synchronization classes 187 // Other synchronization classes
96 ////////////////////////////////////////////////////////////////////////////// 188 //////////////////////////////////////////////////////////////////////////////
97 189
98 class barrier;
99 class interprocess_sharable_mutex; 190 class interprocess_sharable_mutex;
100 class interprocess_condition; 191 class interprocess_condition;
101 192
102 ////////////////////////////////////////////////////////////////////////////// 193 //////////////////////////////////////////////////////////////////////////////
103 // Locks 194 // Locks
126 class private_node_allocator; 217 class private_node_allocator;
127 218
128 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64> 219 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
129 class cached_node_allocator; 220 class cached_node_allocator;
130 221
131 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64, std::size_t MaxFreeBlocks = 2 222 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
132 , unsigned char OverheadPercent = 5 223 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
133 >
134 class adaptive_pool; 224 class adaptive_pool;
135 225
136 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64, std::size_t MaxFreeBlocks = 2 226 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
137 , unsigned char OverheadPercent = 5 227 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
138 >
139 class private_adaptive_pool; 228 class private_adaptive_pool;
140 229
141 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64, std::size_t MaxFreeBlocks = 2 230 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
142 , unsigned char OverheadPercent = 5 231 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
143 >
144 class cached_adaptive_pool; 232 class cached_adaptive_pool;
145 233
146 234
147 ////////////////////////////////////////////////////////////////////////////// 235 //////////////////////////////////////////////////////////////////////////////
148 // offset_ptr 236 // offset_ptr
149 ////////////////////////////////////////////////////////////////////////////// 237 //////////////////////////////////////////////////////////////////////////////
150 238
151 static const std::size_t offset_type_alignment = 0; 239 static const std::size_t offset_type_alignment = 0;
152 240
153 template <class T, class DifferenceType = std::ptrdiff_t, class OffsetType = std::size_t, std::size_t Alignment = offset_type_alignment> 241 template < class T, class DifferenceType = std::ptrdiff_t
242 , class OffsetType = std::size_t, std::size_t Alignment = offset_type_alignment>
154 class offset_ptr; 243 class offset_ptr;
155 244
156 ////////////////////////////////////////////////////////////////////////////// 245 //////////////////////////////////////////////////////////////////////////////
157 // Memory allocation algorithms 246 // Memory allocation algorithms
158 ////////////////////////////////////////////////////////////////////////////// 247 //////////////////////////////////////////////////////////////////////////////
229 318
230 ////////////////////////////////////////////////////////////////////////////// 319 //////////////////////////////////////////////////////////////////////////////
231 // Windows shared memory managed memory classes 320 // Windows shared memory managed memory classes
232 ////////////////////////////////////////////////////////////////////////////// 321 //////////////////////////////////////////////////////////////////////////////
233 322
234 #if defined (BOOST_INTERPROCESS_WINDOWS) || defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED) 323 #if defined (BOOST_INTERPROCESS_WINDOWS)
235 324
236 template <class CharType 325 template <class CharType
237 ,class MemoryAlgorithm 326 ,class MemoryAlgorithm
238 ,template<class IndexConfig> class IndexType> 327 ,template<class IndexConfig> class IndexType>
239 class basic_managed_windows_shared_memory; 328 class basic_managed_windows_shared_memory;
250 ,iset_index> 339 ,iset_index>
251 wmanaged_windows_shared_memory; 340 wmanaged_windows_shared_memory;
252 341
253 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS) 342 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
254 343
255 #if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS) || defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED) 344 #if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
256 345
257 template <class CharType 346 template <class CharType
258 ,class MemoryAlgorithm 347 ,class MemoryAlgorithm
259 ,template<class IndexConfig> class IndexType> 348 ,template<class IndexConfig> class IndexType>
260 class basic_managed_xsi_shared_memory; 349 class basic_managed_xsi_shared_memory;
407 496
408 typedef message_queue_t<offset_ptr<void> > message_queue; 497 typedef message_queue_t<offset_ptr<void> > message_queue;
409 498
410 }} //namespace boost { namespace interprocess { 499 }} //namespace boost { namespace interprocess {
411 500
412 ////////////////////////////////////////////////////////////////////////////// 501 #endif //#if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
413 // CONTAINERS
414 //////////////////////////////////////////////////////////////////////////////
415 502
416 #include <boost/interprocess/detail/config_end.hpp> 503 #include <boost/interprocess/detail/config_end.hpp>
417 504
418 #endif //#ifndef BOOST_INTERPROCESS_FWD_HPP 505 #endif //#ifndef BOOST_INTERPROCESS_FWD_HPP