Ptex
Classes | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
PtexHashMap< Key, Value > Class Template Reference

#include <PtexHashMap.h>

Classes

class  Entry
 
struct  TableHeader
 

Public Member Functions

 PtexHashMap ()
 
 ~PtexHashMap ()
 
void clear ()
 
uint32_t size () const
 
Value get (Key &key) const
 
Value tryInsert (Key &key, Value value, size_t &newMemUsed)
 
template<typename Fn >
void foreach (Fn &fn) const
 

Private Member Functions

 PtexHashMap (const PtexHashMap &)
 
void operator= (const PtexHashMap &)
 
void initContents ()
 
void deleteContents ()
 
void * allocTable (int32_t numEntries, size_t &memsize)
 
void unlockTable (void *table)
 
void * lockTableAndGrowIfNeeded (size_t &newMemUsed)
 
void * grow (void *oldTable, size_t &newMemUsed)
 

Static Private Member Functions

static void getTable (const void *table, const TableHeader *&header, const Entry *&entries)
 
static void getTable (void *table, TableHeader *&header, Entry *&entries)
 

Private Attributes

void * _table
 
Mutex _lock
 
std::vector< void * > _oldTables
 

Detailed Description

template<typename Key, typename Value>
class PtexHashMap< Key, Value >

Definition at line 132 of file PtexHashMap.h.

Constructor & Destructor Documentation

template<typename Key, typename Value>
PtexHashMap< Key, Value >::PtexHashMap ( const PtexHashMap< Key, Value > &  )
private
template<typename Key, typename Value>
PtexHashMap< Key, Value >::PtexHashMap ( )
inline

Definition at line 177 of file PtexHashMap.h.

template<typename Key, typename Value>
PtexHashMap< Key, Value >::~PtexHashMap ( )
inline

Definition at line 182 of file PtexHashMap.h.

Member Function Documentation

template<typename Key, typename Value>
void* PtexHashMap< Key, Value >::allocTable ( int32_t  numEntries,
size_t &  memsize 
)
inlineprivate
template<typename Key, typename Value>
void PtexHashMap< Key, Value >::clear ( )
inline

Definition at line 187 of file PtexHashMap.h.

Referenced by PtexReader::prune().

template<typename Key, typename Value>
void PtexHashMap< Key, Value >::deleteContents ( )
inlineprivate
template<typename Key, typename Value>
template<typename Fn >
void PtexHashMap< Key, Value >::foreach ( Fn &  fn) const
inline

Definition at line 251 of file PtexHashMap.h.

Referenced by PtexReaderCache::purgeAll().

template<typename Key, typename Value>
Value PtexHashMap< Key, Value >::get ( Key &  key) const
inline
template<typename Key, typename Value>
static void PtexHashMap< Key, Value >::getTable ( const void *  table,
const TableHeader *&  header,
const Entry *&  entries 
)
inlinestaticprivate
template<typename Key, typename Value>
static void PtexHashMap< Key, Value >::getTable ( void *  table,
TableHeader *&  header,
Entry *&  entries 
)
inlinestaticprivate

Definition at line 285 of file PtexHashMap.h.

template<typename Key, typename Value>
void* PtexHashMap< Key, Value >::grow ( void *  oldTable,
size_t &  newMemUsed 
)
inlineprivate
template<typename Key, typename Value>
void PtexHashMap< Key, Value >::initContents ( )
inlineprivate
template<typename Key, typename Value>
void* PtexHashMap< Key, Value >::lockTableAndGrowIfNeeded ( size_t &  newMemUsed)
inlineprivate
template<typename Key, typename Value>
void PtexHashMap< Key, Value >::operator= ( const PtexHashMap< Key, Value > &  )
private
template<typename Key, typename Value>
uint32_t PtexHashMap< Key, Value >::size ( ) const
inline

Definition at line 193 of file PtexHashMap.h.

Referenced by PtexReaderCache::getStats().

template<typename Key, typename Value>
Value PtexHashMap< Key, Value >::tryInsert ( Key &  key,
Value  value,
size_t &  newMemUsed 
)
inline

Definition at line 220 of file PtexHashMap.h.

Referenced by PtexReaderCache::get(), and PtexReader::getData().

template<typename Key, typename Value>
void PtexHashMap< Key, Value >::unlockTable ( void *  table)
inlineprivate

Member Data Documentation

template<typename Key, typename Value>
Mutex PtexHashMap< Key, Value >::_lock
private
template<typename Key, typename Value>
std::vector<void*> PtexHashMap< Key, Value >::_oldTables
private
template<typename Key, typename Value>
void* PtexHashMap< Key, Value >::_table
private

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