Joshua
open source statistical hierarchical phrase-based machine translation system
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends
util::ProbingHashTable< PackingT, HashT, EqualT > Class Template Reference

#include <probing_hash_table.hh>

Collaboration diagram for util::ProbingHashTable< PackingT, HashT, EqualT >:
[legend]

List of all members.

Public Types

typedef PackingT Packing
typedef Packing::Key Key
typedef Packing::MutableIterator MutableIterator
typedef Packing::ConstIterator ConstIterator
typedef HashT Hash
typedef EqualT Equal

Public Member Functions

 ProbingHashTable ()
 ProbingHashTable (void *start, std::size_t allocated, const Key &invalid=Key(), const Hash &hash_func=Hash(), const Equal &equal_func=Equal())
template<class T >
void Insert (const T &t)
void FinishedInserting ()
void LoadedBinary ()
template<class Key >
bool UnsafeMutableFind (const Key key, MutableIterator &out)
template<class Key >
bool Find (const Key key, ConstIterator &out) const

Static Public Member Functions

static std::size_t Size (std::size_t entries, float multiplier)

Private Attributes

MutableIterator begin_
std::size_t buckets_
MutableIterator end_
Key invalid_
Hash hash_
Equal equal_
std::size_t entries_

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
class util::ProbingHashTable< PackingT, HashT, EqualT >


Member Typedef Documentation

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
typedef Packing::ConstIterator util::ProbingHashTable< PackingT, HashT, EqualT >::ConstIterator
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
typedef EqualT util::ProbingHashTable< PackingT, HashT, EqualT >::Equal
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
typedef HashT util::ProbingHashTable< PackingT, HashT, EqualT >::Hash
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
typedef Packing::Key util::ProbingHashTable< PackingT, HashT, EqualT >::Key
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
typedef Packing::MutableIterator util::ProbingHashTable< PackingT, HashT, EqualT >::MutableIterator
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
typedef PackingT util::ProbingHashTable< PackingT, HashT, EqualT >::Packing

Constructor & Destructor Documentation

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
util::ProbingHashTable< PackingT, HashT, EqualT >::ProbingHashTable ( )
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
util::ProbingHashTable< PackingT, HashT, EqualT >::ProbingHashTable ( void *  start,
std::size_t  allocated,
const Key invalid = Key(),
const Hash hash_func = Hash(),
const Equal equal_func = Equal() 
)

Member Function Documentation

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
template<class Key >
bool util::ProbingHashTable< PackingT, HashT, EqualT >::Find ( const Key  key,
ConstIterator out 
) const

Here is the caller graph for this function:

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
void util::ProbingHashTable< PackingT, HashT, EqualT >::FinishedInserting ( )

Here is the caller graph for this function:

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
template<class T >
void util::ProbingHashTable< PackingT, HashT, EqualT >::Insert ( const T &  t)

Here is the caller graph for this function:

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
void util::ProbingHashTable< PackingT, HashT, EqualT >::LoadedBinary ( )

Here is the caller graph for this function:

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
static std::size_t util::ProbingHashTable< PackingT, HashT, EqualT >::Size ( std::size_t  entries,
float  multiplier 
) [static]
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
template<class Key >
bool util::ProbingHashTable< PackingT, HashT, EqualT >::UnsafeMutableFind ( const Key  key,
MutableIterator out 
)

Member Data Documentation

template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
MutableIterator util::ProbingHashTable< PackingT, HashT, EqualT >::begin_ [private]
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
std::size_t util::ProbingHashTable< PackingT, HashT, EqualT >::buckets_ [private]
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
MutableIterator util::ProbingHashTable< PackingT, HashT, EqualT >::end_ [private]
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
std::size_t util::ProbingHashTable< PackingT, HashT, EqualT >::entries_ [private]
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
Equal util::ProbingHashTable< PackingT, HashT, EqualT >::equal_ [private]
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
Hash util::ProbingHashTable< PackingT, HashT, EqualT >::hash_ [private]
template<class PackingT, class HashT, class EqualT = std::equal_to<typename PackingT::Key>>
Key util::ProbingHashTable< PackingT, HashT, EqualT >::invalid_ [private]