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