BDE 4.39.x Production Release
Loading...
Searching...
No Matches
bslalg::HashTableAnchor Class Reference

#include <bslalg_hashtableanchor.h>

Detailed Description

This complex constrained in-*core* (value-semantic) attribute class characterizes the key data elements of a hash table. See the [](#Attributes) section information on the class attributes.

Note
Note that the class invariant is the identically the complex constraint of this component.

This class:

  • supports a complete set of value-semantic operations
    • except for bdex serialization and default construction
  • is in-core
  • is exception-neutral (agnostic)
  • is alias-safe
  • is const thread-safe For terminology see bsldoc_glossary .

See bslalg_hashtableanchor

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION (HashTableAnchor, bslmf::IsBitwiseCopyable)
 
 HashTableAnchor (HashTableBucket *bucketArrayAddress, std::size_t bucketArraySize, BidirectionalLink *listRootAddress)
 
 HashTableAnchor (const HashTableAnchor &original)=default
 
 ~HashTableAnchor ()
 
void setBucketArrayAddressAndSize (HashTableBucket *bucketArrayAddress, std::size_t bucketArraySize)
 
void setListRootAddress (BidirectionalLink *value)
 
void swap (HashTableAnchor &other)
 
HashTableBucketbucketArrayAddress () const
 
std::size_t bucketArraySize () const
 
BidirectionalLinklistRootAddress () const
 

Constructor & Destructor Documentation

◆ HashTableAnchor() [1/2]

bslalg::HashTableAnchor::HashTableAnchor ( bslalg::HashTableBucket bucketArrayAddress,
std::size_t  bucketArraySize,
bslalg::BidirectionalLink listRootAddress 
)
inline

Create a bslalg::HashTableAnchor object having the specified bucketArrayAddress, bucketArraySize, and listRootAddress attributes.

Precondition
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.

◆ HashTableAnchor() [2/2]

bslalg::HashTableAnchor::HashTableAnchor ( const HashTableAnchor original)
default

Create a bslalg::HashTableAnchor object having the same value as the specified original object.

◆ ~HashTableAnchor()

bslalg::HashTableAnchor::~HashTableAnchor ( )

Destroy this object.

Member Function Documentation

◆ BSLMF_NESTED_TRAIT_DECLARATION()

bslalg::HashTableAnchor::BSLMF_NESTED_TRAIT_DECLARATION ( HashTableAnchor  ,
bslmf::IsBitwiseCopyable   
)

◆ bucketArrayAddress()

HashTableBucket * bslalg::HashTableAnchor::bucketArrayAddress ( ) const
inline

Return the value of the bucketArrayAddress attribute of this object.

◆ bucketArraySize()

std::size_t bslalg::HashTableAnchor::bucketArraySize ( ) const
inline

Return the value of the bucketArraySize attribute of this object.

◆ listRootAddress()

BidirectionalLink * bslalg::HashTableAnchor::listRootAddress ( ) const
inline

Return the value listRootAddress attribute of this object.

◆ setBucketArrayAddressAndSize()

void bslalg::HashTableAnchor::setBucketArrayAddressAndSize ( HashTableBucket bucketArrayAddress,
std::size_t  bucketArraySize 
)
inline

Set the bucket array address and bucket array size attributes of this object to the specified bucketArrayAddress and bucketArraySize values.

Precondition
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.

◆ setListRootAddress()

void bslalg::HashTableAnchor::setListRootAddress ( BidirectionalLink value)
inline

Set the listRootAddress attribute of this object to the specified value.

◆ swap()

void bslalg::HashTableAnchor::swap ( HashTableAnchor other)
inline

Efficiently exchange the value of this object with the value of the specified other object. This method provides the no-throw exception-safety guarantee.


The documentation for this class was generated from the following file: