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 Universite 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
", 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)