COVISE Core
Public Member Functions | List of all members
covise::coHashBase< KEY, DATA > Class Template Referenceabstract

#include <coHashBase.h>

Inheritance diagram for covise::coHashBase< KEY, DATA >:
Inheritance graph
[legend]
Collaboration diagram for covise::coHashBase< KEY, DATA >:
Collaboration graph
[legend]

Public Member Functions

 coHashBase (DATA nullelem)
 
 coHashBase ()
 
virtual unsigned long nextHash (unsigned long) const
 no identical keys in table More...
 
virtual int insert (const KEY &key, const DATA &inData)
 insert: if existing element, replace it More...
 
virtual unsigned long hash1 (const KEY &) const =0
 first hash function (pure virtual) More...
 
virtual unsigned long hash2 (const KEY &) const =0
 second hash function (pure virtual) More...
 
virtual bool equal (const KEY &, const KEY &) const =0
 KEY1 == KEY2 operation (pure virtual) More...
 
- Public Member Functions inherited from covise::coMultiHashBase< KEY, DATA >
 coMultiHashBase ()
 constructor More...
 
 coMultiHashBase (DATA nullelem)
 constructor More...
 
const DATA & getNullElem () const
 get the NULL element More...
 
virtual ~coMultiHashBase ()
 destructor More...
 
virtual int insert (const KEY &key, const DATA &inData)
 insert an entry (virtual for non-multi hash) More...
 
int remove (unsigned long hashIndex)
 remove an entry by hashIndex More...
 
void removeAll ()
 remove an entry by hashIndex More...
 
unsigned long getHash (const KEY &key) const
 get hash index, 0 if no element found More...
 
DATA & operator[] (unsigned long hashIndex)
 access element by hash index: assert() correct index !! More...
 
const DATA & operator[] (unsigned long hashIndex) const
 access element by hash index: assert() correct index !! More...
 
virtual unsigned long nextHash (unsigned long hashIndex) const
 get next hashIndex to given hashIndex More...
 
int getNumEntries () const
 get number of entries currently in hash More...
 
virtual unsigned long hash1 (const KEY &) const =0
 first hash function (pure virtual) More...
 
virtual unsigned long hash2 (const KEY &) const =0
 second hash function (pure virtual) More...
 
virtual bool equal (const KEY &, const KEY &) const =0
 KEY1 == KEY2 operation (pure virtual) More...
 

Additional Inherited Members

- Protected Types inherited from covise::coMultiHashBase< KEY, DATA >
enum  { EMPTY = 0 , PREVIOUS , USED }
 
- Protected Attributes inherited from covise::coMultiHashBase< KEY, DATA >
KEY * keys
 
unsigned char * entryFlags
 
unsigned int size
 size of the list More...
 
unsigned int prime
 the prime currently used as the length of the list More...
 

Constructor & Destructor Documentation

◆ coHashBase() [1/2]

template<class KEY , class DATA >
covise::coHashBase< KEY, DATA >::coHashBase ( DATA  nullelem)
inline

◆ coHashBase() [2/2]

template<class KEY , class DATA >
covise::coHashBase< KEY, DATA >::coHashBase ( )
inline

Member Function Documentation

◆ equal()

template<class KEY , class DATA >
virtual bool covise::coHashBase< KEY, DATA >::equal ( const KEY &  ,
const KEY &   
) const
pure virtual

KEY1 == KEY2 operation (pure virtual)

Implements covise::coMultiHashBase< KEY, DATA >.

Implemented in covise::coIntHash< DATA >.

◆ hash1()

template<class KEY , class DATA >
virtual unsigned long covise::coHashBase< KEY, DATA >::hash1 ( const KEY &  ) const
pure virtual

first hash function (pure virtual)

Implements covise::coMultiHashBase< KEY, DATA >.

Implemented in covise::coIntHash< DATA >.

◆ hash2()

template<class KEY , class DATA >
virtual unsigned long covise::coHashBase< KEY, DATA >::hash2 ( const KEY &  ) const
pure virtual

second hash function (pure virtual)

Implements covise::coMultiHashBase< KEY, DATA >.

Implemented in covise::coIntHash< DATA >.

◆ insert()

template<class KEY , class DATA >
int covise::coHashBase< KEY, DATA >::insert ( const KEY &  key,
const DATA &  inData 
)
inlinevirtual

insert: if existing element, replace it

Reimplemented from covise::coMultiHashBase< KEY, DATA >.

Reimplemented in covise::coHash< int, DATA >, and covise::coHash< KEY, DATA >.

◆ nextHash()

template<class KEY , class DATA >
virtual unsigned long covise::coHashBase< KEY, DATA >::nextHash ( unsigned long  ) const
inlinevirtual

no identical keys in table

Reimplemented from covise::coMultiHashBase< KEY, DATA >.


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