Mercurial > hg > vamp-build-and-test
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 |