Annotation of embedaddon/iftop/hash.h, revision 1.1.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>