sethtitem

SETHTITEM(3)          MBK HASH TABLE MANAGEMENT FUNCTIONS         SETHTITEM(3)



NAME
       sethtitem - test and set an item in an hash table.


ORIGIN
       This software belongs to the  ALLIANCE CAD SYSTEM developed by the ASIM
       team at LIP6 laboratory of Université Pierre et Marie CURIE, in Paris,
       France.

       Web : http://asim.lip6.fr/recherche/alliance/
       E-mail : alliance-users@asim.lip6.fr


SYNOPSYS
       #include "mut.h"
       int sethtitem(table, key)
       ht ∗table;
       void ∗key;

PARAMETERS
       table               Hash table pointer

       key                 Key used by the hash coding function to set an item

DESCRIPTION
       sethtitem() adds an item in the hash table pointed to by table, whether
       it existed or not, and returns an appropriate value.  This is kind of a
       test and set operator.

RETURN VALUE
       If the key exists, the funtion return 1, if it doesn't, the item is
       stored and the function returns 0.

EXAMPLE
       #include <stdio.h>
       #include "mut.h"
       checksigname(p)
       lofig_list *p;
       {
       int i;
       losig_list *ptsig;
       locon_list *ptcon;
       ht *h;
       char *amatla;
          for (i = 0, ptsig = p->LOSIG; ptsig; i++, ptsig = ptsig->NEXT);
          h = addht(i << 1); /* half empty hash tables are faster! */
          for (ptcon = p->LOCON; ptcon; ptcon = ptcon->NEXT)
             addhtitem(h, ptcon->NAME, 0);
          for (ptsig = p->LOSIG; ptsig; ptsig = ptsig->NEXT) {
             if (ptsig->TYPE == INTERNAL) {
                amatla = getsigname(ptsig);
                if (!sethtitem(h, amatla, 0))
                   printf("node %s is now unique\n", amatla);
             }
          }
          delht(h);
       }

ERRORS
       "∗∗∗ mbk error ∗∗∗ sethtitem impossible : value is EMPTYHT or DELETEHT"
              The values EMPTYHT, -1,  and DELETEHT, -2, are reserved for
              internal use, sorry.

DIAGNOSTICS
       The value must be distinct from -1 and -2.

SEE ALSO
       mbk(1), addht(3), delht(3), addhtitem(3), gethtitem(3), delhtitem(3),
       viewht(3).




BUG REPORT
       This tool is under development at the ASIM department of the LIP6
       laboratory.
       We need your feedback to improve documentation and tools.






ASIM/LIP6                       October 1, 1997                   SETHTITEM(3)