SPRAAK
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Data Structures | Functions | Variables
iptr_hash.c File Reference

Hash table for pointers and/or integers. More...

Data Structures

union  _Union1_IPTR_HASH_
 
struct  SprHtblIptr1El
 
union  _Union2_IPTR_HASH_
 
struct  SprHtblIptr2El
 
struct  SprHtblIptrNEl
 
union  SprHtblIptrEl
 
struct  SprHtblIptrTbl
 
struct  SprHtblIptrTblIter
 

Functions

SprHtblIptrTblspr_htbl_iptr_tbl_free (SprHtblIptrTbl *hash_tbl)
 
SprHtblIptrTblspr_htbl_iptr_tbl_alloc (SprHtblIptrTbl *hash_tbl_in, unsigned int N, unsigned int size, unsigned int data_size)
 
void spr_htbl_stats_iptr_tbl (SprHtblIptrTbl *hash_tbl, SprMsgId *routine)
 
SprHtblIptrElspr_htbl_add_iptr1_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
SprHtblIptrElspr_htbl_add_iptr2_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
SprHtblIptrElspr_htbl_add_iptrN_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
void spr_htbl_istep_iptr_tbl (const SprHtblIptrTbl *hash_tbl, SprHtblIptrTblIter *iter)
 Initialize an iterator over the hash table. More...
 
SprHtblIptrElspr_htbl_step_iptr_tbl (SprHtblIptrTblIter *iter)
 
SprHtblIptrElspr_htbl_add_iptr1 (SprHtblIptrTbl *hash_tbl, uintptr_t key)
 
SprHtblIptrElspr_htbl_cadd_iptr1 (SprHtblIptrTbl *hash_tbl, uintptr_t key, int nf_null)
 
SprHtblIptrElspr_htbl_cadd_iptr1_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
const SprHtblIptrElspr_htbl_find_iptr1_el (const SprHtblIptrTbl *hash_tbl, uintptr_t key)
 
void * spr_htbl_rm_iptr1 (SprHtblIptrTbl *hash_tbl, uintptr_t key)
 
SprHtblIptrElspr_htbl_rm_iptr1_el (SprHtblIptrTbl *hash_tbl, uintptr_t key)
 
void spr_htbl_unlink_iptr1 (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
void spr_htbl_unlink_iptr1_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
SprHtblIptrElspr_htbl_add_iptr2 (SprHtblIptrTbl *hash_tbl, uintptr_t key1, uintptr_t key2)
 
SprHtblIptrElspr_htbl_cadd_iptr2 (SprHtblIptrTbl *hash_tbl, uintptr_t key1, uintptr_t key2, int nf_null)
 
SprHtblIptrElspr_htbl_cadd_iptr2_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
const SprHtblIptrElspr_htbl_find_iptr2_el (const SprHtblIptrTbl *hash_tbl, uintptr_t key1, uintptr_t key2)
 
void * spr_htbl_rm_iptr2 (SprHtblIptrTbl *hash_tbl, uintptr_t key1, uintptr_t key2)
 
SprHtblIptrElspr_htbl_rm_iptr2_el (SprHtblIptrTbl *hash_tbl, uintptr_t key1, uintptr_t key2)
 
void spr_htbl_unlink_iptr2 (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
void spr_htbl_unlink_iptr2_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
SprHtblIptrElspr_htbl_add_iptrN (SprHtblIptrTbl *hash_tbl, uintptr_t key,...)
 
const SprHtblIptrElspr_htbl_cadd_iptrN (SprHtblIptrTbl *hash_tbl, int nf_null, uintptr_t key,...)
 
const SprHtblIptrElspr_htbl_cadd_iptrN_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
const SprHtblIptrElspr_htbl_find_iptrN_el (const SprHtblIptrTbl *hash_tbl, uintptr_t key,...)
 
void * spr_htbl_rm_iptrN (SprHtblIptrTbl *hash_tbl, uintptr_t key,...)
 
SprHtblIptrElspr_htbl_rm_iptrN_el (SprHtblIptrTbl *hash_tbl, uintptr_t key,...)
 
void spr_htbl_unlink_iptrN (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 
void spr_htbl_unlink_iptrN_el (SprHtblIptrTbl *hash_tbl, SprHtblIptrEl *el)
 

Variables

const SprHtblIptrTbl spr_htbl_empty_iptr_tbl
 

Detailed Description

Hash table for pointers and/or integers.

Hash a set of pointers, a set of integers or a combined set of pointers and integers. The hash tables allow adding elements, searching for elements, and deleting elements. The hash tables also resize (enlarging only) dynamically.

Date
Jul 2005
Author
Kris Demuynck
Revision History:
20/07/05 - KD
Derived from existing hash table implementations.