SimGrid: Dictionaries with non-nul terminated keys

SimGrid 3.10 Versatile Simulation of Distributed Systems

- Home page
- Online documentation
- Dev's Corner

All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Functions
Dictionaries with non-nul terminated keys
Dict: generic dictionnary

## Functions
void | xbt_dict_set_ext (xbt_dict_t dict, const char *key, int key_len, void *data, void_f_pvoid_t free_ctn)
| Add data to the dict (arbitrary key)
void * | xbt_dict_get_ext (xbt_dict_t dict, const char *key, int key_len)
| Retrieve data from the dict (arbitrary key)
void * | xbt_dict_get_or_null_ext (xbt_dict_t dict, const char *key, int key_len)
| like xbt_dict_get_ext(), but returning NULL when not found
void | xbt_dict_remove_ext (xbt_dict_t dict, const char *key, int key_len)
| Remove data from the dict (arbitrary key)

## Detailed Description

Those functions work even with non-null terminated keys.

## Function Documentation

void xbt_dict_set_ext | ( | xbt_dict_t | dict,
|  | const char * | key,
|  | int | key_len,
|  | void * | data,
|  | void_f_pvoid_t | free_ctn
| ) |  |

Add data to the dict (arbitrary key)

Parameters

  dict | the container
  key | the key to set the new data
  key_len | the size of the key
  data | the data to add in the dict
  free_ctn | function to call with (data as argument) when data is removed from the dictionary

Set the data in the structure under the key, which can be any kind of data, as long as its length is provided in key_len.

void* xbt_dict_get_ext | ( | xbt_dict_t | dict,
|  | const char * | key,
|  | int | key_len
| ) |  |

Retrieve data from the dict (arbitrary key)

Parameters

  dict | the dealer of data
  key | the key to find data
  key_len | the size of the key

Returns
  the data that we are looking for

Search the given key. Throws not_found_error when not found.

void xbt_dict_remove_ext | ( | xbt_dict_t | dict,
|  | const char * | key,
|  | int | key_len
| ) |  |

Remove data from the dict (arbitrary key)

Parameters

  dict | the trash can
  key | the key of the data to be removed
  key_len | the size of the key

Remove the entry associated with the given key (throws not_found)