Flex  0.17.9
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
gs::IdIndexer< KEY_T, INDEX_T > Class Template Reference

#include <id_indexer.h>

Collaboration diagram for gs::IdIndexer< KEY_T, INDEX_T >:
Collaboration graph
[legend]

Public Types

using key_buffer_t = typename id_indexer_impl::KeyBuffer< KEY_T >::type
 
using ind_buffer_t = std::vector< INDEX_T >
 
using dist_buffer_t = std::vector< int8_t >
 

Public Member Functions

 IdIndexer ()
 
 ~IdIndexer ()
 
PropertyType get_type () const override
 
void _add (const Any &oid) override
 
bool add (const Any &oid, INDEX_T &lid) override
 
bool get_key (const INDEX_T &lid, Any &oid) const override
 
bool get_index (const Any &oid, INDEX_T &lid) const override
 
void Clear ()
 
size_t entry_num () const
 
bool add (const KEY_T &oid, INDEX_T &lid)
 
bool add (KEY_T &&oid, INDEX_T &lid)
 
bool _add (const KEY_T &oid, size_t hash_value, INDEX_T &lid)
 
bool _add (KEY_T &&oid, size_t hash_value, INDEX_T &lid)
 
void _add (const KEY_T &oid)
 
void _add (KEY_T &&oid)
 
size_t bucket_count () const
 
bool empty () const
 
size_t size () const override
 
bool get_key (INDEX_T lid, KEY_T &oid) const
 
bool get_index (const KEY_T &oid, INDEX_T &lid) const
 
bool _get_index (const KEY_T &oid, size_t hash, INDEX_T &lid) const
 
void swap (IdIndexer< KEY_T, INDEX_T > &rhs)
 
const key_buffer_tkeys () const
 
key_buffer_tkeys ()
 
void Serialize (std::unique_ptr< grape::LocalIOAdaptor > &writer) const
 
void Deserialize (std::unique_ptr< grape::LocalIOAdaptor > &reader)
 
void _rehash (size_t num)
 

Private Member Functions

void emplace (INDEX_T lid)
 
void emplace_new_value (int8_t distance_from_desired, size_t index, INDEX_T lid)
 
void grow ()
 
void rehash (size_t num_buckets)
 
void reset_to_empty_state ()
 

Static Private Member Functions

static int8_t compute_max_lookups (size_t num_buckets)
 

Private Attributes

key_buffer_t keys_
 
ind_buffer_t indices_
 
dist_buffer_t distances_
 
ska::ska::prime_number_hash_policy hash_policy_
 
int8_t max_lookups_ = id_indexer_impl::min_lookups - 1
 
size_t num_elements_ = 0
 
size_t num_slots_minus_one_ = 0
 
GHash< KEY_T > hasher_
 

Friends

template<typename _KEY_T , typename _INDEX_T >
void build_lf_indexer (const IdIndexer< _KEY_T, _INDEX_T > &input, const std::string &filename, LFIndexer< _INDEX_T > &output, const std::string &snapshot_dir, const std::string &work_dir, PropertyType type)
 

Member Typedef Documentation

◆ dist_buffer_t

template<typename KEY_T , typename INDEX_T >
using gs::IdIndexer< KEY_T, INDEX_T >::dist_buffer_t = std::vector<int8_t>

◆ ind_buffer_t

template<typename KEY_T , typename INDEX_T >
using gs::IdIndexer< KEY_T, INDEX_T >::ind_buffer_t = std::vector<INDEX_T>

◆ key_buffer_t

template<typename KEY_T , typename INDEX_T >
using gs::IdIndexer< KEY_T, INDEX_T >::key_buffer_t = typename id_indexer_impl::KeyBuffer<KEY_T>::type

Constructor & Destructor Documentation

◆ IdIndexer()

template<typename KEY_T , typename INDEX_T >
gs::IdIndexer< KEY_T, INDEX_T >::IdIndexer ( )
inline

◆ ~IdIndexer()

template<typename KEY_T , typename INDEX_T >
gs::IdIndexer< KEY_T, INDEX_T >::~IdIndexer ( )
inline

Member Function Documentation

◆ _add() [1/5]

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::_add ( const Any oid)
inlineoverride

◆ _add() [2/5]

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::_add ( const KEY_T &  oid)
inline

◆ _add() [3/5]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::_add ( const KEY_T &  oid,
size_t  hash_value,
INDEX_T &  lid 
)
inline

◆ _add() [4/5]

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::_add ( KEY_T &&  oid)
inline

◆ _add() [5/5]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::_add ( KEY_T &&  oid,
size_t  hash_value,
INDEX_T &  lid 
)
inline

◆ _get_index()

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::_get_index ( const KEY_T &  oid,
size_t  hash,
INDEX_T &  lid 
) const
inline

◆ _rehash()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::_rehash ( size_t  num)
inline

◆ add() [1/3]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::add ( const Any oid,
INDEX_T &  lid 
)
inlineoverride

◆ add() [2/3]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::add ( const KEY_T &  oid,
INDEX_T &  lid 
)
inline

◆ add() [3/3]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::add ( KEY_T &&  oid,
INDEX_T &  lid 
)
inline

◆ bucket_count()

template<typename KEY_T , typename INDEX_T >
size_t gs::IdIndexer< KEY_T, INDEX_T >::bucket_count ( ) const
inline

◆ Clear()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::Clear ( )
inline

◆ compute_max_lookups()

template<typename KEY_T , typename INDEX_T >
static int8_t gs::IdIndexer< KEY_T, INDEX_T >::compute_max_lookups ( size_t  num_buckets)
inlinestaticprivate

◆ Deserialize()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::Deserialize ( std::unique_ptr< grape::LocalIOAdaptor > &  reader)
inline

◆ emplace()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::emplace ( INDEX_T  lid)
inlineprivate

◆ emplace_new_value()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::emplace_new_value ( int8_t  distance_from_desired,
size_t  index,
INDEX_T  lid 
)
inlineprivate

◆ empty()

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::empty ( ) const
inline

◆ entry_num()

template<typename KEY_T , typename INDEX_T >
size_t gs::IdIndexer< KEY_T, INDEX_T >::entry_num ( ) const
inline

◆ get_index() [1/2]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::get_index ( const Any oid,
INDEX_T &  lid 
) const
inlineoverride

◆ get_index() [2/2]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::get_index ( const KEY_T &  oid,
INDEX_T &  lid 
) const
inline

◆ get_key() [1/2]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::get_key ( const INDEX_T &  lid,
Any oid 
) const
inlineoverride

◆ get_key() [2/2]

template<typename KEY_T , typename INDEX_T >
bool gs::IdIndexer< KEY_T, INDEX_T >::get_key ( INDEX_T  lid,
KEY_T &  oid 
) const
inline

◆ get_type()

template<typename KEY_T , typename INDEX_T >
PropertyType gs::IdIndexer< KEY_T, INDEX_T >::get_type ( ) const
inlineoverride

◆ grow()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::grow ( )
inlineprivate

◆ keys() [1/2]

template<typename KEY_T , typename INDEX_T >
key_buffer_t& gs::IdIndexer< KEY_T, INDEX_T >::keys ( )
inline

◆ keys() [2/2]

template<typename KEY_T , typename INDEX_T >
const key_buffer_t& gs::IdIndexer< KEY_T, INDEX_T >::keys ( ) const
inline

◆ rehash()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::rehash ( size_t  num_buckets)
inlineprivate

◆ reset_to_empty_state()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::reset_to_empty_state ( )
inlineprivate

◆ Serialize()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::Serialize ( std::unique_ptr< grape::LocalIOAdaptor > &  writer) const
inline

◆ size()

template<typename KEY_T , typename INDEX_T >
size_t gs::IdIndexer< KEY_T, INDEX_T >::size ( ) const
inlineoverride

◆ swap()

template<typename KEY_T , typename INDEX_T >
void gs::IdIndexer< KEY_T, INDEX_T >::swap ( IdIndexer< KEY_T, INDEX_T > &  rhs)
inline

Friends And Related Function Documentation

◆ build_lf_indexer

template<typename KEY_T , typename INDEX_T >
template<typename _KEY_T , typename _INDEX_T >
void build_lf_indexer ( const IdIndexer< _KEY_T, _INDEX_T > &  input,
const std::string &  filename,
LFIndexer< _INDEX_T > &  output,
const std::string &  snapshot_dir,
const std::string &  work_dir,
PropertyType  type 
)
friend

Member Data Documentation

◆ distances_

template<typename KEY_T , typename INDEX_T >
dist_buffer_t gs::IdIndexer< KEY_T, INDEX_T >::distances_
private

◆ hash_policy_

template<typename KEY_T , typename INDEX_T >
ska::ska::prime_number_hash_policy gs::IdIndexer< KEY_T, INDEX_T >::hash_policy_
private

◆ hasher_

template<typename KEY_T , typename INDEX_T >
GHash<KEY_T> gs::IdIndexer< KEY_T, INDEX_T >::hasher_
private

◆ indices_

template<typename KEY_T , typename INDEX_T >
ind_buffer_t gs::IdIndexer< KEY_T, INDEX_T >::indices_
private

◆ keys_

template<typename KEY_T , typename INDEX_T >
key_buffer_t gs::IdIndexer< KEY_T, INDEX_T >::keys_
private

◆ max_lookups_

template<typename KEY_T , typename INDEX_T >
int8_t gs::IdIndexer< KEY_T, INDEX_T >::max_lookups_ = id_indexer_impl::min_lookups - 1
private

◆ num_elements_

template<typename KEY_T , typename INDEX_T >
size_t gs::IdIndexer< KEY_T, INDEX_T >::num_elements_ = 0
private

◆ num_slots_minus_one_

template<typename KEY_T , typename INDEX_T >
size_t gs::IdIndexer< KEY_T, INDEX_T >::num_slots_minus_one_ = 0
private

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