libnl: Hashtable

libnl 3.10.0

Functions
Hashtable
Core Library (libnl) » Data Types

## Functions
nl_hash_table_t * | nl_hash_table_alloc (int size)
| Allocate hashtable.
void | nl_hash_table_free (nl_hash_table_t *ht)
| Free hashtable including all nodes.
struct nl_object * | nl_hash_table_lookup (nl_hash_table_t *ht, struct nl_object *obj)
| Lookup identical object in hashtable.
int | nl_hash_table_add (nl_hash_table_t *ht, struct nl_object *obj)
| Add object to hashtable.
int | nl_hash_table_del (nl_hash_table_t *ht, struct nl_object *obj)
| Remove object from hashtable.
uint32_t | nl_hash (void *k, size_t length, uint32_t initval)

## Detailed Description

## Function Documentation

## ◆ nl_hash_table_alloc()

nl_hash_table_t * nl_hash_table_alloc | ( | int | size | ) |

Allocate hashtable.

Parameters

  size | Size of hashtable in number of elements

Returns
  Allocated hashtable or NULL.

Definition at line 26 of file hashtable.c.

Referenced by nl_cache_alloc().

Here is the caller graph for this function:

## ◆ nl_hash_table_free()

void nl_hash_table_free | ( | nl_hash_table_t * | ht | ) |

Free hashtable including all nodes.

Parameters

  ht | Hashtable

Note
  Reference counter of all objects in the hashtable will be decremented.

Definition at line 53 of file hashtable.c.

References nl_object_put().

Here is the call graph for this function:

## ◆ nl_hash_table_lookup()

struct nl_object * nl_hash_table_lookup | ( | nl_hash_table_t * | ht,
|  | struct nl_object * | obj )

Lookup identical object in hashtable.

Parameters

  ht | Hashtable
  obj | Object to lookup

Generates hashkey for `obj` and traverses the corresponding chain calling `nl_object_identical()` on each trying to find a match.

Returns
  Pointer to object if match was found or NULL.

Definition at line 83 of file hashtable.c.

References nl_object_identical(), and nl_object_keygen().

Here is the call graph for this function:

## ◆ nl_hash_table_add()

int nl_hash_table_add | ( | nl_hash_table_t * | ht,
|  | struct nl_object * | obj )

Add object to hashtable.

Parameters

  ht | Hashtable
  obj | Object to add

Adds `obj` to the hashtable. Object type must support hashing, otherwise all objects will be added to the chain `0`.

Note
  The reference counter of the object is incremented.

Returns
  0 on success or a negative error code

Return values

  -NLE_EXIST | Identical object already present in hashtable

Definition at line 114 of file hashtable.c.

References nl_object_get(), nl_object_identical(), and nl_object_keygen().

Here is the call graph for this function:

## ◆ nl_hash_table_del()

int nl_hash_table_del | ( | nl_hash_table_t * | ht,
|  | struct nl_object * | obj )

Remove object from hashtable.

Parameters

  ht | Hashtable
  obj | Object to remove

Remove `obj` from hashtable if it exists.

Note
  Reference counter of object will be decremented.

Returns
  0 on success or a negative error code.

Return values

  -NLE_OBJ_NOTFOUND | Object not present in hashtable.

Definition at line 158 of file hashtable.c.

References nl_object_identical(), nl_object_keygen(), and nl_object_put().

Referenced by nl_cache_remove().

Here is the call graph for this function:
Here is the caller graph for this function:

## ◆ nl_hash()

uint32_t nl_hash | ( | void * | k,
|  | size_t | length,
|  | uint32_t | initval )

Definition at line 189 of file hashtable.c.