OoOJoin  0.0.1
The next generation of out-of-order join operator
OoOJoin::StateOfKeyHashTable Class Reference

The multithread-supported hash table, holding buckets of stateofkey. More...

#include <Common/StateOfKey.h>

Collaboration diagram for OoOJoin::StateOfKeyHashTable:

Public Member Functions

 StateOfKeyHashTable (size_t bks, size_t cells=4)
 pre-init with several buckets More...
 
void insert (AbstractStateOfKeyPtr ask)
 Insert a StateOfKey. More...
 
void insertSafe (AbstractStateOfKeyPtr ask)
 Insert a StateOfKey, a thread safe version. More...
 
AbstractStateOfKeyPtr getByKey (keyType probeKey)
 probe if we have something with the same key as ask More...
 

Public Attributes

keyType hash_mask
 
keyType skip_bits
 
std::vector< StateOfKeyBucketbuckets
 

Detailed Description

The multithread-supported hash table, holding buckets of stateofkey.

Constructor & Destructor Documentation

◆ StateOfKeyHashTable()

StateOfKeyHashTable::StateOfKeyHashTable ( size_t  bks,
size_t  cells = 4 
)

pre-init with several buckets

Parameters
bksthe number of buckets
cellsHow many cells are allowed in one bucket

Member Function Documentation

◆ getByKey()

AbstractStateOfKeyPtr StateOfKeyHashTable::getByKey ( keyType  probeKey)

probe if we have something with the same key as ask

Parameters
probeKeyThe key for probing
Returns
the stored AbstractStateOfKey, nullptr if nothing

◆ insert()

void StateOfKeyHashTable::insert ( AbstractStateOfKeyPtr  ask)

Insert a StateOfKey.

Parameters
askThe AbstractStateOfKey
Note
not thread safe, use insertLock instaead for thread safe

◆ insertSafe()

void StateOfKeyHashTable::insertSafe ( AbstractStateOfKeyPtr  ask)

Insert a StateOfKey, a thread safe version.

Parameters
askThe AbstractStateOfKey

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