|
PipeWire 1.4.10
|
A map that holds pointers to objects indexed by id. More...
Files | |
| file | map.h |
| pipewire/map.h | |
Data Structures | |
| struct | pw_map |
| A map. More... | |
Macros | |
| #define | PW_MAP_INIT(extend) |
| #define | pw_map_get_size(m) |
| Get the number of currently allocated elements in the map. | |
| #define | pw_map_get_item(m, id) |
| #define | pw_map_item_is_free(item) |
| #define | pw_map_id_is_free(m, id) |
| #define | pw_map_check_id(m, id) |
| #define | pw_map_has_item(m, id) |
| #define | pw_map_lookup_unchecked(m, id) |
| #define | PW_MAP_ID_TO_PTR(id) |
| Convert an id to a pointer that can be inserted into the map. | |
| #define | PW_MAP_PTR_TO_ID(p) |
| Convert a pointer to an id that can be retrieved from the map. | |
Functions | |
| PW_API_MAP void | pw_map_init (struct pw_map *map, size_t size, size_t extend) |
| Initialize a map. | |
| PW_API_MAP void | pw_map_clear (struct pw_map *map) |
| Clear a map and free the data storage. | |
| PW_API_MAP void | pw_map_reset (struct pw_map *map) |
| Reset a map but keep previously allocated storage. | |
| PW_API_MAP uint32_t | pw_map_insert_new (struct pw_map *map, void *data) |
| Insert data in the map. | |
| PW_API_MAP int | pw_map_insert_at (struct pw_map *map, uint32_t id, void *data) |
| Replace the data in the map at an index. | |
| PW_API_MAP void | pw_map_remove (struct pw_map *map, uint32_t id) |
| Remove an item at index. | |
| PW_API_MAP void * | pw_map_lookup (const struct pw_map *map, uint32_t id) |
| Find an item in the map. | |
| PW_API_MAP int | pw_map_for_each (const struct pw_map *map, int(*func)(void *item_data, void *data), void *data) |
| Iterate all map items. | |
A map that holds pointers to objects indexed by id.
The map is a sparse version of the pw_array that manages the indices of elements for the caller. Adding items with pw_map_insert_new() returns the assigned index for that item; if items are removed the map re-uses indices to keep the array at the minimum required size.
| #define PW_MAP_INIT | ( | extend | ) |
| extend | the amount of bytes to grow the map with when needed |
| #define pw_map_get_size | ( | m | ) |
Get the number of currently allocated elements in the map.
| #define pw_map_get_item | ( | m, | |
| id ) |
| #define pw_map_item_is_free | ( | item | ) |
| #define pw_map_id_is_free | ( | m, | |
| id ) |
| #define pw_map_check_id | ( | m, | |
| id ) |
| #define pw_map_has_item | ( | m, | |
| id ) |
| #define pw_map_lookup_unchecked | ( | m, | |
| id ) |
| #define PW_MAP_ID_TO_PTR | ( | id | ) |
Convert an id to a pointer that can be inserted into the map.
| #define PW_MAP_PTR_TO_ID | ( | p | ) |
Convert a pointer to an id that can be retrieved from the map.
| PW_API_MAP void pw_map_init | ( | struct pw_map * | map, |
| size_t | size, | ||
| size_t | extend ) |
Initialize a map.
| map | the map to initialize |
| size | the initial size of the map |
| extend | the amount to bytes to grow the map with when needed |
| PW_API_MAP void pw_map_clear | ( | struct pw_map * | map | ) |
Clear a map and free the data storage.
All previously returned ids must be treated as invalid.
| PW_API_MAP void pw_map_reset | ( | struct pw_map * | map | ) |
Reset a map but keep previously allocated storage.
All previously returned ids must be treated as invalid.
| PW_API_MAP uint32_t pw_map_insert_new | ( | struct pw_map * | map, |
| void * | data ) |
Insert data in the map.
This function causes the map to grow if required.
| map | the map to insert into |
| data | the item to add |
| PW_API_MAP int pw_map_insert_at | ( | struct pw_map * | map, |
| uint32_t | id, | ||
| void * | data ) |
Replace the data in the map at an index.
| map | the map to insert into |
| id | the index to insert at, must be less or equal to pw_map_get_size() |
| data | the data to insert |
| PW_API_MAP void pw_map_remove | ( | struct pw_map * | map, |
| uint32_t | id ) |
Remove an item at index.
The id may get re-used in the future.
| map | the map to remove from |
| id | the index to remove |
| PW_API_MAP void * pw_map_lookup | ( | const struct pw_map * | map, |
| uint32_t | id ) |
Find an item in the map.
| map | the map to use |
| id | the index to look at |
| PW_API_MAP int pw_map_for_each | ( | const struct pw_map * | map, |
| int(* | func )(void *item_data, void *data), | ||
| void * | data ) |
Iterate all map items.
| map | the map to iterate |
| func | the function to call for each item, the item data and data is passed to the function. When func returns a non-zero result, iteration ends and the result is returned. |
| data | data to pass to func |