BloombergLP::bdlma::SequentialPool::SequentialPool

Constructors

Synopses

Declared in <bdlma_sequentialpool.h>

Create a sequential pool for allocating memory blocks from a sequence of dynamically-allocated buffers, of which the initial buffer has the specified initialSize (in bytes). Optionally specify a basicAllocator used to supply memory for the dynamically-allocated buffers. If basicAllocator is 0, the currently installed default allocator is used. Optionally specify a growthStrategy used to control buffer growth. If no growthStrategy is specified, geometric growth is used. Optionally specify an alignmentStrategy used to control alignment of allocated memory blocks. If no alignmentStrategy is specified, natural alignment is used. By specifying an initialSize, the construction of a sequential pool will incur a memory allocation. The behavior is undefined unless 0 < initialSize. 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 initialSize. Also note that SequentialPool(int initialSize) is provided to avoid ambiguous definitions.

explicit
SequentialPool(int initialSize);
» more...

Create a sequential pool for allocating memory blocks from a sequence of dynamically-allocated buffers. Optionally specify a basicAllocator used to supply memory for the dynamically-allocated buffers. If basicAllocator is 0, the currently installed default allocator is used. Optionally specify a growthStrategy used to control buffer growth. If no growthStrategy is specified, geometric growth is used. Optionally specify an alignmentStrategy used to control alignment of allocated memory blocks. If no alignmentStrategy is specified, natural alignment is used. An implementation-defined value is used as the initial size of the internal buffer. 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 the implementation-defined value.

explicit
SequentialPool(bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool using the specified alignment strategy.

explicit
SequentialPool(
    bsls::Alignment::Strategy alignmentStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool using the specified growth strategy.

explicit
SequentialPool(
    bsls::BlockGrowth::Strategy growthStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool whose initial buffer has the specified initialSize.

explicit
SequentialPool(
    bsls::Types::size_type initialSize,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool using the specified growth and alignment strategies and an implementation-defined initial buffer size.

SequentialPool(
    bsls::BlockGrowth::Strategy growthStrategy,
    bsls::Alignment::Strategy alignmentStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool whose initial buffer has the specified initialSize and alignment strategy.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::Alignment::Strategy alignmentStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool whose initial buffer has the specified initialSize and growth strategy.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::BlockGrowth::Strategy growthStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool for allocating memory blocks from a sequence of dynamically-allocated buffers, of which the initial buffer has the specified initialSize (in bytes), and the internal buffer growth is limited to the specified maxBufferSize. Optionally specify a basicAllocator used to supply memory for the dynamically-allocated buffers. If basicAllocator is 0, the currently installed default allocator is used. Optionally specify a growthStrategy used to control buffer growth. If no growthStrategy is specified, geometric growth is used. Optionally specify an alignmentStrategy used to control alignment of allocated memory blocks. If no alignmentStrategy is specified, natural alignment is used. The behavior is undefined unless 0 < initialSize and initialSize <= maxBufferSize. Note that when constant growth is used, the size of the internal buffers will always be the same as initialSize.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::Types::size_type maxBufferSize,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool whose initial buffer has the specified initialSize, growth strategy, and alignment strategy.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::BlockGrowth::Strategy growthStrategy,
    bsls::Alignment::Strategy alignmentStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool with growth limited to maxBufferSize and the specified alignment strategy.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::Types::size_type maxBufferSize,
    bsls::Alignment::Strategy alignmentStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool with growth limited to maxBufferSize and the specified growth strategy.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::Types::size_type maxBufferSize,
    bsls::BlockGrowth::Strategy growthStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool with growth limited to maxBufferSize and the specified growth and alignment strategies.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::Types::size_type maxBufferSize,
    bsls::BlockGrowth::Strategy growthStrategy,
    bsls::Alignment::Strategy alignmentStrategy,
    bslma::Allocator* basicAllocator = 0);
» more...

Create a sequential pool for allocating memory blocks from a sequence of dynamically-allocated buffers, of which the initial buffer has the specified initialSize (in bytes), the internal buffer growth is limited to the specified maxBufferSize, the specified growthStrategy is used to control buffer growth, and the specified alignmentStrategy is used to control alignment of allocated memory blocks. Allocate the initial buffer only if the specified allocateInitialBuffer is true. Optionally specify a basicAllocator used to supply memory for the dynamically-allocated buffers. If basicAllocator is 0, the currently installed default allocator is used. The behavior is undefined unless 0 < initialSize and initialSize <= maxBufferSize. Note that when constant growth is used, the size of the internal buffers will always be the same as initialSize.

SequentialPool(
    bsls::Types::size_type initialSize,
    bsls::Types::size_type maxBufferSize,
    bsls::BlockGrowth::Strategy growthStrategy,
    bsls::Alignment::Strategy alignmentStrategy,
    bool allocateInitialBuffer,
    bslma::Allocator* basicAllocator = 0);
» more...