PipeWire 1.2.6
Loading...
Searching...
No Matches

Files

file  array.h
 pipewire/array.h
 

Data Structures

struct  pw_array
 

Macros

#define PW_ARRAY_INIT(extend)
 Initialize an array.
 
#define pw_array_get_len_s(a, s)
 Return the length of an array.
 
#define pw_array_get_unchecked_s(a, idx, s, t)
 
#define pw_array_check_index_s(a, idx, s)
 
#define pw_array_get_len(a, t)
 Get the number of items of type t in array.
 
#define pw_array_get_unchecked(a, idx, t)
 Get the item with index idx and type t from array.
 
#define pw_array_check_index(a, idx, t)
 Check if an item with index idx and type t exist in array.
 
#define pw_array_first(a)
 
#define pw_array_end(a)
 
#define pw_array_check(a, p)
 
#define pw_array_for_each(pos, array)
 
#define pw_array_consume(pos, array)
 
#define pw_array_remove(a, p)
 

Functions

static void pw_array_init (struct pw_array *arr, size_t extend)
 Initialize the array with given extend.
 
static void pw_array_clear (struct pw_array *arr)
 Clear the array.
 
static void pw_array_init_static (struct pw_array *arr, void *data, size_t size)
 Initialize a static array.
 
static void pw_array_reset (struct pw_array *arr)
 Reset the array.
 
static int pw_array_ensure_size (struct pw_array *arr, size_t size)
 Make sure size bytes can be added to the array.
 
static void * pw_array_add (struct pw_array *arr, size_t size)
 Add ref size bytes to arr.
 
static int pw_array_add_ptr (struct pw_array *arr, void *ptr)
 Add a pointer to array.
 

Detailed Description

An array object

The array is a dynamically resizable data structure that can hold items of the same size.

Macro Definition Documentation

◆ PW_ARRAY_INIT

#define PW_ARRAY_INIT ( extend)
Value:
((struct pw_array) { NULL, 0, 0, (extend) })
Definition array.h:32
size_t extend
number of bytes to extend with, 0 when the data should not expand
Definition array.h:36

Initialize an array.

The new array is empty.

◆ pw_array_get_len_s

#define pw_array_get_len_s ( a,
s )
Value:
((a)->size / (s))

Return the length of an array.

◆ pw_array_get_unchecked_s

#define pw_array_get_unchecked_s ( a,
idx,
s,
t )
Value:
SPA_PTROFF((a)->data,(idx)*(s),t)
#define SPA_PTROFF(ptr_, offset_, type_)
Return the address (buffer + offset) as pointer of type.
Definition defs.h:222

◆ pw_array_check_index_s

#define pw_array_check_index_s ( a,
idx,
s )
Value:
((idx) < pw_array_get_len_s(a,s))
#define pw_array_get_len_s(a, s)
Return the length of an array.
Definition array.h:45

◆ pw_array_get_len

#define pw_array_get_len ( a,
t )
Value:
pw_array_get_len_s(a,sizeof(t))

Get the number of items of type t in array.

◆ pw_array_get_unchecked

#define pw_array_get_unchecked ( a,
idx,
t )
Value:
pw_array_get_unchecked_s(a,idx,sizeof(t),t)
#define pw_array_get_unchecked_s(a, idx, s, t)
Definition array.h:46

Get the item with index idx and type t from array.

No bounds check is done.

◆ pw_array_check_index

#define pw_array_check_index ( a,
idx,
t )
Value:
pw_array_check_index_s(a,idx,sizeof(t))
#define pw_array_check_index_s(a, idx, s)
Definition array.h:47

Check if an item with index idx and type t exist in array.

◆ pw_array_first

#define pw_array_first ( a)
Value:
((a)->data)

◆ pw_array_end

#define pw_array_end ( a)
Value:
SPA_PTROFF((a)->data, (a)->size, void)

◆ pw_array_check

#define pw_array_check ( a,
p )
Value:
(SPA_PTROFF(p,sizeof(*(p)),void) <= pw_array_end(a))
#define pw_array_end(a)
Definition array.h:57

◆ pw_array_for_each

#define pw_array_for_each ( pos,
array )

◆ pw_array_consume

#define pw_array_consume ( pos,
array )

◆ pw_array_remove

#define pw_array_remove ( a,
p )

Function Documentation

◆ pw_array_init()

static void pw_array_init ( struct pw_array * arr,
size_t extend )
inlinestatic

Initialize the array with given extend.

Extend needs to be > 0 or else the array will not be able to expand.

◆ pw_array_clear()

static void pw_array_clear ( struct pw_array * arr)
inlinestatic

Clear the array.

This should be called when pw_array_init() was called.

◆ pw_array_init_static()

static void pw_array_init_static ( struct pw_array * arr,
void * data,
size_t size )
inlinestatic

Initialize a static array.

◆ pw_array_reset()

static void pw_array_reset ( struct pw_array * arr)
inlinestatic

Reset the array.

◆ pw_array_ensure_size()

static int pw_array_ensure_size ( struct pw_array * arr,
size_t size )
inlinestatic

Make sure size bytes can be added to the array.

◆ pw_array_add()

static void * pw_array_add ( struct pw_array * arr,
size_t size )
inlinestatic

Add ref size bytes to arr.

A pointer to memory that can hold at least size bytes is returned or NULL when an error occurred and errno will be set.

◆ pw_array_add_ptr()

static int pw_array_add_ptr ( struct pw_array * arr,
void * ptr )
inlinestatic

Add a pointer to array.

Returns 0 on success and a negative errno style error on failure.