Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
SETHTITEM(3)	       MBK HASH TABLE MANAGEMENT FUNCTIONS	    SETHTITEM(3)

NAME
     sethtitem - 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).

ASIM/LIP6			 October 1, 1997		    SETHTITEM(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sethtitem&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help