template <typename _KeyType, typename _PtrType, typename _BucketType = SinglyLinkedList<_PtrType>, typename _HashType = size_t, _HashType NumBuckets = internal::kDefaultNumBuckets, typename _KeyTraits = DefaultKeyedObjectTraits<
_KeyType, typename internal::ContainerPtrTraits<_PtrType>::ValueType>, typename _HashTraits = DefaultHashTraits<
_KeyType, typename internal::ContainerPtrTraits<_PtrType>::ValueType, _HashType,
NumBuckets>>
class HashTable
Defined at line 252 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
Public Members
static const bool SupportsConstantOrderErase
static const bool SupportsConstantOrderSize
static const bool IsAssociative
static const bool IsSequenced
Public Methods
void HashTable<_KeyType, _PtrType, _BucketType, _HashType, NumBuckets, _KeyTraits, _HashTraits> ()
Defined at line 297 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void HashTable<_KeyType, _PtrType, _BucketType, _HashType, NumBuckets, _KeyTraits, _HashTraits> (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 307 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void HashTable<_KeyType, _PtrType, _BucketType, _HashType, NumBuckets, _KeyTraits, _HashTraits> (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 307 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void HashTable<_KeyType, _PtrType, _BucketType, _HashType, NumBuckets, _KeyTraits, _HashTraits> (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 307 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void HashTable<_KeyType, _PtrType, _BucketType, _HashType, NumBuckets, _KeyTraits, _HashTraits> (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 307 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void HashTable<_KeyType, _PtrType, _BucketType, _HashType, NumBuckets, _KeyTraits, _HashTraits> (HashTableOption )
Defined at line 315 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void Init (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 322 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void Init (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 322 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void Init (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 322 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void Init (std::unique_ptr<BucketType[]> buckets_storage, size_t bucket_count)
Defined at line 322 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void ~HashTable<_KeyType, _PtrType, _BucketType, _HashType, NumBuckets, _KeyTraits, _HashTraits> ()
Defined at line 328 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
iterator begin ()
Standard begin/end, cbegin/cend iterator accessors.
Defined at line 331 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
const_iterator begin ()
Defined at line 332 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
const_iterator cbegin ()
Defined at line 333 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
iterator end ()
Defined at line 335 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
const_iterator end ()
Defined at line 336 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
const_iterator cend ()
Defined at line 337 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
iterator make_iterator (ValueType & obj)
make_iterator : construct an iterator out of a reference to an object.
Defined at line 340 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
const_iterator make_iterator (const ValueType & obj)
Defined at line 345 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void insert (const PtrType & ptr)
Defined at line 351 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void insert (PtrType && ptr)
Defined at line 352 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
bool insert_or_find (const PtrType & ptr, iterator * iter)
insert_or_find
Insert the element pointed to by ptr if it is not already in the
HashTable, or find the element that the ptr collided with instead.
'iter' is an optional out parameter pointer to an iterator which
will reference either the newly inserted item, or the item whose key
collided with ptr.
insert_or_find returns true if there was no collision and the item was
successfully inserted, otherwise it returns false.
Defined at line 381 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
bool insert_or_find (PtrType && ptr, iterator * iter)
Defined at line 385 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
PtrType insert_or_replace (const PtrType & ptr)
insert_or_replace
Find the element in the hashtable with the same key as *ptr and replace
it with ptr, then return the pointer to the element which was replaced.
If no element in the hashtable shares a key with *ptr, simply add ptr to
the hashtable and return nullptr.
Defined at line 414 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
PtrType insert_or_replace (PtrType && ptr)
Defined at line 416 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
iterator find (const KeyType & key)
Defined at line 440 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
const_iterator find (const KeyType & key)
Defined at line 450 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
PtrType erase (const KeyType & key)
Defined at line 461 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
PtrType erase (const iterator & iter)
Defined at line 473 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
PtrType erase (ValueType & obj)
Defined at line 482 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void clear ()
clear
Clear out the all of the hashtable buckets. For managed pointer types,
this will release all references held by the hashtable to the objects
which were in it.
Defined at line 489 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
void clear_unsafe ()
clear_unsafe
Perform a clear_unsafe on all buckets and reset the internal count to
zero. See comments in fbl/intrusive_single_list.h
Think carefully before calling this!
Defined at line 502 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
HashType bucket_count ()
Defined at line 517 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
size_t size ()
Defined at line 518 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
bool is_empty ()
Defined at line 519 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
template <typename UnaryFn>
PtrType erase_if (UnaryFn fn)
erase_if
Find the first member of the hash table which satisfies the predicate
given by 'fn' and erase it from the list, returning a referenced pointer
to the removed element. Return nullptr if no member satisfies the
predicate.
Defined at line 528 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
template <typename UnaryFn>
const_iterator find_if (UnaryFn fn)
find_if
Find the first member of the hash table which satisfies the predicate
given by 'fn' and return an iterator to it. Return end() if no member
satisfies the predicate.
Defined at line 555 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
template <typename UnaryFn>
iterator find_if (UnaryFn fn)
Defined at line 568 of file ../../zircon/system/ulib/fbl/include/fbl/intrusive_hash_table.h
Records
Friends
template <typename _KeyTypetypename _PtrTypetypename _BucketType = SinglyLinkedList<_PtrType>typename _HashType = size_t_HashType NumBuckets = internal::kDefaultNumBucketstypename _KeyTraits = DefaultKeyedObjectTraits<
_KeyType, typename internal::ContainerPtrTraits<_PtrType>::ValueType>typename _HashTraits = DefaultHashTraits<
_KeyType, typename internal::ContainerPtrTraits<_PtrType>::ValueType, _HashType,
NumBuckets>>
class HashTableChecker