BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bslalg::HashTableAnchor Class Reference

#include <bslalg_hashtableanchor.h>

Public Member Functions

 BSLMF_NESTED_TRAIT_DECLARATION (HashTableAnchor, bslmf::IsBitwiseCopyable)
 
 HashTableAnchor (HashTableBucket *bucketArrayAddress, std::size_t bucketArraySize, BidirectionalLink *listRootAddress)
 
 HashTableAnchor (const HashTableAnchor &original)
 
~bslalg HashTableAnchor ()
 Destroy this object.
 
void setBucketArrayAddressAndSize (HashTableBucket *bucketArrayAddress, std::size_t bucketArraySize)
 
void setListRootAddress (BidirectionalLink *value)
 
void swap (HashTableAnchor &other)
 
HashTableBucketbucketArrayAddress () const
 
std::size_t bucketArraySize () const
 Return the value of the bucketArraySize attribute of this object.
 
BidirectionalLinklistRootAddress () const
 Return the value listRootAddress attribute of this object.
 

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

Constructor & Destructor Documentation

◆ HashTableAnchor() [1/3]

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. 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/3]

bslalg::HashTableAnchor::HashTableAnchor ( const HashTableAnchor original)
inline

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

◆ HashTableAnchor() [3/3]

~bslalg bslalg::HashTableAnchor::HashTableAnchor ( )

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

◆ listRootAddress()

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

◆ 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. 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: