CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
Core Types & Access

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
 

Detailed Description

Core data structures, table information queries, and element access functions

Macro Definition Documentation

◆ hteKey

#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)

Parameters
refThe hash table
typeType of the key
elemElement handle
Returns
Key value

Definition at line 154 of file hashtable.h.

◆ hteKeyPtr

#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()

Parameters
refThe hash table
typeType of the key
elemElement handle
Returns
Typed pointer to the key

Definition at line 135 of file hashtable.h.

◆ hteKeyPtrHdr

#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

Parameters
hdrHash table header pointer
typeType of the key
elemElement handle
Returns
Typed pointer to the key

Definition at line 115 of file hashtable.h.

◆ hteVal

#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)

Parameters
refThe hash table
typeType of the value
elemElement handle
Returns
Value

Definition at line 163 of file hashtable.h.

◆ hteValPtr

#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()

Parameters
refThe hash table
typeType of the value
elemElement handle
Returns
Typed pointer to the value

Definition at line 145 of file hashtable.h.

◆ hteValPtrHdr

#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

Parameters
hdrHash table header pointer
typeType of the value
elemElement handle
Returns
Typed pointer to the value

Definition at line 125 of file hashtable.h.

◆ htiKey

#define htiKey (   type,
  iter 
)    (*htiKeyPtr(type, iter))

[type] htiKey(type, htiter iter)

Returns the key at the current iterator position (by value)

Parameters
typeType of the key
iterHash table iterator
Returns
Key value

Definition at line 187 of file hashtable.h.

◆ htiKeyPtr

#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

Parameters
typeType of the key
iterHash table iterator
Returns
Typed pointer to the key

Definition at line 171 of file hashtable.h.

◆ htiVal

#define htiVal (   type,
  iter 
)    (*htiValPtr(type, iter))

[type] htiVal(type, htiter iter)

Returns the value at the current iterator position (by value)

Parameters
typeType of the value
iterHash table iterator
Returns
Value

Definition at line 195 of file hashtable.h.

◆ htiValPtr

#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

Parameters
typeType of the value
iterHash table iterator
Returns
Typed pointer to the value

Definition at line 179 of file hashtable.h.

◆ htKeyType

#define htKeyType (   ref)    ((ref) ? _htHdr((ref))->keytype : 0)

stype htKeyType(hashtable ref)

Returns the runtime type descriptor for the hash table's keys

Parameters
refThe hash table to query
Returns
Runtime type descriptor for keys

Definition at line 98 of file hashtable.h.

◆ htSize

#define htSize (   ref)    ((ref) ? _htHdr((ref))->valid : 0)

uint32 htSize(hashtable ref)

Returns the number of valid entries in the hash table

Parameters
refThe hash table to query
Returns
Number of valid entries in the table

Definition at line 91 of file hashtable.h.

◆ htValType

#define htValType (   ref)    ((ref) ? _htHdr((ref))->valtype : 0)

stype htValType(hashtable ref)

Returns the runtime type descriptor for the hash table's values

Parameters
refThe hash table to query
Returns
Runtime type descriptor for values

Definition at line 105 of file hashtable.h.

Typedef Documentation

◆ hashtable

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.