annotate DEPENDENCIES/generic/include/boost/interprocess/interprocess_fwd.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 //////////////////////////////////////////////////////////////////////////////
Chris@16 2 //
Chris@16 3 // (C) Copyright Ion Gaztanaga 2005-2012. Distributed under the Boost
Chris@16 4 // Software License, Version 1.0. (See accompanying file
Chris@16 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 6 //
Chris@16 7 // See http://www.boost.org/libs/interprocess for documentation.
Chris@16 8 //
Chris@16 9 //////////////////////////////////////////////////////////////////////////////
Chris@16 10
Chris@16 11 #ifndef BOOST_INTERPROCESS_FWD_HPP
Chris@16 12 #define BOOST_INTERPROCESS_FWD_HPP
Chris@16 13
Chris@101 14 #ifndef BOOST_CONFIG_HPP
Chris@101 15 # include <boost/config.hpp>
Chris@101 16 #endif
Chris@101 17 #
Chris@101 18 #if defined(BOOST_HAS_PRAGMA_ONCE)
Chris@16 19 # pragma once
Chris@16 20 #endif
Chris@16 21
Chris@101 22 #include <boost/interprocess/detail/std_fwd.hpp>
Chris@101 23
Chris@101 24 //! \file
Chris@101 25 //! This header file forward declares the basic interprocess types:
Chris@101 26 //! - boost::interprocess::offset_ptr;
Chris@101 27 //! - boost::interprocess::permissions;
Chris@101 28 //! - boost::interprocess::mapped_region;
Chris@101 29 //! - boost::interprocess::file_mapping;
Chris@101 30 //! - boost::interprocess::shared_memory_object;
Chris@101 31 //! - boost::interprocess::windows_shared_memory;
Chris@101 32 //! - boost::interprocess::xsi_shared_memory;
Chris@101 33 //!
Chris@101 34 //! The following synchronization mechanisms and locks:
Chris@101 35 //! - boost::interprocess::null_mutex;
Chris@101 36 //! - boost::interprocess::interprocess_mutex;
Chris@101 37 //! - boost::interprocess::interprocess_recursive_mutex;
Chris@101 38 //! - boost::interprocess::interprocess_semaphore;
Chris@101 39 //! - boost::interprocess::named_mutex;
Chris@101 40 //! - boost::interprocess::named_recursive_mutex;
Chris@101 41 //! - boost::interprocess::named_semaphore;
Chris@101 42 //! - boost::interprocess::interprocess_sharable_mutex;
Chris@101 43 //! - boost::interprocess::interprocess_condition;
Chris@101 44 //! - boost::interprocess::scoped_lock;
Chris@101 45 //! - boost::interprocess::sharable_lock;
Chris@101 46 //! - boost::interprocess::upgradable_lock;
Chris@101 47 //!
Chris@101 48 //! The following mutex families:
Chris@101 49 //! - boost::interprocess::mutex_family;
Chris@101 50 //! - boost::interprocess::null_mutex_family;
Chris@101 51 //!
Chris@101 52 //! The following allocators:
Chris@101 53 //! - boost::interprocess::allocator;
Chris@101 54 //! - boost::interprocess::node_allocator;
Chris@101 55 //! - boost::interprocess::private_node_allocator;
Chris@101 56 //! - boost::interprocess::cached_node_allocator;
Chris@101 57 //! - boost::interprocess::adaptive_pool;
Chris@101 58 //! - boost::interprocess::private_adaptive_pool;
Chris@101 59 //! - boost::interprocess::cached_adaptive_pool;
Chris@101 60 //!
Chris@101 61 //! The following allocation algorithms:
Chris@101 62 //! - boost::interprocess::simple_seq_fit;
Chris@101 63 //! - boost::interprocess::rbtree_best_fit;
Chris@101 64 //!
Chris@101 65 //! The following index types:
Chris@101 66 //! - boost::interprocess::flat_map_index;
Chris@101 67 //! - boost::interprocess::iset_index;
Chris@101 68 //! - boost::interprocess::iunordered_set_index;
Chris@101 69 //! - boost::interprocess::map_index;
Chris@101 70 //! - boost::interprocess::null_index;
Chris@101 71 //! - boost::interprocess::unordered_map_index;
Chris@101 72 //!
Chris@101 73 //! The following managed memory types:
Chris@101 74 //! - boost::interprocess::segment_manager;
Chris@101 75 //! - boost::interprocess::basic_managed_external_buffer
Chris@101 76 //! - boost::interprocess::managed_external_buffer
Chris@101 77 //! - boost::interprocess::wmanaged_external_buffer
Chris@101 78 //! - boost::interprocess::basic_managed_shared_memory
Chris@101 79 //! - boost::interprocess::managed_shared_memory
Chris@101 80 //! - boost::interprocess::wmanaged_shared_memory
Chris@101 81 //! - boost::interprocess::basic_managed_windows_shared_memory
Chris@101 82 //! - boost::interprocess::managed_windows_shared_memory
Chris@101 83 //! - boost::interprocess::wmanaged_windows_shared_memory
Chris@101 84 //! - boost::interprocess::basic_managed_xsi_shared_memory
Chris@101 85 //! - boost::interprocess::managed_xsi_shared_memory
Chris@101 86 //! - boost::interprocess::wmanaged_xsi_shared_memory
Chris@101 87 //! - boost::interprocess::fixed_managed_shared_memory
Chris@101 88 //! - boost::interprocess::wfixed_managed_shared_memory
Chris@101 89 //! - boost::interprocess::basic_managed_heap_memory
Chris@101 90 //! - boost::interprocess::managed_heap_memory
Chris@101 91 //! - boost::interprocess::wmanaged_heap_memory
Chris@101 92 //! - boost::interprocess::basic_managed_mapped_file
Chris@101 93 //! - boost::interprocess::managed_mapped_file
Chris@101 94 //! - boost::interprocess::wmanaged_mapped_file
Chris@101 95 //!
Chris@101 96 //! The following exception types:
Chris@101 97 //! - boost::interprocess::interprocess_exception
Chris@101 98 //! - boost::interprocess::lock_exception
Chris@101 99 //! - boost::interprocess::bad_alloc
Chris@101 100 //!
Chris@101 101 //! The following stream types:
Chris@101 102 //! - boost::interprocess::basic_bufferbuf
Chris@101 103 //! - boost::interprocess::basic_ibufferstream
Chris@101 104 //! - boost::interprocess::basic_obufferstream
Chris@101 105 //! - boost::interprocess::basic_bufferstream
Chris@101 106 //! - boost::interprocess::basic_vectorbuf
Chris@101 107 //! - boost::interprocess::basic_ivectorstream
Chris@101 108 //! - boost::interprocess::basic_ovectorstream
Chris@101 109 //! - boost::interprocess::basic_vectorstream
Chris@101 110 //!
Chris@101 111 //! The following smart pointer types:
Chris@101 112 //! - boost::interprocess::scoped_ptr
Chris@101 113 //! - boost::interprocess::intrusive_ptr
Chris@101 114 //! - boost::interprocess::shared_ptr
Chris@101 115 //! - boost::interprocess::weak_ptr
Chris@101 116 //!
Chris@101 117 //! The following interprocess communication types:
Chris@101 118 //! - boost::interprocess::message_queue_t;
Chris@101 119 //! - boost::interprocess::message_queue;
Chris@101 120
Chris@16 121 #include <boost/interprocess/detail/config_begin.hpp>
Chris@16 122 #include <boost/interprocess/detail/workaround.hpp>
Chris@16 123
Chris@101 124 #if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
Chris@101 125
Chris@16 126 #include <cstddef>
Chris@16 127
Chris@16 128 //////////////////////////////////////////////////////////////////////////////
Chris@16 129 // Standard predeclarations
Chris@16 130 //////////////////////////////////////////////////////////////////////////////
Chris@16 131
Chris@101 132 namespace boost{ namespace intrusive{ } }
Chris@101 133 namespace boost{ namespace interprocess{ namespace bi = boost::intrusive; } }
Chris@16 134
Chris@16 135 namespace boost { namespace interprocess {
Chris@16 136
Chris@16 137 //////////////////////////////////////////////////////////////////////////////
Chris@16 138 // permissions
Chris@16 139 //////////////////////////////////////////////////////////////////////////////
Chris@16 140
Chris@16 141 class permissions;
Chris@16 142
Chris@16 143 //////////////////////////////////////////////////////////////////////////////
Chris@16 144 // shared_memory
Chris@16 145 //////////////////////////////////////////////////////////////////////////////
Chris@16 146
Chris@16 147 class shared_memory_object;
Chris@16 148
Chris@101 149 #if defined (BOOST_INTERPROCESS_WINDOWS)
Chris@16 150 class windows_shared_memory;
Chris@16 151 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
Chris@16 152
Chris@101 153 #if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
Chris@101 154 class xsi_shared_memory;
Chris@101 155 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
Chris@101 156
Chris@16 157 //////////////////////////////////////////////////////////////////////////////
Chris@101 158 // file mapping / mapped region
Chris@16 159 //////////////////////////////////////////////////////////////////////////////
Chris@16 160
Chris@16 161 class file_mapping;
Chris@16 162 class mapped_region;
Chris@16 163
Chris@16 164 //////////////////////////////////////////////////////////////////////////////
Chris@16 165 // Mutexes
Chris@16 166 //////////////////////////////////////////////////////////////////////////////
Chris@16 167
Chris@16 168 class null_mutex;
Chris@16 169
Chris@16 170 class interprocess_mutex;
Chris@16 171 class interprocess_recursive_mutex;
Chris@16 172
Chris@16 173 class named_mutex;
Chris@16 174 class named_recursive_mutex;
Chris@16 175
Chris@16 176 class interprocess_semaphore;
Chris@16 177 class named_semaphore;
Chris@16 178
Chris@16 179 //////////////////////////////////////////////////////////////////////////////
Chris@16 180 // Mutex families
Chris@16 181 //////////////////////////////////////////////////////////////////////////////
Chris@16 182
Chris@16 183 struct mutex_family;
Chris@16 184 struct null_mutex_family;
Chris@16 185
Chris@16 186 //////////////////////////////////////////////////////////////////////////////
Chris@16 187 // Other synchronization classes
Chris@16 188 //////////////////////////////////////////////////////////////////////////////
Chris@16 189
Chris@16 190 class interprocess_sharable_mutex;
Chris@16 191 class interprocess_condition;
Chris@16 192
Chris@16 193 //////////////////////////////////////////////////////////////////////////////
Chris@16 194 // Locks
Chris@16 195 //////////////////////////////////////////////////////////////////////////////
Chris@16 196
Chris@16 197 template <class Mutex>
Chris@16 198 class scoped_lock;
Chris@16 199
Chris@16 200 template <class SharableMutex>
Chris@16 201 class sharable_lock;
Chris@16 202
Chris@16 203 template <class UpgradableMutex>
Chris@16 204 class upgradable_lock;
Chris@16 205
Chris@16 206 //////////////////////////////////////////////////////////////////////////////
Chris@16 207 // STL compatible allocators
Chris@16 208 //////////////////////////////////////////////////////////////////////////////
Chris@16 209
Chris@16 210 template<class T, class SegmentManager>
Chris@16 211 class allocator;
Chris@16 212
Chris@16 213 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
Chris@16 214 class node_allocator;
Chris@16 215
Chris@16 216 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
Chris@16 217 class private_node_allocator;
Chris@16 218
Chris@16 219 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
Chris@16 220 class cached_node_allocator;
Chris@16 221
Chris@101 222 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
Chris@101 223 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
Chris@16 224 class adaptive_pool;
Chris@16 225
Chris@101 226 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
Chris@101 227 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
Chris@16 228 class private_adaptive_pool;
Chris@16 229
Chris@101 230 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
Chris@101 231 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
Chris@16 232 class cached_adaptive_pool;
Chris@16 233
Chris@16 234
Chris@16 235 //////////////////////////////////////////////////////////////////////////////
Chris@16 236 // offset_ptr
Chris@16 237 //////////////////////////////////////////////////////////////////////////////
Chris@16 238
Chris@16 239 static const std::size_t offset_type_alignment = 0;
Chris@16 240
Chris@101 241 template < class T, class DifferenceType = std::ptrdiff_t
Chris@101 242 , class OffsetType = std::size_t, std::size_t Alignment = offset_type_alignment>
Chris@16 243 class offset_ptr;
Chris@16 244
Chris@16 245 //////////////////////////////////////////////////////////////////////////////
Chris@16 246 // Memory allocation algorithms
Chris@16 247 //////////////////////////////////////////////////////////////////////////////
Chris@16 248
Chris@16 249 //Single segment memory allocation algorithms
Chris@16 250 template<class MutexFamily, class VoidMutex = offset_ptr<void> >
Chris@16 251 class simple_seq_fit;
Chris@16 252
Chris@16 253 template<class MutexFamily, class VoidMutex = offset_ptr<void>, std::size_t MemAlignment = 0>
Chris@16 254 class rbtree_best_fit;
Chris@16 255
Chris@16 256 //////////////////////////////////////////////////////////////////////////////
Chris@16 257 // Index Types
Chris@16 258 //////////////////////////////////////////////////////////////////////////////
Chris@16 259
Chris@16 260 template<class IndexConfig> class flat_map_index;
Chris@16 261 template<class IndexConfig> class iset_index;
Chris@16 262 template<class IndexConfig> class iunordered_set_index;
Chris@16 263 template<class IndexConfig> class map_index;
Chris@16 264 template<class IndexConfig> class null_index;
Chris@16 265 template<class IndexConfig> class unordered_map_index;
Chris@16 266
Chris@16 267 //////////////////////////////////////////////////////////////////////////////
Chris@16 268 // Segment manager
Chris@16 269 //////////////////////////////////////////////////////////////////////////////
Chris@16 270
Chris@16 271 template <class CharType
Chris@16 272 ,class MemoryAlgorithm
Chris@16 273 ,template<class IndexConfig> class IndexType>
Chris@16 274 class segment_manager;
Chris@16 275
Chris@16 276 //////////////////////////////////////////////////////////////////////////////
Chris@16 277 // External buffer managed memory classes
Chris@16 278 //////////////////////////////////////////////////////////////////////////////
Chris@16 279
Chris@16 280 template <class CharType
Chris@16 281 ,class MemoryAlgorithm
Chris@16 282 ,template<class IndexConfig> class IndexType>
Chris@16 283 class basic_managed_external_buffer;
Chris@16 284
Chris@16 285 typedef basic_managed_external_buffer
Chris@16 286 <char
Chris@16 287 ,rbtree_best_fit<null_mutex_family>
Chris@16 288 ,iset_index>
Chris@16 289 managed_external_buffer;
Chris@16 290
Chris@16 291 typedef basic_managed_external_buffer
Chris@16 292 <wchar_t
Chris@16 293 ,rbtree_best_fit<null_mutex_family>
Chris@16 294 ,iset_index>
Chris@16 295 wmanaged_external_buffer;
Chris@16 296
Chris@16 297 //////////////////////////////////////////////////////////////////////////////
Chris@16 298 // managed memory classes
Chris@16 299 //////////////////////////////////////////////////////////////////////////////
Chris@16 300
Chris@16 301 template <class CharType
Chris@16 302 ,class MemoryAlgorithm
Chris@16 303 ,template<class IndexConfig> class IndexType>
Chris@16 304 class basic_managed_shared_memory;
Chris@16 305
Chris@16 306 typedef basic_managed_shared_memory
Chris@16 307 <char
Chris@16 308 ,rbtree_best_fit<mutex_family>
Chris@16 309 ,iset_index>
Chris@16 310 managed_shared_memory;
Chris@16 311
Chris@16 312 typedef basic_managed_shared_memory
Chris@16 313 <wchar_t
Chris@16 314 ,rbtree_best_fit<mutex_family>
Chris@16 315 ,iset_index>
Chris@16 316 wmanaged_shared_memory;
Chris@16 317
Chris@16 318
Chris@16 319 //////////////////////////////////////////////////////////////////////////////
Chris@16 320 // Windows shared memory managed memory classes
Chris@16 321 //////////////////////////////////////////////////////////////////////////////
Chris@16 322
Chris@101 323 #if defined (BOOST_INTERPROCESS_WINDOWS)
Chris@16 324
Chris@16 325 template <class CharType
Chris@16 326 ,class MemoryAlgorithm
Chris@16 327 ,template<class IndexConfig> class IndexType>
Chris@16 328 class basic_managed_windows_shared_memory;
Chris@16 329
Chris@16 330 typedef basic_managed_windows_shared_memory
Chris@16 331 <char
Chris@16 332 ,rbtree_best_fit<mutex_family>
Chris@16 333 ,iset_index>
Chris@16 334 managed_windows_shared_memory;
Chris@16 335
Chris@16 336 typedef basic_managed_windows_shared_memory
Chris@16 337 <wchar_t
Chris@16 338 ,rbtree_best_fit<mutex_family>
Chris@16 339 ,iset_index>
Chris@16 340 wmanaged_windows_shared_memory;
Chris@16 341
Chris@16 342 #endif //#if defined (BOOST_INTERPROCESS_WINDOWS)
Chris@16 343
Chris@101 344 #if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
Chris@16 345
Chris@16 346 template <class CharType
Chris@16 347 ,class MemoryAlgorithm
Chris@16 348 ,template<class IndexConfig> class IndexType>
Chris@16 349 class basic_managed_xsi_shared_memory;
Chris@16 350
Chris@16 351 typedef basic_managed_xsi_shared_memory
Chris@16 352 <char
Chris@16 353 ,rbtree_best_fit<mutex_family>
Chris@16 354 ,iset_index>
Chris@16 355 managed_xsi_shared_memory;
Chris@16 356
Chris@16 357 typedef basic_managed_xsi_shared_memory
Chris@16 358 <wchar_t
Chris@16 359 ,rbtree_best_fit<mutex_family>
Chris@16 360 ,iset_index>
Chris@16 361 wmanaged_xsi_shared_memory;
Chris@16 362
Chris@16 363 #endif //#if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
Chris@16 364
Chris@16 365 //////////////////////////////////////////////////////////////////////////////
Chris@16 366 // Fixed address shared memory
Chris@16 367 //////////////////////////////////////////////////////////////////////////////
Chris@16 368
Chris@16 369 typedef basic_managed_shared_memory
Chris@16 370 <char
Chris@16 371 ,rbtree_best_fit<mutex_family, void*>
Chris@16 372 ,iset_index>
Chris@16 373 fixed_managed_shared_memory;
Chris@16 374
Chris@16 375 typedef basic_managed_shared_memory
Chris@16 376 <wchar_t
Chris@16 377 ,rbtree_best_fit<mutex_family, void*>
Chris@16 378 ,iset_index>
Chris@16 379 wfixed_managed_shared_memory;
Chris@16 380
Chris@16 381 //////////////////////////////////////////////////////////////////////////////
Chris@16 382 // Heap memory managed memory classes
Chris@16 383 //////////////////////////////////////////////////////////////////////////////
Chris@16 384
Chris@16 385 template
Chris@16 386 <class CharType
Chris@16 387 ,class MemoryAlgorithm
Chris@16 388 ,template<class IndexConfig> class IndexType>
Chris@16 389 class basic_managed_heap_memory;
Chris@16 390
Chris@16 391 typedef basic_managed_heap_memory
Chris@16 392 <char
Chris@16 393 ,rbtree_best_fit<null_mutex_family>
Chris@16 394 ,iset_index>
Chris@16 395 managed_heap_memory;
Chris@16 396
Chris@16 397 typedef basic_managed_heap_memory
Chris@16 398 <wchar_t
Chris@16 399 ,rbtree_best_fit<null_mutex_family>
Chris@16 400 ,iset_index>
Chris@16 401 wmanaged_heap_memory;
Chris@16 402
Chris@16 403 //////////////////////////////////////////////////////////////////////////////
Chris@16 404 // Mapped file managed memory classes
Chris@16 405 //////////////////////////////////////////////////////////////////////////////
Chris@16 406
Chris@16 407 template
Chris@16 408 <class CharType
Chris@16 409 ,class MemoryAlgorithm
Chris@16 410 ,template<class IndexConfig> class IndexType>
Chris@16 411 class basic_managed_mapped_file;
Chris@16 412
Chris@16 413 typedef basic_managed_mapped_file
Chris@16 414 <char
Chris@16 415 ,rbtree_best_fit<mutex_family>
Chris@16 416 ,iset_index>
Chris@16 417 managed_mapped_file;
Chris@16 418
Chris@16 419 typedef basic_managed_mapped_file
Chris@16 420 <wchar_t
Chris@16 421 ,rbtree_best_fit<mutex_family>
Chris@16 422 ,iset_index>
Chris@16 423 wmanaged_mapped_file;
Chris@16 424
Chris@16 425 //////////////////////////////////////////////////////////////////////////////
Chris@16 426 // Exceptions
Chris@16 427 //////////////////////////////////////////////////////////////////////////////
Chris@16 428
Chris@16 429 class interprocess_exception;
Chris@16 430 class lock_exception;
Chris@16 431 class bad_alloc;
Chris@16 432
Chris@16 433 //////////////////////////////////////////////////////////////////////////////
Chris@16 434 // Bufferstream
Chris@16 435 //////////////////////////////////////////////////////////////////////////////
Chris@16 436
Chris@16 437 //bufferstream
Chris@16 438 template <class CharT
Chris@16 439 ,class CharTraits = std::char_traits<CharT> >
Chris@16 440 class basic_bufferbuf;
Chris@16 441
Chris@16 442 template <class CharT
Chris@16 443 ,class CharTraits = std::char_traits<CharT> >
Chris@16 444 class basic_ibufferstream;
Chris@16 445
Chris@16 446 template <class CharT
Chris@16 447 ,class CharTraits = std::char_traits<CharT> >
Chris@16 448 class basic_obufferstream;
Chris@16 449
Chris@16 450 template <class CharT
Chris@16 451 ,class CharTraits = std::char_traits<CharT> >
Chris@16 452 class basic_bufferstream;
Chris@16 453
Chris@16 454 //////////////////////////////////////////////////////////////////////////////
Chris@16 455 // Vectorstream
Chris@16 456 //////////////////////////////////////////////////////////////////////////////
Chris@16 457
Chris@16 458 template <class CharVector
Chris@16 459 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
Chris@16 460 class basic_vectorbuf;
Chris@16 461
Chris@16 462 template <class CharVector
Chris@16 463 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
Chris@16 464 class basic_ivectorstream;
Chris@16 465
Chris@16 466 template <class CharVector
Chris@16 467 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
Chris@16 468 class basic_ovectorstream;
Chris@16 469
Chris@16 470 template <class CharVector
Chris@16 471 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
Chris@16 472 class basic_vectorstream;
Chris@16 473
Chris@16 474 //////////////////////////////////////////////////////////////////////////////
Chris@16 475 // Smart pointers
Chris@16 476 //////////////////////////////////////////////////////////////////////////////
Chris@16 477
Chris@16 478 template<class T, class Deleter>
Chris@16 479 class scoped_ptr;
Chris@16 480
Chris@16 481 template<class T, class VoidPointer>
Chris@16 482 class intrusive_ptr;
Chris@16 483
Chris@16 484 template<class T, class VoidAllocator, class Deleter>
Chris@16 485 class shared_ptr;
Chris@16 486
Chris@16 487 template<class T, class VoidAllocator, class Deleter>
Chris@16 488 class weak_ptr;
Chris@16 489
Chris@16 490 //////////////////////////////////////////////////////////////////////////////
Chris@16 491 // IPC
Chris@16 492 //////////////////////////////////////////////////////////////////////////////
Chris@16 493
Chris@16 494 template<class VoidPointer>
Chris@16 495 class message_queue_t;
Chris@16 496
Chris@16 497 typedef message_queue_t<offset_ptr<void> > message_queue;
Chris@16 498
Chris@16 499 }} //namespace boost { namespace interprocess {
Chris@16 500
Chris@101 501 #endif //#if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
Chris@16 502
Chris@16 503 #include <boost/interprocess/detail/config_end.hpp>
Chris@16 504
Chris@16 505 #endif //#ifndef BOOST_INTERPROCESS_FWD_HPP