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.