31 #ifndef CPL_HASH_SET_H_INCLUDED
32 #define CPL_HASH_SET_H_INCLUDED
int CPLHashSetRemove(CPLHashSet *set, const void *elt)
Removes an element from a hash set.
Definition: cpl_hash_set.cpp:470
unsigned long(* CPLHashSetHashFunc)(const void *elt)
CPLHashSetHashFunc.
Definition: cpl_hash_set.h:55
unsigned long CPLHashSetHashPointer(const void *elt)
Hash function for an arbitrary pointer.
Definition: cpl_hash_set.cpp:509
void * CPLHashSetLookup(CPLHashSet *set, const void *elt)
Returns the element found in the hash set corresponding to the element to look up The element must no...
Definition: cpl_hash_set.cpp:401
struct _CPLHashSet CPLHashSet
Opaque type for a hash set.
Definition: cpl_hash_set.h:52
int CPLHashSetEqualPointer(const void *elt1, const void *elt2)
Equality function for arbitrary pointers.
Definition: cpl_hash_set.cpp:528
void CPLHashSetDestroy(CPLHashSet *set)
Destroys an allocated hash set.
Definition: cpl_hash_set.cpp:202
void CPLHashSetClear(CPLHashSet *set)
Clear all elements from a hash set.
Definition: cpl_hash_set.cpp:224
int CPLHashSetSize(const CPLHashSet *set)
Returns the number of elements inserted in the hash set.
Definition: cpl_hash_set.cpp:121
int CPLHashSetInsert(CPLHashSet *set, void *elt)
Inserts an element into a hash set.
Definition: cpl_hash_set.cpp:351
unsigned long CPLHashSetHashStr(const void *pszStr)
Hash function for a zero-terminated string.
Definition: cpl_hash_set.cpp:546
void CPLHashSetForeach(CPLHashSet *set, CPLHashSetIterEltFunc fnIterFunc, void *user_data)
Walk through the hash set and runs the provided function on all the elements.
Definition: cpl_hash_set.cpp:257
int(* CPLHashSetIterEltFunc)(void *elt, void *user_data)
CPLHashSetIterEltFunc.
Definition: cpl_hash_set.h:64
void(* CPLHashSetFreeEltFunc)(void *elt)
CPLHashSetFreeEltFunc.
Definition: cpl_hash_set.h:61
int CPLHashSetEqualStr(const void *pszStr1, const void *pszStr2)
Equality function for strings.
Definition: cpl_hash_set.cpp:574
int(* CPLHashSetEqualFunc)(const void *elt1, const void *elt2)
CPLHashSetEqualFunc.
Definition: cpl_hash_set.h:58
CPLHashSet * CPLHashSetNew(CPLHashSetHashFunc fnHashFunc, CPLHashSetEqualFunc fnEqualFunc, CPLHashSetFreeEltFunc fnFreeEltFunc)
Creates a new hash set.
Definition: cpl_hash_set.cpp:86
int CPLHashSetRemoveDeferRehash(CPLHashSet *set, const void *elt)
Removes an element from a hash set.
Definition: cpl_hash_set.cpp:492
Core portability definitions for CPL.
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:299
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:295