BloombergLP::ball::AttributeContainerList

This class provides an in-core value-semantic list of AttributeContainer object addresses. Attribute container addresses are added to this list using pushFront(), which returns an iterator located at the new element. A AttributeContainerList::iterator object remains valid until the element referred to by the iterator is removed. Attribute container addresses can be removed using either remove(), removeAll(), or removeAllAndRelease(). This list object attempts to minimize the number of memory allocations it requires by placing the memory for elements that have been released in a free memory store, and re-using the memory when new elements are added. The removeAll() removes all the elements from the list, but does not release any allocated memory (placing it in the free store). The removeAllAndRelease() operation removes all elements and releases all allocated memory. Note that maintaining a free store is important for this component because the expectation is that elements will be both added and removed frequently.

Synopsis

Declared in <ball_attributecontainerlist.h>

class AttributeContainerList;

Type Aliases

NameDescription
allocator_type allocator_type is an alias for the type of allocator used by this class.
iterator An iterator over this list.

Member Functions

NameDescription
AttributeContainerList [constructor]Constructors
~AttributeContainerList [destructor]Destroy this object.
operator= Assign this container list the value of the specified rhs one, and return a reference to this list.
begin Return an iterator positioned at the beginning of the list of AttributeContainer object addresses represented by this object.
end Return an iterator positioned one past the final AttributeContainer object address in the list of addresses represented by this object.
get_allocator Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the default allocator in effect at construction is used.
hasValue Return true if the attribute having specified value exists in any of the attribute containers referred to by this object, and false otherwise.
numContainers Return the number of attribute container addresses currently in this list.
print Format this object to the specified output stream at the (absolute value of) the optionally specified indentation level and return a reference to stream. If level is specified, optionally specify spacesPerLevel, the number of spaces per indentation level for this and all of its nested objects. If level is negative, suppress indentation of the first line. If spacesPerLevel is negative, format the entire output on one line, suppressing all but the initial indentation (as governed by level). If stream is not valid on entry, this operation has no effect.
pushFront Prepend the address of the specified container to this list of attribute container addresses, and return an iterator located at the newly added list element.
remove Remove the specified element from this list. The behavior is undefined unless element is a valid iterator on this list and the referenced address has not previously been removed (by either remove(), removeAll(), or removeAllAndRelease().
removeAll Remove all the elements from this list. After this operation returns, numContainers() will be 0. This operation adds all the allocated memory to an internal free store, and does not deallocate any memory.
removeAllAndRelease Remove all the elements from this list and deallocate any allocated memory.
operator BloombergLP::bslmf::NestedTraitDeclaration<AttributeContainerList, UsesBslmaAllocator> Declare that this type uses a bslma allocator.

Non-Member Functions

NameDescription
operator!=Return true if the specified lhs and rhs lists do not have the same value, and false otherwise. Two lists do not have the same value if have differing numbers of attribute container addresses or any of the addresses at corresponding indices have different values.
operator==Return true if the specified lhs and rhs lists have the same value, and false otherwise. Two lists have the same value if they have the same number of attribute container addresses, and the address at each index position have the same value.