Hash chain node structure.
- Notes:
- 1. This preprocessing directive is for debugging purposes. The effect is that if the preprocessor symbol KAZLIB_OPAQUE_DEBUG is defined prior to the inclusion of this header, then the structure shall be declared as having the single member int OPAQUE. This way, any attempts by the client code to violate the principles of information hiding (by accessing the structure directly) can be diagnosed at translation time. However, note the resulting compiled unit is not suitable for linking.
2. This is a pointer to the next node in the chain. In the last node of a chain, this pointer is null.
3. This is a back-pointer to the primary pointer to this node. The primary pointer is the previous node's next pointer to this node. If there is no previous node, the primary pointer is the pointer that resides in the hash table. This back-pointer lets us handle deletions easily without searching the chain.
4. The key is a pointer to some user supplied data that contains a unique identifier for each hash node in a given table. The interpretation of the data is up to the user. When creating or initializing a hash table, the user must supply a pointer to a function for comparing two keys, and a pointer to a function for hashing a key into a numeric value.
5. The value is a user-supplied pointer to void which may refer to any data object. It is not interpreted in any way by the hashing module.
6. The hashed key is stored in each node so that we don't have to rehash each key when the table must grow or shrink.
Definition at line 149 of file hash.h.