mutable
A Database System for Research and Fast Prototyping
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Friends
m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C > Struct Template Reference
Collaboration diagram for m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >:
[legend]

Public Types

using map_type = std::conditional_t< Is_Const, const RefCountingHashMap, RefCountingHashMap >
 
using bucket_type = std::conditional_t< Is_Const, const typename map_type::entry_type, typename map_type::entry_type >
 
using pointer = std::conditional_t< Is_Const, const typename map_type::const_pointer, typename map_type::pointer >
 
using reference = std::conditional_t< Is_Const, const typename map_type::const_reference, typename map_type::reference >
 
using size_type = typename map_type::size_type
 

Public Member Functions

 the_bucket_iterator (map_type &map, size_type bucket_index)
 
bool has_next () const
 
the_bucket_iteratoroperator++ ()
 
the_bucket_iteratoroperator++ (int)
 
reference operator* () const
 
pointer operator-> () const
 
size_type probe_length () const
 
size_type probe_distance () const
 
size_type current_index () const
 
size_type bucket_index () const
 

Static Public Attributes

static constexpr bool Is_Const = C
 

Private Member Functions

bucket_typebucket () const
 

Private Attributes

map_typemap_
 
size_type bucket_index_
 
size_type step_ = 0
 
size_type max_step_
 

Friends

struct RefCountingHashMap
 

Detailed Description

template<typename Key, typename Value, typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
struct m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >

Definition at line 94 of file RefCountingHashMap.hpp.

Member Typedef Documentation

◆ bucket_type

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
using m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::bucket_type = std::conditional_t<Is_Const, const typename map_type::entry_type, typename map_type::entry_type>

Definition at line 101 of file RefCountingHashMap.hpp.

◆ map_type

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
using m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::map_type = std::conditional_t<Is_Const, const RefCountingHashMap, RefCountingHashMap>

Definition at line 100 of file RefCountingHashMap.hpp.

◆ pointer

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
using m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::pointer = std::conditional_t<Is_Const, const typename map_type::const_pointer, typename map_type::pointer>

Definition at line 102 of file RefCountingHashMap.hpp.

◆ reference

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
using m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::reference = std::conditional_t<Is_Const, const typename map_type::const_reference, typename map_type::reference>

Definition at line 103 of file RefCountingHashMap.hpp.

◆ size_type

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
using m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::size_type = typename map_type::size_type

Definition at line 104 of file RefCountingHashMap.hpp.

Constructor & Destructor Documentation

◆ the_bucket_iterator()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::the_bucket_iterator ( map_type map,
size_type  bucket_index 
)
inline

Member Function Documentation

◆ bucket()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
bucket_type * m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::bucket ( ) const
inlineprivate

◆ bucket_index()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
size_type m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::bucket_index ( ) const
inline

◆ current_index()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
size_type m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::current_index ( ) const
inline

◆ has_next()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
bool m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::has_next ( ) const
inline

◆ operator*()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
reference m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
the_bucket_iterator & m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
the_bucket_iterator & m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::operator++ ( int  )
inline

◆ operator->()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
pointer m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::operator-> ( ) const
inline

◆ probe_distance()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
size_type m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::probe_distance ( ) const
inline

◆ probe_length()

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
size_type m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::probe_length ( ) const
inline

Friends And Related Function Documentation

◆ RefCountingHashMap

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
friend struct RefCountingHashMap
friend

Definition at line 96 of file RefCountingHashMap.hpp.

Field Documentation

◆ bucket_index_

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
size_type m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::bucket_index_
private

◆ Is_Const

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
constexpr bool m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::Is_Const = C
staticconstexpr

Definition at line 98 of file RefCountingHashMap.hpp.

◆ map_

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
map_type& m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::map_
private

◆ max_step_

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
size_type m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::max_step_
private

◆ step_

template<typename Key , typename Value , typename Hash = std::hash<Key>, typename KeyEqual = std::equal_to<Key>>
template<bool C>
size_type m::RefCountingHashMap< Key, Value, Hash, KeyEqual >::the_bucket_iterator< C >::step_ = 0
private

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