Annotation of embedaddon/iftop/hash.h, revision 1.1
1.1 ! misho 1: /*
! 2: * addr_hash.h:
! 3: *
! 4: */
! 5:
! 6: #ifndef __HASH_H_ /* include guard */
! 7: #define __HASH_H_
! 8:
! 9: /* implementation independent declarations */
! 10: typedef enum {
! 11: HASH_STATUS_OK,
! 12: HASH_STATUS_MEM_EXHAUSTED,
! 13: HASH_STATUS_KEY_NOT_FOUND
! 14: } hash_status_enum;
! 15:
! 16: typedef struct node_tag {
! 17: struct node_tag *next; /* next node */
! 18: void* key; /* key */
! 19: void* rec; /* user data */
! 20: } hash_node_type;
! 21:
! 22: typedef struct {
! 23: int (*compare) (void*, void*);
! 24: int (*hash) (void*);
! 25: void* (*copy_key) (void*);
! 26: void (*delete_key) (void*);
! 27: hash_node_type** table;
! 28: int size;
! 29: } hash_type;
! 30:
! 31:
! 32: hash_status_enum hash_initialise(hash_type*);
! 33: hash_status_enum hash_destroy(hash_type*);
! 34: hash_status_enum hash_insert(hash_type*, void* key, void *rec);
! 35: hash_status_enum hash_delete(hash_type* hash_table, void* key);
! 36: hash_status_enum hash_find(hash_type* hash_table, void* key, void** rec);
! 37: hash_status_enum hash_next_item(hash_type* hash_table, hash_node_type** ppnode);
! 38: void hash_delete_all(hash_type* hash_table);
! 39:
! 40: #endif /* __HASH_H_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>