BloombergLP::bslstl::BidirectionalNodePool

This class provides methods for creating and destroying nodes using the appropriate allocator-traits of the (template parameter) type ALLOCATOR.

Synopsis

Declared in <bslstl_bidirectionalnodepool.h>

template<
    class VALUE,
    class ALLOCATOR>
class BidirectionalNodePool;

Type Aliases

NameDescription
AllocatorType Alias for the allocator type defined by SimplePool.
size_type Alias for the size_type of the allocator defined by SimplePool.

Member Functions

NameDescription
BidirectionalNodePool [constructor]Constructors
adopt Adopt all outstanding memory allocations associated with the specified node pool. The behavior is undefined unless this pool uses the same allocator as that associated with pool. The behavior is also undefined unless this pool is in the default-constructed state.
allocator allocator overloads
cloneNode Allocate a node of the type BidirectionalNode<VALUE>, and copy-construct an object of the (template parameter) type VALUE having the same value as the specified original at the value attribute of the node. Return the address of the node. Note that the next and prev attributes of the returned node will be uninitialized.
deleteNode Destroy the VALUE attribute of the specified linkNode and return the memory footprint of linkNode to this pool for potential reuse. The behavior is undefined unless node refers to a bslalg::BidirectionalNode<VALUE> that was allocated by this pool.
emplaceIntoNewNode Allocate a node of the type BidirectionalNode<VALUE>, and construct in-place an object of the (template parameter) type VALUE with the specified constructor arguments. Return the address of the node. Note that the next and prev attributes of the returned node will be uninitialized.
moveIntoNewNode Allocate a node of the type BidirectionalNode<VALUE>, and move-construct an object of the (template parameter) type VALUE with the (explicitly moved) value indicated by the value attribute of the specified original link. Return the address of the node. Note that the next and prev attributes of the returned node will be uninitialized. Also note that the value attribute of original is left in a valid but unspecified state.
release Relinquish all memory currently allocated with the memory pool maintained by this object.
reserveNodes Add to this pool sufficient memory to satisfy memory requests for at least the specified numNodes before the pool replenishes. The additional memory is added irrespective of the amount of free memory when called. The behavior is undefined unless 0 < numNodes.
swapExchangeAllocators Efficiently exchange the nodes and the allocator of this object with those of the specified other object. This method provides the no-throw exception-safety guarantee.
swapRetainAllocators Efficiently exchange the nodes of this object with those of the specified other object. This method provides the no-throw exception-safety guarantee. The behavior is undefined unless allocator() == other.allocator().

Non-Member Functions

NameDescription
swapEfficiently exchange the nodes of the specified a object with those of the specified b object. This method provides the no-throw exception-safety guarantee. The behavior is undefined unless a.allocator() == b.allocator().