UHashTable, UHashElem - hash table classes


SYNOPSIS

       #include <Unidraw/uhash.h>


DESCRIPTION

       UHashTable  implements a simple open hash table.  The num-
       ber of slots can be specified when the table  is  created.
       UHashTable  stores  UHashElem instances, which contain the
       key that is hashed.  Code that uses UHashTables may derive
       from  UHashElem  to  store  data  in  addition to the key.
       UHashTable also provides operations for iterating over the
       elements in the hash table.


UHASHELEM OPERATIONS

       UHashElem(void* = nil)
              Create a UHashElem with the given key value.

       void* GetKey()
       void SetKey(void*)
              Explicitly get and set the element's key value.


UHASHTABLE PUBLIC OPERATIONS

       UHashTable(int nslots)
              Create  a  new UHashTable, specifying its number of
              slots.

       virtual void Register(void* key, UHashElem* = nil)
              Make an entry into the hash table.  If no UHashElem
              is  supplied,  this  function  call  the CreateElem
              function (described below) to create  one,  and  it
              will  call SetKey (with key as its argument) on the
              result.

       virtual void Unregister(void* key)
              Remove the element with the matching key  from  the
              hash table and delete it.

       void First(Iterator&)
       void Next(Iterator&)
       boolean Done(Iterator)
       UHashElem* GetElem(Iterator)
              Operations  for  iterating over the elements in the
              hash table.  These operation  do  not  guarantee  a
              particular  ordering for the iteration.  First ini-
              tializes an iterator to point to the first  element
              in  the  traversal, Next increments the iterator to
              point to the following element,  and  Done  returns
              whether  or not the iterator points beyond the last
              element in the traversal.  GetElem returns the ele-
              ment to which the given iterator points.

              Find  the element with the matching key (as defined
              by the Equal operation,  described  below)  in  the
              hash table.


UHASHTABLE PROTECTED OPERATIONS

       virtual UHashElem* CreateElem()
              Return  a  new  UHashElem  instance.  Subclasses of
              UHashTable should redefine this  function  if  they
              use subclasses of UHashElem.

       virtual int Hash(void* key)
              Hash  the  specified  key  to  return a slot index.
              This value should be less than  the  value  of  the
              _nslots member variable.

       virtual boolean Equal(void* key1, void* key2)
              Return  whether  the specified keys are equivalent.
              By default, Equal simply compares the pointers  for
              equality.   Subclasses  may redefine this operation
              to make more sophisticated comparisons.


SEE ALSO

       Iterator(3U)






























Man(1) output converted with man2html