File indexing completed on 2026-06-16 08:09:05
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_INTERPROCESS_FWD_HPP
0012 #define BOOST_INTERPROCESS_FWD_HPP
0013
0014 #ifndef BOOST_CONFIG_HPP
0015 # include <boost/config.hpp>
0016 #endif
0017 #ifndef BOOST_CSTDINT_HPP
0018 # include <boost/cstdint.hpp>
0019 #endif
0020 0021 ">#
0022 #if defined(BOOST_HAS_PRAGMA_ONCE)
0023 # pragma once
0024 #endif
0025
0026 #include <boost/interprocess/detail/std_fwd.hpp>
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125 #include <boost/interprocess/detail/config_begin.hpp>
0126 #include <boost/interprocess/detail/workaround.hpp>
0127
0128 #if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
0129
0130 #include <cstddef>
0131
0132
0133
0134
0135
0136 namespace boost{ namespace intrusive{ } }
0137 namespace boost{ namespace interprocess{ namespace bi = boost::intrusive; } }
0138
0139 namespace boost { namespace interprocess {
0140
0141
0142
0143
0144
0145 class permissions;
0146
0147
0148
0149
0150
0151 class shared_memory_object;
0152
0153 #if defined (BOOST_INTERPROCESS_WINDOWS)
0154 class windows_shared_memory;
0155 #endif
0156
0157 #if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
0158 class xsi_shared_memory;
0159 #endif
0160
0161
0162
0163
0164
0165 class file_mapping;
0166 class mapped_region;
0167
0168
0169
0170
0171
0172 class null_mutex;
0173
0174 class interprocess_mutex;
0175 class interprocess_recursive_mutex;
0176
0177 class named_mutex;
0178 class named_recursive_mutex;
0179
0180 class interprocess_semaphore;
0181 class named_semaphore;
0182
0183
0184
0185
0186
0187 struct mutex_family;
0188 struct null_mutex_family;
0189
0190
0191
0192
0193
0194 class interprocess_sharable_mutex;
0195 class interprocess_condition;
0196
0197
0198
0199
0200
0201 template <class Mutex>
0202 class scoped_lock;
0203
0204 template <class SharableMutex>
0205 class sharable_lock;
0206
0207 template <class UpgradableMutex>
0208 class upgradable_lock;
0209
0210
0211
0212
0213
0214 template<class T, class SegmentManager>
0215 class allocator;
0216
0217 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
0218 class node_allocator;
0219
0220 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
0221 class private_node_allocator;
0222
0223 template<class T, class SegmentManager, std::size_t NodesPerBlock = 64>
0224 class cached_node_allocator;
0225
0226 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
0227 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
0228 class adaptive_pool;
0229
0230 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
0231 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
0232 class private_adaptive_pool;
0233
0234 template< class T, class SegmentManager, std::size_t NodesPerBlock = 64
0235 , std::size_t MaxFreeBlocks = 2, unsigned char OverheadPercent = 5 >
0236 class cached_adaptive_pool;
0237
0238
0239
0240
0241
0242
0243 static const std::size_t offset_type_alignment = 0;
0244
0245 #if !defined(BOOST_INTERPROCESS_DOXYGEN_INVOKED)
0246 # ifdef BOOST_HAS_INTPTR_T
0247 using ::boost::uintptr_t;
0248 # else
0249 typedef std::size_t uintptr_t;
0250 # endif
0251 #endif
0252
0253 template < class T, class DifferenceType = std::ptrdiff_t
0254 , class OffsetType = uintptr_t, std::size_t Alignment = offset_type_alignment>
0255 class offset_ptr;
0256
0257
0258
0259
0260
0261
0262 template<class MutexFamily, class VoidMutex = offset_ptr<void> >
0263 class simple_seq_fit;
0264
0265 template<class MutexFamily, class VoidMutex = offset_ptr<void>, std::size_t MemAlignment = 0>
0266 class rbtree_best_fit;
0267
0268
0269
0270
0271
0272 template<class IndexConfig> class flat_map_index;
0273 template<class IndexConfig> class iset_index;
0274 template<class IndexConfig> class iunordered_set_index;
0275 template<class IndexConfig> class map_index;
0276 template<class IndexConfig> class null_index;
0277 template<class IndexConfig> class unordered_map_index;
0278
0279
0280
0281
0282
0283 template <class CharType
0284 ,class MemoryAlgorithm
0285 ,template<class IndexConfig> class IndexType>
0286 class segment_manager;
0287
0288
0289
0290
0291
0292 template <class CharType
0293 ,class MemoryAlgorithm
0294 ,template<class IndexConfig> class IndexType>
0295 class basic_managed_external_buffer;
0296
0297 typedef basic_managed_external_buffer
0298 <char
0299 ,rbtree_best_fit<null_mutex_family>
0300 ,iset_index>
0301 managed_external_buffer;
0302
0303 typedef basic_managed_external_buffer
0304 <wchar_t
0305 ,rbtree_best_fit<null_mutex_family>
0306 ,iset_index>
0307 wmanaged_external_buffer;
0308
0309
0310
0311
0312
0313 template <class CharType
0314 ,class MemoryAlgorithm
0315 ,template<class IndexConfig> class IndexType>
0316 class basic_managed_shared_memory;
0317
0318 typedef basic_managed_shared_memory
0319 <char
0320 ,rbtree_best_fit<mutex_family>
0321 ,iset_index>
0322 managed_shared_memory;
0323
0324 typedef basic_managed_shared_memory
0325 <wchar_t
0326 ,rbtree_best_fit<mutex_family>
0327 ,iset_index>
0328 wmanaged_shared_memory;
0329
0330
0331
0332
0333
0334
0335 #if defined (BOOST_INTERPROCESS_WINDOWS)
0336
0337 template <class CharType
0338 ,class MemoryAlgorithm
0339 ,template<class IndexConfig> class IndexType>
0340 class basic_managed_windows_shared_memory;
0341
0342 typedef basic_managed_windows_shared_memory
0343 <char
0344 ,rbtree_best_fit<mutex_family>
0345 ,iset_index>
0346 managed_windows_shared_memory;
0347
0348 typedef basic_managed_windows_shared_memory
0349 <wchar_t
0350 ,rbtree_best_fit<mutex_family>
0351 ,iset_index>
0352 wmanaged_windows_shared_memory;
0353
0354 #endif
0355
0356 #if defined(BOOST_INTERPROCESS_XSI_SHARED_MEMORY_OBJECTS)
0357
0358 template <class CharType
0359 ,class MemoryAlgorithm
0360 ,template<class IndexConfig> class IndexType>
0361 class basic_managed_xsi_shared_memory;
0362
0363 typedef basic_managed_xsi_shared_memory
0364 <char
0365 ,rbtree_best_fit<mutex_family>
0366 ,iset_index>
0367 managed_xsi_shared_memory;
0368
0369 typedef basic_managed_xsi_shared_memory
0370 <wchar_t
0371 ,rbtree_best_fit<mutex_family>
0372 ,iset_index>
0373 wmanaged_xsi_shared_memory;
0374
0375 #endif
0376
0377
0378
0379
0380
0381 typedef basic_managed_shared_memory
0382 <char
0383 ,rbtree_best_fit<mutex_family, void*>
0384 ,iset_index>
0385 fixed_managed_shared_memory;
0386
0387 typedef basic_managed_shared_memory
0388 <wchar_t
0389 ,rbtree_best_fit<mutex_family, void*>
0390 ,iset_index>
0391 wfixed_managed_shared_memory;
0392
0393
0394
0395
0396
0397 template
0398 <class CharType
0399 ,class MemoryAlgorithm
0400 ,template<class IndexConfig> class IndexType>
0401 class basic_managed_heap_memory;
0402
0403 typedef basic_managed_heap_memory
0404 <char
0405 ,rbtree_best_fit<null_mutex_family>
0406 ,iset_index>
0407 managed_heap_memory;
0408
0409 typedef basic_managed_heap_memory
0410 <wchar_t
0411 ,rbtree_best_fit<null_mutex_family>
0412 ,iset_index>
0413 wmanaged_heap_memory;
0414
0415
0416
0417
0418
0419 template
0420 <class CharType
0421 ,class MemoryAlgorithm
0422 ,template<class IndexConfig> class IndexType>
0423 class basic_managed_mapped_file;
0424
0425 typedef basic_managed_mapped_file
0426 <char
0427 ,rbtree_best_fit<mutex_family>
0428 ,iset_index>
0429 managed_mapped_file;
0430
0431 typedef basic_managed_mapped_file
0432 <wchar_t
0433 ,rbtree_best_fit<mutex_family>
0434 ,iset_index>
0435 wmanaged_mapped_file;
0436
0437
0438
0439
0440
0441 class interprocess_exception;
0442 class lock_exception;
0443 class bad_alloc;
0444
0445
0446
0447
0448
0449
0450 template <class CharT
0451 ,class CharTraits = std::char_traits<CharT> >
0452 class basic_bufferbuf;
0453
0454 template <class CharT
0455 ,class CharTraits = std::char_traits<CharT> >
0456 class basic_ibufferstream;
0457
0458 template <class CharT
0459 ,class CharTraits = std::char_traits<CharT> >
0460 class basic_obufferstream;
0461
0462 template <class CharT
0463 ,class CharTraits = std::char_traits<CharT> >
0464 class basic_bufferstream;
0465
0466
0467
0468
0469
0470 template <class CharVector
0471 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
0472 class basic_vectorbuf;
0473
0474 template <class CharVector
0475 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
0476 class basic_ivectorstream;
0477
0478 template <class CharVector
0479 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
0480 class basic_ovectorstream;
0481
0482 template <class CharVector
0483 ,class CharTraits = std::char_traits<typename CharVector::value_type> >
0484 class basic_vectorstream;
0485
0486
0487
0488
0489
0490 template<class T, class Deleter>
0491 class scoped_ptr;
0492
0493 template<class T, class VoidPointer>
0494 class intrusive_ptr;
0495
0496 template<class T, class VoidAllocator, class Deleter>
0497 class shared_ptr;
0498
0499 template<class T, class VoidAllocator, class Deleter>
0500 class weak_ptr;
0501
0502
0503
0504
0505
0506 template<class VoidPointer>
0507 class message_queue_t;
0508
0509 typedef message_queue_t<offset_ptr<void> > message_queue;
0510
0511 }}
0512
0513 #endif
0514
0515 #include <boost/interprocess/detail/config_end.hpp>
0516
0517 #endif