objc

Data Structures | Macros | Typedefs | Functions
hashtable.h File Reference

A hash table implementation. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  sys_hashtable_iterator
 Iterator state for hash table traversal. More...
 
struct  sys_hashtable_entry_t
 Hash table entry. More...
 

Macros

#define SYS_HASHTABLE_KEY_SIZE   24
 Maximum key size in bytes.
 

Typedefs

typedef struct sys_hashtable sys_hashtable_t
 Opaque type for hash table. More...
 
typedef struct sys_hashtable_iterator sys_hashtable_iterator_t
 Iterator state for hash table traversal. More...
 
typedef bool(* sys_hashtable_keyequals_t) (void *keyptr, void *other_keyptr)
 Compare entry with a key. More...
 

Functions

sys_hashtable_tsys_hashtable_init (size_t size, sys_hashtable_keyequals_t keyequals)
 Initialize a new hash table. More...
 
void sys_hashtable_finalize (sys_hashtable_t *table)
 Free all the hash tables in the chain. More...
 
sys_hashtable_entry_tsys_hashtable_get_key (sys_hashtable_t *table, uintptr_t hash, void *keyptr)
 Search for an entry in the hash table by hash key. More...
 
sys_hashtable_entry_tsys_hashtable_get_value (sys_hashtable_t *table, uintptr_t value)
 Search for an entry in the hash table by hash value. More...
 
sys_hashtable_entry_tsys_hashtable_put (sys_hashtable_t *table, uintptr_t hash, void *keyptr, bool *samekey)
 Return a has table entry in which to put the value, and perhaps the key. More...
 
sys_hashtable_entry_tsys_hashtable_delete_key (sys_hashtable_t *table, uintptr_t hash, void *keyptr)
 Delete an entry into the hash table by key. More...
 
sys_hashtable_entry_tsys_hashtable_delete_value (sys_hashtable_t *table, uintptr_t value)
 Delete an entry from the hash table by value. More...
 
sys_hashtable_entry_tsys_hashtable_iterator_next (sys_hashtable_t *table, sys_hashtable_iterator_t **iterator)
 Get the next entry from the iterator. More...
 
size_t sys_hashtable_count (sys_hashtable_t *table)
 Get the number of active entries in the hash table chain. More...
 
size_t sys_hashtable_capacity (sys_hashtable_t *table)
 Get the total capacity of all tables in the chain. More...
 

Detailed Description

A hash table implementation.

Definition in file hashtable.h.