sethtitem.3alc - Man Page
test and set an item in an hash table.
Synopsis
#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 function 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).
Referenced By
addht.3alc(3), addhtitem.3alc(3), delhtitem.3alc(3), viewht.3alc(3).
October 1, 1997 ASIM/LIP6 MBK HASH TABLE MANAGEMENT FUNCTIONS