|
CX Framework
Cross-platform C utility framework
|
Macros | |
| #define | htSize(ref) ((ref) ? _htHdr((ref))->valid : 0) |
| #define | htKeyType(ref) ((ref) ? _htHdr((ref))->keytype : 0) |
| #define | htValType(ref) ((ref) ? _htHdr((ref))->valtype : 0) |
| #define | hteKeyPtrHdr(hdr, type, elem) ((stStorageType(type)*)_hteElemKeyPtr(hdr, elem)) |
| #define | hteValPtrHdr(hdr, type, elem) ((stStorageType(type)*)_hteElemValPtr(hdr, elem)) |
| #define | hteKeyPtr(ref, type, elem) hteKeyPtrHdr(_htHdr(ref), type, elem) |
| #define | hteValPtr(ref, type, elem) hteValPtrHdr(_htHdr(ref), type, elem) |
| #define | hteKey(ref, type, elem) (*hteKeyPtr(ref, type, elem)) |
| #define | hteVal(ref, type, elem) (*hteValPtr(ref, type, elem)) |
| #define | htiKeyPtr(type, iter) (hteKeyPtrHdr((iter).hdr, type, (iter).slot)) |
| #define | htiValPtr(type, iter) (hteValPtrHdr((iter).hdr, type, (iter).slot)) |
| #define | htiKey(type, iter) (*htiKeyPtr(type, iter)) |
| #define | htiVal(type, iter) (*htiValPtr(type, iter)) |
Typedefs | |
| typedef struct hashtable_ref * | hashtable |
Core data structures, table information queries, and element access functions
| #define hteKey | ( | ref, | |
| type, | |||
| elem | |||
| ) | (*hteKeyPtr(ref, type, elem)) |
[type] hteKey(hashtable ref, type, htelem elem)
Returns the key stored at the given element (by value)
| ref | The hash table |
| type | Type of the key |
| elem | Element handle |
Definition at line 154 of file hashtable.h.
| #define hteKeyPtr | ( | ref, | |
| type, | |||
| elem | |||
| ) | hteKeyPtrHdr(_htHdr(ref), type, elem) |
[type] *hteKeyPtr(hashtable ref, type, htelem elem)
Returns a typed pointer to the key stored at the given element The element handle must be obtained from htInsert() or htFind()
| ref | The hash table |
| type | Type of the key |
| elem | Element handle |
Definition at line 135 of file hashtable.h.
| #define hteKeyPtrHdr | ( | hdr, | |
| type, | |||
| elem | |||
| ) | ((stStorageType(type)*)_hteElemKeyPtr(hdr, elem)) |
[type] *hteKeyPtrHdr(HashTableHeader *hdr, type, htelem elem)
Returns a typed pointer to the key stored at the given element Internal version that takes a header pointer directly
| hdr | Hash table header pointer |
| type | Type of the key |
| elem | Element handle |
Definition at line 115 of file hashtable.h.
| #define hteVal | ( | ref, | |
| type, | |||
| elem | |||
| ) | (*hteValPtr(ref, type, elem)) |
[type] hteVal(hashtable ref, type, htelem elem)
Returns the value stored at the given element (by value)
| ref | The hash table |
| type | Type of the value |
| elem | Element handle |
Definition at line 163 of file hashtable.h.
| #define hteValPtr | ( | ref, | |
| type, | |||
| elem | |||
| ) | hteValPtrHdr(_htHdr(ref), type, elem) |
[type] *hteValPtr(hashtable ref, type, htelem elem)
Returns a typed pointer to the value stored at the given element The element handle must be obtained from htInsert() or htFind()
| ref | The hash table |
| type | Type of the value |
| elem | Element handle |
Definition at line 145 of file hashtable.h.
| #define hteValPtrHdr | ( | hdr, | |
| type, | |||
| elem | |||
| ) | ((stStorageType(type)*)_hteElemValPtr(hdr, elem)) |
[type] *hteValPtrHdr(HashTableHeader *hdr, type, htelem elem)
Returns a typed pointer to the value stored at the given element Internal version that takes a header pointer directly
| hdr | Hash table header pointer |
| type | Type of the value |
| elem | Element handle |
Definition at line 125 of file hashtable.h.
| #define htiKey | ( | type, | |
| iter | |||
| ) | (*htiKeyPtr(type, iter)) |
[type] htiKey(type, htiter iter)
Returns the key at the current iterator position (by value)
| type | Type of the key |
| iter | Hash table iterator |
Definition at line 187 of file hashtable.h.
| #define htiKeyPtr | ( | type, | |
| iter | |||
| ) | (hteKeyPtrHdr((iter).hdr, type, (iter).slot)) |
[type] *htiKeyPtr(type, htiter iter)
Returns a typed pointer to the key at the current iterator position
| type | Type of the key |
| iter | Hash table iterator |
Definition at line 171 of file hashtable.h.
| #define htiVal | ( | type, | |
| iter | |||
| ) | (*htiValPtr(type, iter)) |
[type] htiVal(type, htiter iter)
Returns the value at the current iterator position (by value)
| type | Type of the value |
| iter | Hash table iterator |
Definition at line 195 of file hashtable.h.
| #define htiValPtr | ( | type, | |
| iter | |||
| ) | (hteValPtrHdr((iter).hdr, type, (iter).slot)) |
[type] *htiValPtr(type, htiter iter)
Returns a typed pointer to the value at the current iterator position
| type | Type of the value |
| iter | Hash table iterator |
Definition at line 179 of file hashtable.h.
| #define htKeyType | ( | ref | ) | ((ref) ? _htHdr((ref))->keytype : 0) |
stype htKeyType(hashtable ref)
Returns the runtime type descriptor for the hash table's keys
| ref | The hash table to query |
Definition at line 98 of file hashtable.h.
| #define htSize | ( | ref | ) | ((ref) ? _htHdr((ref))->valid : 0) |
uint32 htSize(hashtable ref)
Returns the number of valid entries in the hash table
| ref | The hash table to query |
Definition at line 91 of file hashtable.h.
| #define htValType | ( | ref | ) | ((ref) ? _htHdr((ref))->valtype : 0) |
stype htValType(hashtable ref)
Returns the runtime type descriptor for the hash table's values
| ref | The hash table to query |
Definition at line 105 of file hashtable.h.
| typedef struct hashtable_ref* hashtable |
Opaque handle to a hash table Must be destroyed with htDestroy() when no longer needed
Definition at line 26 of file hashtable.h.