Loading...
Searching...
No Matches
callback.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Inria
3 * 2017 Freie Universität Berlin
4 * 2017 Kaspar Schleiser <kaspar@schleiser.de>
5 *
6 * This file is subject to the terms and conditions of the GNU Lesser
7 * General Public License v2.1. See the file LICENSE in the top level
8 * directory for more details.
9 */
10
36#ifndef EVENT_CALLBACK_H
37#define EVENT_CALLBACK_H
38
39#include "event.h"
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
48typedef struct {
50 void (*callback)(void*);
51 void *arg;
53
61void event_callback_init(event_callback_t *event_callback, void (*callback)(void *), void *arg);
62
74 event_queue_t *queue,
75 void (*callback)(void *), void *arg)
76{
77 event_callback_init(event, callback, arg);
78 event_post(queue, &event->super);
79}
80
89
96#define EVENT_CALLBACK_INIT(_cb, _arg) \
97 { \
98 .super.handler = _event_callback_handler, \
99 .callback = _cb, \
100 .arg = (void *)_arg \
101 }
102
103#ifdef __cplusplus
104}
105#endif
106#endif /* EVENT_CALLBACK_H */
static void event_callback_oneshot(event_callback_t *event, event_queue_t *queue, void(*callback)(void *), void *arg)
Generate a one-shot callback event on queue.
Definition callback.h:73
void event_callback_init(event_callback_t *event_callback, void(*callback)(void *), void *arg)
event callback initialization function
void _event_callback_handler(event_t *event)
event callback handler function (used internally)
void event_post(event_queue_t *queue, event_t *event)
Queue an event.
event queue structure
Definition event.h:156
Callback Event structure definition.
Definition callback.h:48
event_t super
event_t structure that gets extended
Definition callback.h:49
void * arg
callback function argument
Definition callback.h:51
event structure
Definition event.h:148