BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bdlma.h
Go to the documentation of this file.
1/// @file bdlma.h
2///
3///
4/// @defgroup bdlma Package bdlma
5/// @brief Basic Development Library Memory Allocators (bdlma)
6/// @addtogroup bdl
7/// @{
8/// @addtogroup bdlma
9/// [bdlma]: group__bdlma.html
10/// @{
11///
12/// # Purpose {#bdlma-purpose}
13/// Provide allocators, pools, and other memory-management tools.
14///
15/// # Mnemonic {#bdlma-mnemonic}
16/// Basic Development Library Memory Allocators (bdlma)
17///
18/// # Description {#bdlma-description}
19/// The 'bdlma' package provides concrete allocators derived from the
20/// 'bslma::Allocator' protocol.
21///
22/// ## Hierarchical Synopsis
23///
24/// The 'bdlma' package currently has 31 components having 8 levels of physical
25/// dependency. The list below shows the hierarchical ordering of the components.
26/// The order of components within each level is not architecturally significant,
27/// just alphabetical.
28/// @code
29/// 8. bdlma_localbufferedobject
30/// bdlma_multipoolallocator
31///
32/// 7. bdlma_aligningallocator
33/// bdlma_localsequentialallocator
34/// bdlma_multipool
35///
36/// 6. bdlma_bufferedsequentialallocator
37///
38/// 5. bdlma_bufferedsequentialpool
39/// bdlma_concurrentmultipoolallocator
40/// bdlma_sequentialallocator
41///
42/// 4. bdlma_concurrentfixedpool
43/// bdlma_concurrentmultipool
44/// bdlma_concurrentpoolallocator
45/// bdlma_sequentialpool
46///
47/// 3. bdlma_buffermanager
48/// bdlma_concurrentpool
49/// bdlma_defaultdeleter
50/// bdlma_factory
51/// bdlma_pool
52///
53/// 2. bdlma_alignedallocator
54/// bdlma_autoreleaser
55/// bdlma_blocklist
56/// bdlma_bufferimputil
57/// bdlma_concurrentallocatoradapter
58/// bdlma_countingallocator
59/// bdlma_deleter
60/// bdlma_guardingallocator
61/// bdlma_heapbypassallocator
62/// bdlma_infrequentdeleteblocklist
63/// bdlma_managedallocator
64/// bdlma_memoryblockdescriptor
65///
66/// 1. bdlma_localbufferedobject_cpp03 !PRIVATE!
67/// @endcode
68///
69/// ## Component Synopsis
70///
71/// @ref bdlma_alignedallocator :
72/// Provide a protocol for memory allocators that support alignment.
73///
74/// @ref bdlma_aligningallocator :
75/// Provide an allocator-wrapper to allocate with a minimum alignment.
76///
77/// @ref bdlma_autoreleaser :
78/// Release memory to a managed allocator or pool at destruction.
79///
80/// @ref bdlma_blocklist :
81/// Provide allocation and management of a sequence of memory blocks.
82///
83/// @ref bdlma_bufferedsequentialallocator :
84/// Provide an efficient managed allocator using an external buffer.
85///
86/// @ref bdlma_bufferedsequentialpool :
87/// Provide sequential memory using an external buffer and a fallback.
88///
89/// @ref bdlma_bufferimputil :
90/// Provide pure procedures for allocating memory from a buffer.
91///
92/// @ref bdlma_buffermanager :
93/// Provide a memory manager that manages an external buffer.
94///
95/// @ref bdlma_concurrentallocatoradapter :
96/// Provide a thread-enabled adapter for the allocator protocol.
97///
98/// @ref bdlma_concurrentfixedpool :
99/// Provide thread-safe pool of limited # of blocks of uniform size.
100///
101/// @ref bdlma_concurrentmultipool :
102/// Provide a memory manager to manage pools of varying block sizes.
103///
104/// @ref bdlma_concurrentmultipoolallocator :
105/// Provide an allocator to manage pools of varying object sizes.
106///
107/// @ref bdlma_concurrentpool :
108/// Provide thread-safe allocation of memory blocks of uniform size.
109///
110/// @ref bdlma_concurrentpoolallocator :
111/// Provide thread-safe memory-pooling allocator of fixed-size blocks.
112///
113/// @ref bdlma_countingallocator :
114/// Provide a memory allocator that counts allocated bytes.
115///
116/// @ref bdlma_defaultdeleter :
117/// Provide a concrete default deleter w/optionally-supplied allocator.
118///
119/// @ref bdlma_deleter :
120/// Provide a protocol for deleting objects of parameterized type.
121///
122/// @ref bdlma_factory :
123/// Provide a protocol for creator/deleter of parameterized objects.
124///
125/// @ref bdlma_guardingallocator :
126/// Provide a memory allocator that guards against buffer overruns.
127///
128/// @ref bdlma_heapbypassallocator :
129/// Support memory allocation directly from virtual memory.
130///
131/// @ref bdlma_infrequentdeleteblocklist :
132/// Provide allocation and management of infrequently deleted blocks.
133///
134/// @ref bdlma_localbufferedobject :
135/// Provide easy way to create an object with a local arena allocator.
136///
137/// 'bdlma_localbufferedobject_cpp03': !PRIVATE!
138/// Provide C++03 implementation for bdlma_localbufferedobject.h
139///
140/// @ref bdlma_localsequentialallocator :
141/// Provide an efficient managed allocator using a local buffer.
142///
143/// @ref bdlma_managedallocator :
144/// Provide a protocol for memory allocators that support `release`.
145///
146/// @ref bdlma_memoryblockdescriptor :
147/// Provide a class describing a block of memory.
148///
149/// @ref bdlma_multipool :
150/// Provide a memory manager to manage pools of varying block sizes.
151///
152/// @ref bdlma_multipoolallocator :
153/// Provide a memory-pooling allocator of heterogeneous block sizes.
154///
155/// @ref bdlma_pool :
156/// Provide efficient allocation of memory blocks of uniform size.
157///
158/// @ref bdlma_sequentialallocator :
159/// Provide a managed allocator using dynamically-allocated buffers.
160///
161/// @ref bdlma_sequentialpool :
162/// Provide sequential memory using dynamically-allocated buffers.
163///
164/// @}
165/** @} */