ucx
UAP Common Extensions
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions
hash_key.h File Reference

Interface for map implementations. More...

#include "common.h"

Go to the source code of this file.

Data Structures

struct  cx_hash_key_s
 Internal structure for a key within a hash map. More...
 

Macros

#define cx_hash_key_cxstr(str)   cx_hash_key((void*)(str).ptr, (str).length)
 Computes a hash key from a UCX string.
 

Typedefs

typedef struct cx_hash_key_s CxHashKey
 Type for a hash key.
 

Functions

void cx_hash_murmur (CxHashKey *key)
 Computes a murmur2 32 bit hash.
 
CxHashKey cx_hash_key_str (char const *str)
 Computes a hash key from a string.
 
CxHashKey cx_hash_key_bytes (unsigned char const *bytes, size_t len)
 Computes a hash key from a byte array.
 
CxHashKey cx_hash_key (void const *obj, size_t len)
 Computes a hash key for an arbitrary object.
 

Detailed Description

Interface for map implementations.

Author
Mike Becker
Olaf Wintermann
Version
3.0

Macro Definition Documentation

◆ cx_hash_key_cxstr

#define cx_hash_key_cxstr (   str)    cx_hash_key((void*)(str).ptr, (str).length)

Computes a hash key from a UCX string.

Parameters
strthe string
Returns
the hash key

Function Documentation

◆ cx_hash_key()

CxHashKey cx_hash_key ( void const *  obj,
size_t  len 
)

Computes a hash key for an arbitrary object.

The computation uses the in-memory representation that might not be the same on different platforms. Therefore, this hash should not be used for data exchange with different machines.

Parameters
obja pointer to an arbitrary object
lenthe length of object in memory
Returns
the hash key

◆ cx_hash_key_bytes()

CxHashKey cx_hash_key_bytes ( unsigned char const *  bytes,
size_t  len 
)

Computes a hash key from a byte array.

Parameters
bytesthe array
lenthe length
Returns
the hash key

◆ cx_hash_key_str()

CxHashKey cx_hash_key_str ( char const *  str)

Computes a hash key from a string.

The string needs to be zero-terminated.

Parameters
strthe string
Returns
the hash key

◆ cx_hash_murmur()

void cx_hash_murmur ( CxHashKey key)

Computes a murmur2 32 bit hash.

You need to initialize data and len in the key struct. The hash is then directly written to that struct.

Note
If data is NULL, the hash is defined as 1574210520.
Parameters
keythe key, the hash shall be computed for