libnl 3.5.0

Functions
Hashtable
Core Library (libnl) » Data Types

## Functions
nl_hash_table_t * | nl_hash_table_alloc (int size)
| Allocate hashtable. More...
void | nl_hash_table_free (nl_hash_table_t *ht)
| Free hashtable including all nodes. More...
struct nl_object * | nl_hash_table_lookup (nl_hash_table_t *ht, struct nl_object *obj)
| Lookup identical object in hashtable. More...
int | nl_hash_table_add (nl_hash_table_t *ht, struct nl_object *obj)
| Add object to hashtable. More...
int | nl_hash_table_del (nl_hash_table_t *ht, struct nl_object *obj)
| Remove object from hashtable. More...
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 30 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 57 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 87 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 118 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 162 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: