casacore::HashClass< key > Class Template Reference

Hash function with state. More...

#include <HashMap.h>

List of all members.

Public Member Functions

virtual uInt hash (const key &)=0
 This function maps elements of key type to any integer.
virtual HashClass< key > * clone () const =0
 This function is used to make a deep copy.
 HashClass ()
virtual ~HashClass ()

Detailed Description

template<class key>
class casacore::HashClass< key >

Hash function with state.

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Etymology

This is basically a way of specifying a hash function, but it is implemented as a class. Thus it is called HashClass, similar to "hash function".

Synopsis

This class is used to specify a hash function. Sometimes a hash function may require state, it may be useful to create a hierarchy of hash functions, or it may be useful to create a class which provides for hashing as well as other functionality. This class can be used as a base class for any of these purposed. This class is intended for parameterization of HashMap .

The hash function maps the key type to any integer. This integer is then used by HashMap to select a bucket in the hash table.

Example

If one wished to make a HashClass for integers, something like the following might be done:

 class IntHash : public HashClass<Int> {
 public:
 uInt hash(const Int &v) const { return (uInt) v; }
 uInt hash(const Int &v) { return (uInt) v; }
 HashClass<Int> *clone() const { return new IntHash; }
 IntHash() : HashClass<Int>() { }
 };

Motivation

There may be occasions when it is more convenient to use a class instead of a single function. This base class provides a starting point plus, and HashMap<k,v> has the necessary hooks to make use of classes derived from this class.

Definition at line 136 of file HashMap.h.


Constructor & Destructor Documentation

template<class key>
casacore::HashClass< key >::HashClass (  ) 
template<class key>
virtual casacore::HashClass< key >::~HashClass (  )  [virtual]

Member Function Documentation

template<class key>
virtual HashClass<key>* casacore::HashClass< key >::clone (  )  const [pure virtual]

This function is used to make a deep copy.

This means that the copy, which this function returns, contains all derived information.

template<class key>
virtual uInt casacore::HashClass< key >::hash ( const key &   )  [pure virtual]

This function maps elements of key type to any integer.

This integer is then used by HashMap to select a bucket in the hash table.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1