70 |
written to subsequently between this call and when the element is |
written to subsequently between this call and when the element is |
71 |
deleted, so you can't stash its value elsewhere and hope to use the |
deleted, so you can't stash its value elsewhere and hope to use the |
72 |
stashed value with ihash_locp_remove()]. */ |
stashed value with ihash_locp_remove()]. */ |
73 |
void CFHashtableInsert (CFHashtableRef ht, int id, void *item, void ***locp); |
CF_EXTERN void CFHashtableInsert (CFHashtableRef ht, int id, void *item, |
74 |
|
void ***locp); |
75 |
|
|
76 |
/* Find and return the item in hash table HT with key ID, or NULL if it |
/* Find and return the item in hash table HT with key ID, or NULL if it |
77 |
doesn't exist. */ |
doesn't exist. */ |
78 |
void *CFHashtableLookup (CFHashtableRef ht, int id); |
CF_EXTERN void *CFHashtableLookup (CFHashtableRef ht, int id); |
79 |
|
|
80 |
/* Call function FUN of one arg for each element of HT. FUN's only arg is a |
/* Call function FUN of one arg for each element of HT. FUN's only arg is a |
81 |
pointer to the value stored in the hash table. If FUN ever returns |
pointer to the value stored in the hash table. If FUN ever returns |
82 |
non-zero, then iteration stops and ihash_iterate returns that value, |
non-zero, then iteration stops and ihash_iterate returns that value, |
83 |
otherwise it (eventually) returns 0. */ |
otherwise it (eventually) returns 0. */ |
84 |
int CFHashtableIterate (CFHashtableRef ht, int (*fun)(void *)); |
CF_EXTERN int CFHashtableIterate (CFHashtableRef ht, int (*fun)(void *)); |
85 |
|
|
86 |
/* Remove the entry with a key of ID from HT. If anything was actually |
/* Remove the entry with a key of ID from HT. If anything was actually |
87 |
removed, 1 is returned, otherwise (if there was no such element), 0. */ |
removed, 1 is returned, otherwise (if there was no such element), 0. */ |
88 |
int CFHashtableRemove (CFHashtableRef ht, int id); |
CF_EXTERN int CFHashtableRemove (CFHashtableRef ht, int id); |
89 |
|
|
90 |
/* Remove the entry at LOCP from the hashtable HT. LOCP is as returned from |
/* Remove the entry at LOCP from the hashtable HT. LOCP is as returned from |
91 |
an earlier call to ihash_add(). This call should be faster than |
an earlier call to ihash_add(). This call should be faster than |
92 |
ihash_remove(). HT can be NULL, in which case the call still succeeds, |
ihash_remove(). HT can be NULL, in which case the call still succeeds, |
93 |
but no cleanup can be done. */ |
but no cleanup can be done. */ |
94 |
void CFHashtableLOCPRemove (CFHashtableRef ht, void **ht_locp); |
CF_EXTERN void CFHashtableLOCPRemove (CFHashtableRef ht, void **ht_locp); |
95 |
|
|
96 |
|
/* Hash function for string. */ |
97 |
|
CF_EXTERN int CFStringHashFunction (char *key); |
98 |
|
|
99 |
#endif /* CFHashtable.h */ |
#endif /* CFHashtable.h */ |