8#ifndef INCLUDED_BDLMA_SEQUENTIALPOOL
9#define INCLUDED_BDLMA_SEQUENTIALPOOL
339#include <bdlscm_version.h>
356#include <bsl_cstddef.h>
357#include <bsl_cstdint.h>
398 typedef bsl::uint64_t uint64_t;
407 static uint64_t initAlwaysUnavailable(
418 Block **d_freeListPrevAddr_p;
424 char *d_geometricBin[k_NUM_GEOMETRIC_BIN];
429 const uint64_t d_alwaysUnavailable;
437 uint64_t d_unavailable;
441 uint64_t d_allocated;
444 Block *d_largeBlockList_p;
584 bool allocateInitialBuffer,
614 template <
class TYPE>
620 template <
class TYPE>
727void *
operator new(bsl::size_t size, BloombergLP::bdlma::SequentialPool& pool);
734void operator delete(
void *address, BloombergLP::bdlma::SequentialPool& pool);
758 void *result = d_bufferManager.
allocate(size);
763 return allocateNonFastPath(size);
773 *size = d_bufferManager.
expand(result, *size);
784#ifndef BSLS_PLATFORM_CMP_SUN
787 const_cast<TYPE *
>(object)->~TYPE();
808 return d_bufferManager.
truncate(address, originalSize, newSize);
816 return d_allocator_p;
824void *
operator new(bsl::size_t size, BloombergLP::bdlma::SequentialPool& pool)
830void operator delete(
void *, BloombergLP::bdlma::SequentialPool&)
Definition bdlma_buffermanager.h:307
bsls::Types::size_type truncate(void *address, bsls::Types::size_type originalSize, bsls::Types::size_type newSize)
bsls::Types::size_type expand(void *address, bsls::Types::size_type size)
void * allocate(bsls::Types::size_type size)
Definition bdlma_buffermanager.h:523
Definition bdlma_sequentialpool.h:378
SequentialPool(bsls::Types::size_type initialSize, bsls::Types::size_type maxBufferSize, bsls::BlockGrowth::Strategy growthStrategy, bslma::Allocator *basicAllocator=0)
void deleteObjectRaw(const TYPE *object)
Definition bdlma_sequentialpool.h:781
SequentialPool(bsls::Types::size_type initialSize, bslma::Allocator *basicAllocator=0)
void deleteObject(const TYPE *object)
Definition bdlma_sequentialpool.h:794
SequentialPool(bsls::Types::size_type initialSize, bsls::Types::size_type maxBufferSize, bslma::Allocator *basicAllocator=0)
~SequentialPool()
Definition bdlma_sequentialpool.h:749
SequentialPool(bsls::BlockGrowth::Strategy growthStrategy, bsls::Alignment::Strategy alignmentStrategy, bslma::Allocator *basicAllocator=0)
void reserveCapacity(bsls::Types::size_type numBytes)
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)
bslma::Allocator * allocator() const
Definition bdlma_sequentialpool.h:814
SequentialPool(bsls::Types::size_type initialSize, bsls::Types::size_type maxBufferSize, bsls::Alignment::Strategy alignmentStrategy, bslma::Allocator *basicAllocator=0)
SequentialPool(bsls::Types::size_type initialSize, bsls::Alignment::Strategy alignmentStrategy, bslma::Allocator *basicAllocator=0)
SequentialPool(int initialSize)
SequentialPool(bsls::Alignment::Strategy alignmentStrategy, bslma::Allocator *basicAllocator=0)
SequentialPool(bsls::Types::size_type initialSize, bsls::Types::size_type maxBufferSize, bsls::BlockGrowth::Strategy growthStrategy, bsls::Alignment::Strategy alignmentStrategy, bslma::Allocator *basicAllocator=0)
SequentialPool(bsls::Types::size_type initialSize, bsls::BlockGrowth::Strategy growthStrategy, bslma::Allocator *basicAllocator=0)
SequentialPool(bslma::Allocator *basicAllocator=0)
SequentialPool(bsls::BlockGrowth::Strategy growthStrategy, bslma::Allocator *basicAllocator=0)
void * allocate(bsls::Types::size_type size)
Definition bdlma_sequentialpool.h:756
SequentialPool(bsls::Types::size_type initialSize, bsls::BlockGrowth::Strategy growthStrategy, bsls::Alignment::Strategy alignmentStrategy, bslma::Allocator *basicAllocator=0)
bsls::Types::size_type truncate(void *address, bsls::Types::size_type originalSize, bsls::Types::size_type newSize)
Definition bdlma_sequentialpool.h:800
void * allocateAndExpand(bsls::Types::size_type *size)
Definition bdlma_sequentialpool.h:767
Definition bslma_allocator.h:457
virtual void * allocate(size_type size)=0
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1804
#define BSLS_IDENT(str)
Definition bsls_ident.h:195
Definition bdlma_alignedallocator.h:276
AlignmentToType< BSLS_MAX_ALIGNMENT >::Type MaxAlignedType
Definition bsls_alignmentutil.h:282
Strategy
Types of alignment strategy.
Definition bsls_alignment.h:239
Strategy
Definition bsls_blockgrowth.h:169
std::size_t size_type
Definition bsls_types.h:124