PageRenderTime 51ms CodeModel.GetById 14ms app.highlight 31ms RepoModel.GetById 1ms app.codeStats 1ms

/Src/Dependencies/Boost/boost/interprocess/interprocess_fwd.hpp

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