8#ifndef INCLUDED_BDLMA_SEQUENTIALPOOL
9#define INCLUDED_BDLMA_SEQUENTIALPOOL
344#include <bdlscm_version.h>
361#include <bsl_cstddef.h>
362#include <bsl_cstdint.h>
404 typedef bsl::uint64_t uint64_t;
413 static uint64_t initAlwaysUnavailable(
424 Block **d_freeListPrevAddr_p;
430 char *d_geometricBin[k_NUM_GEOMETRIC_BIN];
435 const uint64_t d_alwaysUnavailable;
443 uint64_t d_unavailable;
447 uint64_t d_allocated;
450 Block *d_largeBlockList_p;
598 bool allocateInitialBuffer,
629 template <
class TYPE>
636 template <
class TYPE>
747void *
operator new(bsl::size_t size, BloombergLP::bdlma::SequentialPool& pool);
755void operator delete(
void *address, BloombergLP::bdlma::SequentialPool& pool);
779 void *result = d_bufferManager.
allocate(size);
784 return allocateNonFastPath(size);
794 *size = d_bufferManager.
expand(result, *size);
805#ifndef BSLS_PLATFORM_CMP_SUN
808 const_cast<TYPE *
>(object)->~TYPE();
829 return d_bufferManager.
truncate(address, originalSize, newSize);
837 return d_allocator_p;
845void *
operator new(bsl::size_t size, BloombergLP::bdlma::SequentialPool& pool)
851void operator delete(
void *, BloombergLP::bdlma::SequentialPool&)
Definition bdlma_buffermanager.h:312
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:537
Definition bdlma_sequentialpool.h:383
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:802
SequentialPool(bsls::Types::size_type initialSize, bslma::Allocator *basicAllocator=0)
void deleteObject(const TYPE *object)
Definition bdlma_sequentialpool.h:815
SequentialPool(bsls::Types::size_type initialSize, bsls::Types::size_type maxBufferSize, bslma::Allocator *basicAllocator=0)
~SequentialPool()
Definition bdlma_sequentialpool.h:770
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:835
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:777
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:821
void * allocateAndExpand(bsls::Types::size_type *size)
Definition bdlma_sequentialpool.h:788
Definition bslma_allocator.h:545
virtual void * allocate(size_type size)=0
#define BSLS_ASSERT(X)
Definition bsls_assert.h:1976
#define BSLS_IDENT(str)
BSLS_IDENT() - insert string into .comment binary segment (if supported)
Definition bsls_ident.h:238
Definition bdlma_alignedallocator.h:278
AlignmentToType< BSLS_MAX_ALIGNMENT >::Type MaxAlignedType
Definition bsls_alignmentutil.h:307
Strategy
Types of alignment strategy.
Definition bsls_alignment.h:241
Strategy
Definition bsls_blockgrowth.h:172
std::size_t size_type
Definition bsls_types.h:126