#include <event-config.h>
#include <sys/types.h>
#include <sys/time.h>
#include <event2/util.h>
Go to the source code of this file.
Defines | |
#define | signal_add(ev, tv) event_add(ev, tv) |
#define | signal_assign(ev, b, x, cb, arg) event_assign(ev, b, x, EV_SIGNAL|EV_PERSIST, cb, arg) |
#define | signal_del(ev) event_del(ev) |
#define | signal_initialized(ev) _event_initialized((ev), 0) |
#define | signal_new(b, x, cb, arg) event_new(b, x, EV_SIGNAL|EV_PERSIST, cb, arg) |
#define | signal_pending(ev, tv) event_pending(ev, EV_SIGNAL, tv) |
#define | signal_set(ev, x, cb, arg) event_set(ev, x, EV_SIGNAL|EV_PERSIST, cb, arg) |
#define | timeout_add(ev, tv) event_add(ev, tv) |
Add a timeout event. | |
#define | timeout_del(ev) event_del(ev) |
Disable a timeout event. | |
#define | timeout_initialized(ev) _event_initialized((ev), 0) |
#define | timeout_pending(ev, tv) event_pending(ev, EV_TIMEOUT, tv) |
#define | timeout_set(ev, cb, arg) event_set(ev, -1, 0, cb, arg) |
Define a timeout event. | |
Functions | |
int | event_dispatch (void) |
Loop to process events. | |
const char * | event_get_method (void) |
Get the kernel event notification mechanism used by libevent. | |
struct event_base * | event_init (void) |
Initialize the event API. | |
int | event_loop (int) |
Handle events. | |
int | event_loopbreak (void) |
Abort the active event_loop() immediately. | |
int | event_loopexit (const struct timeval *) |
Exit the event loop after the specified time. | |
int | event_once (evutil_socket_t, short, void(*)(evutil_socket_t, short, void *), void *, const struct timeval *) |
Schedule a one-time event to occur. | |
int | event_priority_init (int) |
Set the number of different event priorities. |
#define signal_add | ( | ev, | |||
tv | ) | event_add(ev, tv) |
#define signal_assign | ( | ev, | |||
b, | |||||
x, | |||||
cb, | |||||
arg | ) | event_assign(ev, b, x, EV_SIGNAL|EV_PERSIST, cb, arg) |
#define signal_del | ( | ev | ) | event_del(ev) |
#define signal_initialized | ( | ev | ) | _event_initialized((ev), 0) |
#define signal_new | ( | b, | |||
x, | |||||
cb, | |||||
arg | ) | event_new(b, x, EV_SIGNAL|EV_PERSIST, cb, arg) |
#define signal_pending | ( | ev, | |||
tv | ) | event_pending(ev, EV_SIGNAL, tv) |
#define signal_set | ( | ev, | |||
x, | |||||
cb, | |||||
arg | ) | event_set(ev, x, EV_SIGNAL|EV_PERSIST, cb, arg) |
#define timeout_add | ( | ev, | |||
tv | ) | event_add(ev, tv) |
Add a timeout event.
ev | the event struct to be disabled | |
tv | the timeout value, in seconds |
#define timeout_del | ( | ev | ) | event_del(ev) |
Disable a timeout event.
ev | the timeout event to be disabled |
#define timeout_initialized | ( | ev | ) | _event_initialized((ev), 0) |
#define timeout_pending | ( | ev, | |||
tv | ) | event_pending(ev, EV_TIMEOUT, tv) |
#define timeout_set | ( | ev, | |||
cb, | |||||
arg | ) | event_set(ev, -1, 0, cb, arg) |
Define a timeout event.
ev | the event struct to be defined | |
cb | the callback to be invoked when the timeout expires | |
arg | the argument to be passed to the callback |
int event_dispatch | ( | void | ) |
Loop to process events.
In order to process events, an application needs to call event_dispatch(). This function only returns on error, and should replace the event core of the application program.
const char* event_get_method | ( | void | ) |
Get the kernel event notification mechanism used by libevent.
struct event_base* event_init | ( | void | ) | [read] |
Initialize the event API.
The event API needs to be initialized with event_init() before it can be used. Sets the current_base global representing the default base for events that have no base associated with them.
int event_loop | ( | int | ) |
Handle events.
This is a more flexible version of event_dispatch().
flags | any combination of EVLOOP_ONCE | EVLOOP_NONBLOCK |
int event_loopbreak | ( | void | ) |
Abort the active event_loop() immediately.
event_loop() will abort the loop after the next event is completed; event_loopbreak() is typically invoked from this event's callback. This behavior is analogous to the "break;" statement.
Subsequent invocations of event_loop() will proceed normally.
int event_loopexit | ( | const struct timeval * | ) |
Exit the event loop after the specified time.
The next event_loop() iteration after the given timer expires will complete normally (handling all queued events) then exit without blocking for events again.
Subsequent invocations of event_loop() will proceed normally.
tv | the amount of time after which the loop should terminate. |
int event_once | ( | evutil_socket_t | , | |
short | , | |||
void(*)(evutil_socket_t, short, void *) | , | |||
void * | , | |||
const struct timeval * | ||||
) |
Schedule a one-time event to occur.
The function event_once() is similar to event_set(). However, it schedules a callback to be called exactly once and does not require the caller to prepare an event structure.
fd | a file descriptor to monitor | |
events | event(s) to monitor; can be any of EV_TIMEOUT | EV_READ | EV_WRITE | |
callback | callback function to be invoked when the event occurs | |
arg | an argument to be passed to the callback function | |
timeout | the maximum amount of time to wait for the event, or NULL to wait forever |
int event_priority_init | ( | int | ) |
Set the number of different event priorities.
By default libevent schedules all active events with the same priority. However, some time it is desirable to process some events with a higher priority than others. For that reason, libevent supports strict priority queues. Active events with a lower priority are always processed before events with a higher priority.
The number of different priorities can be set initially with the event_priority_init() function. This function should be called before the first call to event_dispatch(). The event_priority_set() function can be used to assign a priority to an event. By default, libevent assigns the middle priority to all events unless their priority is explicitly set.
npriorities | the maximum number of priorities |