[#BloombergLP-bdlma-BufferedSequentialAllocator-2constructor-00] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlma.adoc[bdlma]::xref:BloombergLP/bdlma/BufferedSequentialAllocator.adoc[BufferedSequentialAllocator]::BufferedSequentialAllocator :relfileprefix: ../../../ :mrdocs: Constructors == Synopses Declared in `<bdlma_bufferedsequentialallocator.h>` Create a buffered sequential allocator for allocating memory blocks from the specified external `buffer` having the specified `size` (in bytes). Optionally specify a `growthStrategy` used to control buffer growth. If a `growthStrategy` is not specified, geometric growth is used. Optionally specify an `alignmentStrategy` used to align allocated memory blocks. If an `alignmentStrategy` is not specified, natural alignment is used. Optionally specify a `basicAllocator` used to supply memory should the capacity of `buffer` be exhausted. If `basicAllocator` is 0, the currently installed default allocator is used. The behavior is undefined unless `0 < size`, and `buffer` has at least `size` bytes. Note that, due to alignment effects, it is possible that not all `size` bytes of memory in `buffer` can be used for allocation. Also note that no limit is imposed on the size of the internal buffers when geometric growth is used. Also note that when constant growth is used, the size of the internal buffers will always be the same as `size`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-07.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-07.adoc[_» more..._]# Create a buffered sequential allocator using the specified alignment strategy for allocations from `buffer`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-0c.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-0c.adoc[_» more..._]# Create a buffered sequential allocator using the specified growth strategy for allocations from `buffer`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-02.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-02.adoc[_» more..._]# Create a buffered sequential allocator for allocating memory blocks from the specified external `buffer` having the specified `size` (in bytes), or from an internal buffer (after the external `buffer` is exhausted) where the buffer growth is limited to the specified `maxBufferSize` (in bytes). Optionally specify a `growthStrategy` used to control buffer growth. If a `growthStrategy` is not specified, geometric growth is used. Optionally specify an `alignmentStrategy` used to align allocated memory blocks. If an `alignmentStrategy` is not specified, natural alignment is used. Optionally specify a `basicAllocator` used to supply memory should the capacity of `buffer` be exhausted. If `basicAllocator` is 0, the currently installed default allocator is used. The behavior is undefined unless `0 < size`, `size <= maxBufferSize`, and `buffer` has at least `size` bytes. Note that, due to alignment effects, it is possible that not all `size` bytes of memory in `buffer` can be used for allocation. Also note that when constant growth is used, the size of the internal buffers will always be the same as `size`. Create a buffered sequential allocator with growth limited to `maxBufferSize`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-06a.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] maxBufferSize, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-06a.adoc[_» more..._]# Create a buffered sequential allocator using the specified growth and alignment strategies for allocations from `buffer`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-0b.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-0b.adoc[_» more..._]# Create a buffered sequential allocator with the specified alignment strategy. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-08.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] maxBufferSize, xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-08.adoc[_» more..._]# Create a buffered sequential allocator with growth limited to `maxBufferSize` and the specified growth strategy. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-069.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] maxBufferSize, xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-069.adoc[_» more..._]# Create a buffered sequential allocator with the specified growth and alignment strategies. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-0f.adoc[BufferedSequentialAllocator]( char* buffer, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] size, xref:BloombergLP/bsls/Types/size_type.adoc[bsls::Types::size_type] maxBufferSize, xref:BloombergLP/bsls/BlockGrowth/Strategy.adoc[bsls::BlockGrowth::Strategy] growthStrategy, xref:BloombergLP/bsls/Alignment/Strategy.adoc[bsls::Alignment::Strategy] alignmentStrategy, xref:BloombergLP/bslma/Allocator.adoc[bslma::Allocator]* basicAllocator = 0); ---- [.small]#xref:BloombergLP/bdlma/BufferedSequentialAllocator/2constructor-0f.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#