6 #ifndef INTELLISTREAM_STATEOFKEY_H
7 #define INTELLISTREAM_STATEOFKEY_H
62 class StateOfKeyBucket_Iterator {
69 : cellPtr(cp), bucketPtr(bp), bucketPos(bkpos) {}
84 bool operator==(
const StateOfKeyBucket_Iterator &t)
const {
85 return t.cellPtr == this->cellPtr;
88 bool operator!=(
const StateOfKeyBucket_Iterator &t)
const {
89 return t.cellPtr != this->cellPtr;
91 StateOfKeyBucket_Iterator &operator++() {
93 if (bucketPos == bucketPtr->count) {
94 bucketPtr = bucketPtr->next.get();
98 cellPtr = bucketPtr->cells[bucketPos];
123 typedef StateOfKeyBucket_Iterator iterator;
125 std::vector<AbstractStateOfKeyPtr> cells;
133 cells = std::vector<AbstractStateOfKeyPtr>(cnt);
140 while (!m_mut.try_lock());
160 return StateOfKeyBucket_Iterator(cells[0],
this, 0);
165 return StateOfKeyBucket_Iterator(
nullptr,
this, 0);
186 std::vector<StateOfKeyBucket> buckets;
223 #define newStateOfKeyHashTable std::make_shared<OoOJoin::StateOfKeyHashTable>
230 #define ImproveStateOfKeyTo(n, ru) std::static_pointer_cast<n>(ru)
The statistics and prediction state of a key.
Definition: StateOfKey.h:28
The multithread-supported bucket of StateOfKey.
Definition: StateOfKey.h:52
void insert(AbstractStateOfKeyPtr ask)
Insert a StateOfKey.
Definition: StateOfKey.cpp:30
AbstractStateOfKeyPtr getByKey(keyType probeKey)
probe if we have something with the same key as ask
Definition: StateOfKey.cpp:54
void lock()
lock this bucket
Definition: StateOfKey.h:139
void unlock()
unlock this bucket
Definition: StateOfKey.h:145
void setCellCount(size_t cnt)
set how many cells are allowed in one bucket
Definition: StateOfKey.h:132
The multithread-supported hash table, holding buckets of stateofkey.
Definition: StateOfKey.h:180
void insertSafe(AbstractStateOfKeyPtr ask)
Insert a StateOfKey, a thread safe version.
Definition: StateOfKey.cpp:82
AbstractStateOfKeyPtr getByKey(keyType probeKey)
probe if we have something with the same key as ask
Definition: StateOfKey.cpp:103
void insert(AbstractStateOfKeyPtr ask)
Insert a StateOfKey.
Definition: StateOfKey.cpp:94
std::shared_ptr< class AbstractStateOfKey > AbstractStateOfKeyPtr
The class to describe a shared pointer to AbstractStateOfKey.
Definition: StateOfKey.h:40
std::shared_ptr< class StateOfKeyBucket > StateOfKeyBucketPtr
The shared pointer to a StateOfKeyBucket.
Definition: StateOfKey.h:46
std::shared_ptr< StateOfKeyHashTable > StateOfKeyHashTablePtr
The shared pointer to a StateOfKeyHashTable.
Definition: StateOfKey.h:218
uint64_t keyType
Definition: Tuples.h:18
Definition: OperatorTable.cpp:7