hook.h File Reference
SPA » Utilities » Hooks | SPA » Utilities » Interfaces

`spa/utils/hook.h` More...

Go to the source code of this file.

## Data Structures

struct | spa_callbacks
| Callbacks, contains the structure with functions and the data passed to the functions. More...
struct | spa_interface
struct | spa_hook_list
| A list of hooks. More...
struct | spa_hook
| A hook, contains the structure with functions and the data passed to the functions. More...

## Macros

#define | SPA_CALLBACK_VERSION_MIN(c, v) ((c) && ((v) == 0 || (c)->version > (v)-1))
| Check if a callback c is of at least version v. More...
#define | SPA_CALLBACK_CHECK(c, m, v) (SPA_CALLBACK_VERSION_MIN(c,v) && (c)->m)
| Check if a callback c has method m of version v. More...
#define | SPA_CALLBACKS_INIT(_funcs, _data) (struct spa_callbacks){ _funcs, _data, }
| Initialize the set of functions funcs as a spa_callbacks, together with _data. More...
#define | SPA_INTERFACE_INIT(_type, _version, _funcs, _data) (struct spa_interface){ _type, _version, SPA_CALLBACKS_INIT(_funcs,_data), }
| Initialize a spa_interface. More...
#define | spa_callbacks_call(callbacks, type, method, vers, ...)
| Invoke method named method in the callbacks. More...
#define | spa_callback_version_min(callbacks, type, vers)
| True if the callbacks are of version vers, false otherwise. More...
#define | spa_callback_check(callbacks, type, method, vers)
| True if the callbacks contains method of version vers, false otherwise. More...
#define | spa_callbacks_call_res(callbacks, type, res, method, vers, ...)
| Invoke method named method in the callbacks. More...
#define | spa_interface_callback_version_min(iface, method_type, vers) spa_callback_version_min(&(iface)->cb, method_type, vers)
| True if the iface's callbacks are of version vers, false otherwise. More...
#define | spa_interface_callback_check(iface, method_type, method, vers) spa_callback_check(&(iface)->cb, method_type, method, vers)
| True if the iface's callback method is of version vers and exists, false otherwise. More...
#define | spa_interface_call(iface, method_type, method, vers, ...) spa_callbacks_call(&(iface)->cb,method_type,method,vers,##__VA_ARGS__)
| Invoke method named method in the callbacks on the given interface object. More...
#define | spa_interface_call_res(iface, method_type, res, method, vers, ...) spa_callbacks_call_res(&(iface)->cb,method_type,res,method,vers,##__VA_ARGS__)
| Invoke method named method in the callbacks on the given interface object. More...
#define | spa_hook_list_call_simple(l, type, method, vers, ...)
#define | spa_hook_list_do_call(l, start, type, method, vers, once, ...)
| Call all hooks in a list, starting from the given one and optionally stopping after calling the first non-NULL function, returns the number of methods called. More...
#define | spa_hook_list_call(l, t, m, v, ...) spa_hook_list_do_call(l,NULL,t,m,v,false,##__VA_ARGS__)
| Call the method named m for each element in list l. More...
#define | spa_hook_list_call_once(l, t, m, v, ...) spa_hook_list_do_call(l,NULL,t,m,v,true,##__VA_ARGS__)
| Call the method named m for each element in list l, stopping after the first invocation. More...
#define | spa_hook_list_call_start(l, s, t, m, v, ...) spa_hook_list_do_call(l,s,t,m,v,false,##__VA_ARGS__)
#define | spa_hook_list_call_once_start(l, s, t, m, v, ...) spa_hook_list_do_call(l,s,t,m,v,true,##__VA_ARGS__)

## Functions

static void | spa_hook_list_init (struct spa_hook_list *list)
| Initialize a hook list to the empty list. More...
static bool | spa_hook_list_is_empty (struct spa_hook_list *list)
static void | spa_hook_list_append (struct spa_hook_list *list, struct spa_hook *hook, const void *funcs, void *data)
| Append a hook. More...
static void | spa_hook_list_prepend (struct spa_hook_list *list, struct spa_hook *hook, const void *funcs, void *data)
| Prepend a hook. More...
static void | spa_hook_remove (struct spa_hook *hook)
| Remove a hook. More...
static void | spa_hook_list_clean (struct spa_hook_list *list)
| Remove all hooks from the list. More...
static void | spa_hook_list_isolate (struct spa_hook_list *list, struct spa_hook_list *save, struct spa_hook *hook, const void *funcs, void *data)
static void | spa_hook_list_join (struct spa_hook_list *list, struct spa_hook_list *save)

## Detailed Description

`spa/utils/hook.h`