Contains functions used in the classic 32-bit xxHash algorithm.
- Note
- XXH32 is useful for older platforms, with no or poor 64-bit performance. Note that the XXH3_family provides competitive speed for both 32-bit and 64-bit systems, and offers true 64/128 bit hash results.
- See also
- XXH64 family, XXH3_family : Other xxHash families
-
XXH32 implementation for implementation details
◆ XXH32_createState
| XXH_PUBLIC_API XXH32_state_t * XXH32_createState |
( |
|
void | ) |
XXH_NAME2(XXH_NAMESPACE, XXH32_createState) |
◆ XXH32_state_t
The opaque state struct for the XXH32 streaming API.
- See also
- XXH32_state_s for details.
◆ XXH32()
| XXH_PUBLIC_API XXH32_hash_t XXH32 |
( |
const void * |
input, |
|
|
size_t |
length, |
|
|
XXH32_hash_t |
seed |
|
) |
| |
Calculates the 32-bit hash of input using xxHash32.
- Parameters
-
| input | The block of data to be hashed, at least length bytes in size. |
| length | The length of input, in bytes. |
| seed | The 32-bit seed to alter the hash's output predictably. |
- Precondition
- The memory between
input and input + length must be valid, readable, contiguous memory. However, if length is 0, input may be NULL. In C++, this also must be TriviallyCopyable.
- Returns
- The calculated 32-bit xxHash32 value.
- See also
- Single Shot Example for an example.
◆ XXH32_canonicalFromHash()
| XXH_PUBLIC_API void XXH32_canonicalFromHash |
( |
XXH32_canonical_t * |
dst, |
|
|
XXH32_hash_t |
hash |
|
) |
| |
◆ XXH32_copyState()
Copies one XXH32_state_t to another.
- Parameters
-
| dst_state | The state to copy to. |
| src_state | The state to copy from. |
- Precondition
dst_state and src_state must not be NULL and must not overlap.
◆ XXH32_digest()
| XXH_PUBLIC_API XXH32_hash_t XXH32_digest |
( |
const XXH32_state_t * |
statePtr | ) |
|
Returns the calculated hash value from an XXH32_state_t.
- Parameters
-
| statePtr | The state struct to calculate the hash from. |
- Precondition
statePtr must not be NULL.
- Returns
- The calculated 32-bit xxHash32 value from that state.
- Note
- Calling XXH32_digest() will not affect
statePtr, so you can update, digest, and update again.
◆ XXH32_freeState()
| XXH_PUBLIC_API XXH_errorcode XXH32_freeState |
( |
XXH32_state_t * |
statePtr | ) |
|
◆ XXH32_hashFromCanonical()
◆ XXH32_reset()
| XXH_PUBLIC_API XXH_errorcode XXH32_reset |
( |
XXH32_state_t * |
statePtr, |
|
|
XXH32_hash_t |
seed |
|
) |
| |
Resets an XXH32_state_t to begin a new hash.
- Parameters
-
| statePtr | The state struct to reset. |
| seed | The 32-bit seed to alter the hash result predictably. |
- Precondition
statePtr must not be NULL.
- Returns
- XXH_OK on success.
-
XXH_ERROR on failure.
- Note
- This function resets and seeds a state. Call it before XXH32_update().
◆ XXH32_update()
| XXH_PUBLIC_API XXH_errorcode XXH32_update |
( |
XXH32_state_t * |
statePtr, |
|
|
const void * |
input, |
|
|
size_t |
length |
|
) |
| |
Consumes a block of input to an XXH32_state_t.
- Parameters
-
| statePtr | The state struct to update. |
| input | The block of data to be hashed, at least length bytes in size. |
| length | The length of input, in bytes. |
- Precondition
statePtr must not be NULL.
-
The memory between
input and input + length must be valid, readable, contiguous memory. However, if length is 0, input may be NULL. In C++, this also must be TriviallyCopyable.
- Returns
- XXH_OK on success.
-
XXH_ERROR on failure.
- Note
- Call this to incrementally consume blocks of data.