logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

libtar_hash_new, libtar_hash_free, libtar_hash_next, libtar_hash_prev, libtar_hash_getkey,

Description

       The libtar_hash_new() function creates a new hash with num buckets and using hash function pointed to  by
       hashfunc.  If hashfunc is NULL, a default hash function designed for 7-bit ASCII strings is used.

       The libtar_hash_free() function deallocates all memory associated with the hash structure h.  If freefunc
       is not NULL, it is called to free memory associated with each node in the hash.

       The  libtar_hash_next()  and  libtar_hash_prev()  functions  are  used  to iterate through the hash.  The
       libtar_hashptr_t structure has two fields: bucket, which indicates the current bucket in  the  hash,  and
       node,  which is a pointer to the current node in the current bucket.  To start at the beginning or end of
       the hash, the caller should initialize hp.bucket to -1 and hp.node to NULL.

       The libtar_hash_search() function searches iteratively through the hash h until it  finds  a  node  whose
       contents  match  data using the matching function matchfunc.  Searching begins at the location pointed to
       by hp.

       The libtar_hash_getkey() function uses the hash function associated with h to determine which bucket data
       should be in, and searches only that bucket for a matching node using matchfunc.  Searching begins at the
       location pointed to by hp.

       The libtar_hash_add() function adds data into hash h.

       The libtar_hash_del() function removes the node referenced by hp.

Name

       libtar_hash_new,     libtar_hash_free,     libtar_hash_next,     libtar_hash_prev,    libtar_hash_getkey,
       libtar_hash_search, libtar_hash_add, libtar_hash_del - hash table routines

Return Value

       The libtar_hash_new() function returns a pointer to the new hash structure, or NULL on error.

       The libtar_hash_next() and libtar_hash_prev() functions return 1 when valid data is returned,  and  0  at
       the end of the hash.

       The  libtar_hash_getkey()  and  libtar_hash_search()  functions  return  1  when  a  match is found, or 0
       otherwise.

       The libtar_hash_add() function returns 0 on success, or -1 on error (and sets errno).

       The libtar_hash_del() function returns 0 on success, or -1 on error (and sets errno).

See Also

libtar_list_new(3)

University of Illinois                              Jan 2000                                  libtar_hash_new(3)

Synopsis

#include<libtar.h>libtar_hash_t*libtar_hash_new(intnum,int(*hashfunc)());voidlibtar_hash_free(libtar_hash_t*h,void(*freefunc)());intlibtar_hash_next(libtar_hash_t*h,libtar_hashptr_t*hp);intlibtar_hash_prev(libtar_hash_t*h,libtar_hashptr_t*hp);intlibtar_hash_search(libtar_hash_t*h,libtar_hashptr_t*hp,void*data,int(*matchfunc)());intlibtar_hash_getkey(libtar_hash_t*h,libtar_hashptr_t*hp,void*data,int(*matchfunc)());intlibtar_hash_add(libtar_hash_t*h,void*data);intlibtar_hash_del(libtar_hash_t*h,libtar_hashptr_t*hp);

See Also