[#BloombergLP-bdlma-BufferedSequentialPool-2constructor-0a2] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlma.adoc[bdlma]::xref:BloombergLP/bdlma/BufferedSequentialPool.adoc[BufferedSequentialPool]::BufferedSequentialPool :relfileprefix: ../../../ :mrdocs: Create a buffered sequential pool with growth limited to `maxBufferSize`. == Synopsis Declared in `<bdlma_bufferedsequentialpool.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- BufferedSequentialPool( 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); ---- == Description Create a buffered sequential pool 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`. [.small]#Created with https://www.mrdocs.com[MrDocs]#