map.h File Reference
Utilities » Map

`pipewire/map.h` More...

Go to the source code of this file.

## Data Structures

struct | pw_map
| A map. More...

## Macros

#define | PW_MAP_INIT(extend) (struct pw_map) { PW_ARRAY_INIT(extend), SPA_ID_INVALID }
#define | pw_map_get_size(m) pw_array_get_len(&(m)->items, union pw_map_item)
| Get the number of currently allocated elements in the map. More...
#define | pw_map_get_item(m, id) pw_array_get_unchecked(&(m)->items,id,union pw_map_item)
#define | pw_map_item_is_free(item) ((item)->next & 0x1)
#define | pw_map_id_is_free(m, id) (pw_map_item_is_free(pw_map_get_item(m,id)))
#define | pw_map_check_id(m, id) ((id) < pw_map_get_size(m))
#define | pw_map_has_item(m, id) (pw_map_check_id(m,id) && !pw_map_id_is_free(m, id))
#define | pw_map_lookup_unchecked(m, id) pw_map_get_item(m,id)->data
#define | PW_MAP_ID_TO_PTR(id) (SPA_UINT32_TO_PTR((id)<<1))
| Convert an id to a pointer that can be inserted into the map. More...
#define | PW_MAP_PTR_TO_ID(p) (SPA_PTR_TO_UINT32(p)>>1)
| Convert a pointer to an id that can be retrieved from the map. More...

## Functions

static void | pw_map_init (struct pw_map *map, size_t size, size_t extend)
| Initialize a map. More...
static void | pw_map_clear (struct pw_map *map)
| Clear a map and free the data storage. More...
static void | pw_map_reset (struct pw_map *map)
| Reset a map but keep previously allocated storage. More...
static uint32_t | pw_map_insert_new (struct pw_map *map, void *data)
| Insert data in the map. More...
static int | pw_map_insert_at (struct pw_map *map, uint32_t id, void *data)
| Replace the data in the map at an index. More...
static void | pw_map_remove (struct pw_map *map, uint32_t id)
| Remove an item at index. More...
static void * | pw_map_lookup (struct pw_map *map, uint32_t id)
| Find an item in the map. More...
static int | pw_map_for_each (struct pw_map *map, int(*func)(void *item_data, void *data), void *data)
| Iterate all map items. More...

## Detailed Description

`pipewire/map.h`