Quick Links: |
#include <bslalg_hashtableanchor.h>
Public Member Functions | |
BSLMF_NESTED_TRAIT_DECLARATION (HashTableAnchor, bsl::is_trivially_copyable) | |
HashTableAnchor (HashTableBucket *bucketArrayAddress, std::size_t bucketArraySize, BidirectionalLink *listRootAddress) | |
HashTableAnchor (const HashTableAnchor &original) | |
bslalg::HashTableAnchor & | operator= (const bslalg::HashTableAnchor &rhs) |
void | setBucketArrayAddressAndSize (HashTableBucket *bucketArrayAddress, std::size_t bucketArraySize) |
void | setListRootAddress (BidirectionalLink *value) |
void | swap (HashTableAnchor &other) |
HashTableBucket * | bucketArrayAddress () const |
std::size_t | bucketArraySize () const |
BidirectionalLink * | listRootAddress () const |
This complex constrained in-*core* (value-semantic) attribute class characterizes the key data elements of a hash table. See the "Attributes" section under @DESCRIPTION in the component-level documentation for/ information on the class attributes. Note that the class invariant is the identically the complex constraint of this component.
This class:
supports a complete set of value-semantic operations
bdex
serialization and default construction const
thread-safe For terminology see bsldoc_glossary
.
See Component bslalg_hashtableanchor
bslalg::HashTableAnchor::HashTableAnchor | ( | HashTableBucket * | bucketArrayAddress, | |
std::size_t | bucketArraySize, | |||
BidirectionalLink * | listRootAddress | |||
) |
Create a bslalg::HashTableAnchor
object having the specified bucketArrayAddress
, bucketArraySize
, and listRootAddress
attributes. The behavior is undefined unless bucketArrayAddress
refers to a contiguous sequence of valid bslalg::HashTableBucket
objects of at least bucketArraySize
or unless both bucketArrayAddress
and bucketArraySize
are 0.
bslalg::HashTableAnchor::HashTableAnchor | ( | const HashTableAnchor & | original | ) |
Create a bslalg::HashTableAnchor
object having the same value as the specified original
object.
bslalg::HashTableAnchor::BSLMF_NESTED_TRAIT_DECLARATION | ( | HashTableAnchor | , | |
bsl::is_trivially_copyable | ||||
) |
bslalg::HashTableAnchor& bslalg::HashTableAnchor::operator= | ( | const bslalg::HashTableAnchor & | rhs | ) |
Assign to this object the value of the specified rhs
object, and return a reference providing modifiable access to this object.
void bslalg::HashTableAnchor::setBucketArrayAddressAndSize | ( | HashTableBucket * | bucketArrayAddress, | |
std::size_t | bucketArraySize | |||
) |
Set the bucket array address and bucket array size attributes of this object to the specified bucketArrayAddress
and bucketArraySize
values. The behavior is undefined unless bucketArrayAddress
refers to a contiguous sequence of valid bslalg::HashTableBucket
objects of at least bucketArraySize
, or unless both bucketArrayAddress
and bucketArraySize
are 0.
void bslalg::HashTableAnchor::setListRootAddress | ( | BidirectionalLink * | value | ) |
Set the listRootAddress
attribute of this object to the specified value
.
void bslalg::HashTableAnchor::swap | ( | HashTableAnchor & | other | ) |
Efficiently exchange the value of this object with the value of the specified other
object. This method provides the no-throw exception-safety guarantee.
HashTableBucket* bslalg::HashTableAnchor::bucketArrayAddress | ( | ) | const |
Return the value of the bucketArrayAddress
attribute of this object.
std::size_t bslalg::HashTableAnchor::bucketArraySize | ( | ) | const |
Return the value of the bucketArraySize
attribute of this object.
BidirectionalLink* bslalg::HashTableAnchor::listRootAddress | ( | ) | const |
Return the value listRootAddress
attribute of this object.