CommonLibSSE (Parapets fork)
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container > Class Template Reference

#include <GHash.h>

Inheritance diagram for RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >:
RE::GHashUncached< GFxResourceID, GFxResourceSource, GFxResourceID::HashOp > RE::GStringHash< RE::GASString > RE::GStringHash< std::int32_t >

Public Types

using SelfType = GHash< C, U, HashF, Allocator, HashNode, Entry, Container >
 
using const_iterator = typename Container::const_iterator
 
using iterator = typename Container::iterator
 

Public Member Functions

 GHash ()
 
 GHash (std::int32_t a_sizeHint)
 
 GHash (void *a_heap)
 
 GHash (void *a_heap, std::int32_t a_sizeHint)
 
 GHash (const SelfType &a_src)
 
 ~GHash ()
 
 GFC_MEMORY_REDEFINE_NEW (GHash, Allocator::kStatID)
 
void operator= (const SelfType &a_src)
 
void Clear ()
 
bool IsEmpty () const
 
void Set (const C &a_key, const U &a_value)
 
void Add (const C &a_key, const U &a_value)
 
void Remove (const C &a_key)
 
template<class K >
void RemoveAlt (const K &a_key)
 
bool Get (const C &a_key, U *a_value) const
 
template<class K >
bool GetAlt (const K &a_key, U *a_value) const
 
U * Get (const C &a_key)
 
const U * Get (const C &a_key) const
 
template<class K >
U * GetAlt (const K &a_key)
 
template<class K >
const U * GetAlt (const K &a_key) const
 
UPInt GetSize () const
 
void Resize (UPInt a_size)
 
void SetCapacity (UPInt a_newSize)
 
iterator begin ()
 
iterator end ()
 
const_iterator begin () const
 
const_iterator end () const
 
iterator Find (const C &a_key)
 
const_iterator Find (const C &a_key) const
 
template<class K >
iterator FindAlt (const K &a_key)
 
template<class K >
const_iterator FindAlt (const K &a_key) const
 

Public Attributes

Container hash
 

Member Typedef Documentation

◆ const_iterator

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
using RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::const_iterator = typename Container::const_iterator

◆ iterator

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
using RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::iterator = typename Container::iterator

◆ SelfType

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
using RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::SelfType = GHash<C, U, HashF, Allocator, HashNode, Entry, Container>

Constructor & Destructor Documentation

◆ GHash() [1/5]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GHash ( )
inline

◆ GHash() [2/5]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GHash ( std::int32_t  a_sizeHint)
inline

◆ GHash() [3/5]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GHash ( void *  a_heap)
inlineexplicit

◆ GHash() [4/5]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GHash ( void *  a_heap,
std::int32_t  a_sizeHint 
)
inline

◆ GHash() [5/5]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GHash ( const SelfType a_src)
inline

◆ ~GHash()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::~GHash ( )
inline

Member Function Documentation

◆ Add()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Add ( const C &  a_key,
const U &  a_value 
)
inline

◆ begin() [1/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::begin ( )
inline

◆ begin() [2/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
const_iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::begin ( ) const
inline

◆ Clear()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Clear ( )
inline

◆ end() [1/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::end ( )
inline

◆ end() [2/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
const_iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::end ( ) const
inline

◆ Find() [1/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Find ( const C &  a_key)
inline

◆ Find() [2/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
const_iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Find ( const C &  a_key) const
inline

◆ FindAlt() [1/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
template<class K >
iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::FindAlt ( const K &  a_key)
inline

◆ FindAlt() [2/2]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
template<class K >
const_iterator RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::FindAlt ( const K &  a_key) const
inline

◆ Get() [1/3]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
U* RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Get ( const C &  a_key)
inline

◆ Get() [2/3]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
const U* RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Get ( const C &  a_key) const
inline

◆ Get() [3/3]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
bool RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Get ( const C &  a_key,
U *  a_value 
) const
inline

◆ GetAlt() [1/3]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
template<class K >
U* RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GetAlt ( const K &  a_key)
inline

◆ GetAlt() [2/3]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
template<class K >
const U* RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GetAlt ( const K &  a_key) const
inline

◆ GetAlt() [3/3]

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
template<class K >
bool RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GetAlt ( const K &  a_key,
U *  a_value 
) const
inline

◆ GetSize()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
UPInt RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GetSize ( ) const
inline

◆ GFC_MEMORY_REDEFINE_NEW()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::GFC_MEMORY_REDEFINE_NEW ( GHash< C, U, HashF, Allocator, HashNode, Entry, Container >  ,
Allocator::kStatID   
)

◆ IsEmpty()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
bool RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::IsEmpty ( ) const
inline

◆ operator=()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::operator= ( const SelfType a_src)
inline

◆ Remove()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Remove ( const C &  a_key)
inline

◆ RemoveAlt()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
template<class K >
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::RemoveAlt ( const K &  a_key)
inline

◆ Resize()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Resize ( UPInt  a_size)
inline

◆ Set()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::Set ( const C &  a_key,
const U &  a_value 
)
inline

◆ SetCapacity()

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
void RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::SetCapacity ( UPInt  a_newSize)
inline

Member Data Documentation

◆ hash

template<class C , class U , class HashF = GFixedSizeHash<C>, class Allocator = GAllocatorGH<C>, class HashNode = GHashNode<C, U, HashF>, class Entry = GHashsetCachedNodeEntry<HashNode, typename HashNode::NodeHashF>, class Container = GHashSet<HashNode, typename HashNode::NodeHashF, typename HashNode::NodeAltHashF, Allocator, Entry>>
Container RE::GHash< C, U, HashF, Allocator, HashNode, Entry, Container >::hash

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