libevent-2.1.12-stable
Loading...
Searching...
No Matches
event.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
3 * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. The name of the author may not be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27#ifndef EVENT2_EVENT_H_INCLUDED_
28#define EVENT2_EVENT_H_INCLUDED_
29
185#include <event2/visibility.h>
186
187#ifdef __cplusplus
188extern "C" {
189#endif
190
191#include <event2/event-config.h>
192#ifdef EVENT__HAVE_SYS_TYPES_H
193#include <sys/types.h>
194#endif
195#ifdef EVENT__HAVE_SYS_TIME_H
196#include <sys/time.h>
197#endif
198
199#include <stdio.h>
200
201/* For int types. */
202#include <event2/util.h>
203
218#ifdef EVENT_IN_DOXYGEN_
219{/*Empty body so that doxygen will generate documentation here.*/}
220#endif
221;
222
276struct event
277#ifdef EVENT_IN_DOXYGEN_
278{/*Empty body so that doxygen will generate documentation here.*/}
279#endif
280;
281
296#ifdef EVENT_IN_DOXYGEN_
297{/*Empty body so that doxygen will generate documentation here.*/}
298#endif
299;
300
321EVENT2_EXPORT_SYMBOL
323
333EVENT2_EXPORT_SYMBOL
335
343EVENT2_EXPORT_SYMBOL
345
356EVENT2_EXPORT_SYMBOL
357int event_reinit(struct event_base *base);
358
372EVENT2_EXPORT_SYMBOL
374
381EVENT2_EXPORT_SYMBOL
382const char *event_base_get_method(const struct event_base *);
383
396EVENT2_EXPORT_SYMBOL
398
402EVENT2_EXPORT_SYMBOL
403int event_gettime_monotonic(struct event_base *base, struct timeval *tp);
404
413#define EVENT_BASE_COUNT_ACTIVE 1U
416#define EVENT_BASE_COUNT_VIRTUAL 2U
419#define EVENT_BASE_COUNT_ADDED 4U
440EVENT2_EXPORT_SYMBOL
441int event_base_get_num_events(struct event_base *, unsigned int);
442
453EVENT2_EXPORT_SYMBOL
454int event_base_get_max_events(struct event_base *, unsigned int, int);
455
466EVENT2_EXPORT_SYMBOL
468
474EVENT2_EXPORT_SYMBOL
476
489EVENT2_EXPORT_SYMBOL
490int event_config_avoid_method(struct event_config *cfg, const char *method);
491
520
551
567
575
583EVENT2_EXPORT_SYMBOL
584int event_base_get_features(const struct event_base *base);
585
608EVENT2_EXPORT_SYMBOL
609int event_config_require_features(struct event_config *cfg, int feature);
610
617EVENT2_EXPORT_SYMBOL
618int event_config_set_flag(struct event_config *cfg, int flag);
619
629EVENT2_EXPORT_SYMBOL
631
660EVENT2_EXPORT_SYMBOL
662 const struct timeval *max_interval, int max_callbacks,
663 int min_priority);
664
677EVENT2_EXPORT_SYMBOL
679
691EVENT2_EXPORT_SYMBOL
693
697EVENT2_EXPORT_SYMBOL
699
703#define EVENT_LOG_DEBUG 0
704#define EVENT_LOG_MSG 1
705#define EVENT_LOG_WARN 2
706#define EVENT_LOG_ERR 3
709/* Obsolete names: these are deprecated, but older programs might use them.
710 * They violate the reserved-identifier namespace. */
711#define _EVENT_LOG_DEBUG EVENT_LOG_DEBUG
712#define _EVENT_LOG_MSG EVENT_LOG_MSG
713#define _EVENT_LOG_WARN EVENT_LOG_WARN
714#define _EVENT_LOG_ERR EVENT_LOG_ERR
715
721typedef void (*event_log_cb)(int severity, const char *msg);
732EVENT2_EXPORT_SYMBOL
734
740typedef void (*event_fatal_cb)(int err);
741
754EVENT2_EXPORT_SYMBOL
756
757#define EVENT_DBG_ALL 0xffffffffu
758#define EVENT_DBG_NONE 0
759
774EVENT2_EXPORT_SYMBOL
775void event_enable_debug_logging(ev_uint32_t which);
776
786EVENT2_EXPORT_SYMBOL
787int event_base_set(struct event_base *, struct event *);
788
796#define EVLOOP_ONCE 0x01
799#define EVLOOP_NONBLOCK 0x02
804#define EVLOOP_NO_EXIT_ON_EMPTY 0x04
825EVENT2_EXPORT_SYMBOL
826int event_base_loop(struct event_base *, int);
827
843EVENT2_EXPORT_SYMBOL
844int event_base_loopexit(struct event_base *, const struct timeval *);
845
859EVENT2_EXPORT_SYMBOL
861
879EVENT2_EXPORT_SYMBOL
881
894EVENT2_EXPORT_SYMBOL
896
909EVENT2_EXPORT_SYMBOL
911
921#define EV_TIMEOUT 0x01
923#define EV_READ 0x02
925#define EV_WRITE 0x04
927#define EV_SIGNAL 0x08
934#define EV_PERSIST 0x10
936#define EV_ET 0x20
945#define EV_FINALIZE 0x40
954#define EV_CLOSED 0x80
964#define evtimer_assign(ev, b, cb, arg) \
965 event_assign((ev), (b), -1, 0, (cb), (arg))
966#define evtimer_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg))
967#define evtimer_add(ev, tv) event_add((ev), (tv))
968#define evtimer_del(ev) event_del(ev)
969#define evtimer_pending(ev, tv) event_pending((ev), EV_TIMEOUT, (tv))
970#define evtimer_initialized(ev) event_initialized(ev)
979#define evsignal_add(ev, tv) event_add((ev), (tv))
980#define evsignal_assign(ev, b, x, cb, arg) \
981 event_assign((ev), (b), (x), EV_SIGNAL|EV_PERSIST, cb, (arg))
982#define evsignal_new(b, x, cb, arg) \
983 event_new((b), (x), EV_SIGNAL|EV_PERSIST, (cb), (arg))
984#define evsignal_del(ev) event_del(ev)
985#define evsignal_pending(ev, tv) event_pending((ev), EV_SIGNAL, (tv))
986#define evsignal_initialized(ev) event_initialized(ev)
996#define evuser_new(b, cb, arg) event_new((b), -1, 0, (cb), (arg))
997#define evuser_del(ev) event_del(ev)
998#define evuser_pending(ev, tv) event_pending((ev), 0, (tv))
999#define evuser_initialized(ev) event_initialized(ev)
1000#define evuser_trigger(ev) event_active((ev), 0, 0)
1014typedef void (*event_callback_fn)(evutil_socket_t, short, void *);
1015
1038EVENT2_EXPORT_SYMBOL
1040
1089EVENT2_EXPORT_SYMBOL
1091
1092
1131EVENT2_EXPORT_SYMBOL
1132int event_assign(struct event *, struct event_base *, evutil_socket_t, short, event_callback_fn, void *);
1133
1140EVENT2_EXPORT_SYMBOL
1141void event_free(struct event *);
1142
1146typedef void (*event_finalize_callback_fn)(struct event *, void *);
1178EVENT2_EXPORT_SYMBOL
1179int event_finalize(unsigned, struct event *, event_finalize_callback_fn);
1180EVENT2_EXPORT_SYMBOL
1181int event_free_finalize(unsigned, struct event *, event_finalize_callback_fn);
1208EVENT2_EXPORT_SYMBOL
1209int event_base_once(struct event_base *, evutil_socket_t, short, event_callback_fn, void *, const struct timeval *);
1210
1232EVENT2_EXPORT_SYMBOL
1233int event_add(struct event *ev, const struct timeval *timeout);
1234
1244EVENT2_EXPORT_SYMBOL
1246
1258EVENT2_EXPORT_SYMBOL
1259int event_del(struct event *);
1260
1266EVENT2_EXPORT_SYMBOL
1267int event_del_noblock(struct event *ev);
1273EVENT2_EXPORT_SYMBOL
1274int event_del_block(struct event *ev);
1275
1290EVENT2_EXPORT_SYMBOL
1291void event_active(struct event *ev, int res, short ncalls);
1292
1306EVENT2_EXPORT_SYMBOL
1307int event_pending(const struct event *ev, short events, struct timeval *tv);
1308
1315EVENT2_EXPORT_SYMBOL
1317
1333EVENT2_EXPORT_SYMBOL
1334int event_initialized(const struct event *ev);
1335
1339#define event_get_signal(ev) ((int)event_get_fd(ev))
1340
1345EVENT2_EXPORT_SYMBOL
1347
1351EVENT2_EXPORT_SYMBOL
1352struct event_base *event_get_base(const struct event *ev);
1353
1357EVENT2_EXPORT_SYMBOL
1358short event_get_events(const struct event *ev);
1359
1363EVENT2_EXPORT_SYMBOL
1365
1369EVENT2_EXPORT_SYMBOL
1370void *event_get_callback_arg(const struct event *ev);
1371
1376EVENT2_EXPORT_SYMBOL
1377int event_get_priority(const struct event *ev);
1378
1386EVENT2_EXPORT_SYMBOL
1388 struct event_base **base_out, evutil_socket_t *fd_out, short *events_out,
1389 event_callback_fn *callback_out, void **arg_out);
1390
1404EVENT2_EXPORT_SYMBOL
1406
1416EVENT2_EXPORT_SYMBOL
1417const char *event_get_version(void);
1418
1430EVENT2_EXPORT_SYMBOL
1432
1434#define LIBEVENT_VERSION EVENT__VERSION
1437#define LIBEVENT_VERSION_NUMBER EVENT__NUMERIC_VERSION
1438
1440#define EVENT_MAX_PRIORITIES 256
1468EVENT2_EXPORT_SYMBOL
1470
1478EVENT2_EXPORT_SYMBOL
1480
1489EVENT2_EXPORT_SYMBOL
1490int event_priority_set(struct event *, int);
1491
1511EVENT2_EXPORT_SYMBOL
1512const struct timeval *event_base_init_common_timeout(struct event_base *base,
1513 const struct timeval *duration);
1514
1515#if !defined(EVENT__DISABLE_MM_REPLACEMENT) || defined(EVENT_IN_DOXYGEN_)
1538EVENT2_EXPORT_SYMBOL
1540 void *(*malloc_fn)(size_t sz),
1541 void *(*realloc_fn)(void *ptr, size_t sz),
1542 void (*free_fn)(void *ptr));
1545#define EVENT_SET_MEM_FUNCTIONS_IMPLEMENTED
1546#endif
1547
1558EVENT2_EXPORT_SYMBOL
1559void event_base_dump_events(struct event_base *, FILE *);
1560
1561
1572EVENT2_EXPORT_SYMBOL
1573void event_base_active_by_fd(struct event_base *base, evutil_socket_t fd, short events);
1574
1584EVENT2_EXPORT_SYMBOL
1585void event_base_active_by_signal(struct event_base *base, int sig);
1586
1590typedef int (*event_base_foreach_event_cb)(const struct event_base *, const struct event *, void *);
1591
1617EVENT2_EXPORT_SYMBOL
1619
1620
1632EVENT2_EXPORT_SYMBOL
1634 struct timeval *tv);
1635
1648EVENT2_EXPORT_SYMBOL
1650
1665EVENT2_EXPORT_SYMBOL
1667
1668#ifdef __cplusplus
1669}
1670#endif
1671
1672#endif /* EVENT2_EVENT_H_INCLUDED_ */
EVENT2_EXPORT_SYMBOL void event_base_active_by_fd(struct event_base *base, evutil_socket_t fd, short events)
Activates all pending events for the given fd and event mask.
EVENT2_EXPORT_SYMBOL int event_base_got_break(struct event_base *)
Checks if the event loop was told to abort immediately by event_base_loopbreak().
EVENT2_EXPORT_SYMBOL int event_gettime_monotonic(struct event_base *base, struct timeval *tp)
Query the current monotonic time from a the timer for a struct event_base.
EVENT2_EXPORT_SYMBOL size_t event_get_struct_event_size(void)
Return the size of struct event that the Libevent library was compiled with.
EVENT2_EXPORT_SYMBOL int event_base_gettimeofday_cached(struct event_base *base, struct timeval *tv)
Sets 'tv' to the current time (as returned by gettimeofday()), looking at the cached value in 'base' ...
EVENT2_EXPORT_SYMBOL void event_debug_unassign(struct event *)
When debugging mode is enabled, informs Libevent that an event should no longer be considered as assi...
EVENT2_EXPORT_SYMBOL int event_base_got_exit(struct event_base *)
Checks if the event loop was told to exit by event_base_loopexit().
void(* event_log_cb)(int severity, const char *msg)
A callback function used to intercept Libevent's log messages.
Definition: event.h:721
EVENT2_EXPORT_SYMBOL void event_set_fatal_callback(event_fatal_cb cb)
Override Libevent's behavior in the event of a fatal internal error.
EVENT2_EXPORT_SYMBOL void event_free(struct event *)
Deallocate a struct event * returned by event_new().
EVENT2_EXPORT_SYMBOL void * event_self_cbarg(void)
Return a value used to specify that the event itself must be used as the callback argument.
EVENT2_EXPORT_SYMBOL struct event_base * event_base_new_with_config(const struct event_config *)
Initialize the event API.
EVENT2_EXPORT_SYMBOL struct event_config * event_config_new(void)
Allocates a new event configuration object.
EVENT2_EXPORT_SYMBOL void event_set_log_callback(event_log_cb cb)
Redirect Libevent's log messages.
EVENT2_EXPORT_SYMBOL void event_active(struct event *ev, int res, short ncalls)
Make an event active.
EVENT2_EXPORT_SYMBOL int event_base_loopbreak(struct event_base *)
Abort the active event_base_loop() immediately.
EVENT2_EXPORT_SYMBOL void event_enable_debug_mode(void)
Enable some relatively expensive debugging checks in Libevent that would normally be turned off.
EVENT2_EXPORT_SYMBOL void event_base_free_nofinalize(struct event_base *)
As event_base_free, but do not run finalizers.
EVENT2_EXPORT_SYMBOL int event_base_dispatch(struct event_base *)
Event dispatching loop.
EVENT2_EXPORT_SYMBOL int event_base_get_npriorities(struct event_base *eb)
Get the number of different event priorities.
EVENT2_EXPORT_SYMBOL int event_config_set_num_cpus_hint(struct event_config *cfg, int cpus)
Records a hint for the number of CPUs in the system.
EVENT2_EXPORT_SYMBOL void event_base_active_by_signal(struct event_base *base, int sig)
Activates all pending signals with a given signal number.
EVENT2_EXPORT_SYMBOL evutil_socket_t event_get_fd(const struct event *ev)
Get the socket or signal assigned to an event, or -1 if the event has no socket.
EVENT2_EXPORT_SYMBOL int event_del_noblock(struct event *ev)
As event_del(), but never blocks while the event's callback is running in another thread,...
EVENT2_EXPORT_SYMBOL ev_uint32_t event_get_version_number(void)
Return a numeric representation of Libevent's version.
EVENT2_EXPORT_SYMBOL int event_base_once(struct event_base *, evutil_socket_t, short, event_callback_fn, void *, const struct timeval *)
Schedule a one-time event.
int(* event_base_foreach_event_cb)(const struct event_base *, const struct event *, void *)
Callback for iterating events in an event base via event_base_foreach_event.
Definition: event.h:1590
EVENT2_EXPORT_SYMBOL void event_base_free(struct event_base *)
Deallocate all memory associated with an event_base, and free the base.
EVENT2_EXPORT_SYMBOL int event_remove_timer(struct event *ev)
Remove a timer from a pending event without removing the event itself.
EVENT2_EXPORT_SYMBOL void event_get_assignment(const struct event *event, struct event_base **base_out, evutil_socket_t *fd_out, short *events_out, event_callback_fn *callback_out, void **arg_out)
Extract all of arguments given to construct a given event.
EVENT2_EXPORT_SYMBOL event_callback_fn event_get_callback(const struct event *ev)
Return the callback assigned to an event.
void(* event_finalize_callback_fn)(struct event *, void *)
Callback type for event_finalize and event_free_finalize().
Definition: event.h:1146
EVENT2_EXPORT_SYMBOL short event_get_events(const struct event *ev)
Return the events (EV_READ, EV_WRITE, etc) assigned to an event.
EVENT2_EXPORT_SYMBOL int event_assign(struct event *, struct event_base *, evutil_socket_t, short, event_callback_fn, void *)
Prepare a new, already-allocated event structure to be added.
EVENT2_EXPORT_SYMBOL int event_base_loop(struct event_base *, int)
Wait for events to become active, and run their callbacks.
EVENT2_EXPORT_SYMBOL int event_priority_set(struct event *, int)
Assign a priority to an event.
EVENT2_EXPORT_SYMBOL int event_base_foreach_event(struct event_base *base, event_base_foreach_event_cb fn, void *arg)
Iterate over all added or active events events in an event loop, and invoke a given callback on each ...
EVENT2_EXPORT_SYMBOL int event_reinit(struct event_base *base)
Reinitialize the event base after a fork.
EVENT2_EXPORT_SYMBOL struct event_base * event_get_base(const struct event *ev)
Get the event_base associated with an event.
EVENT2_EXPORT_SYMBOL struct event * event_new(struct event_base *, evutil_socket_t, short, event_callback_fn, void *)
Allocate and assign a new event structure, ready to be added.
EVENT2_EXPORT_SYMBOL int event_del_block(struct event *ev)
As event_del(), but always blocks while the event's callback is running in another thread,...
EVENT2_EXPORT_SYMBOL int event_initialized(const struct event *ev)
Test if an event structure might be initialized.
EVENT2_EXPORT_SYMBOL int event_del(struct event *)
Remove an event from the set of monitored events.
EVENT2_EXPORT_SYMBOL struct event_base * event_base_new(void)
Create and return a new event_base to use with the rest of Libevent.
EVENT2_EXPORT_SYMBOL int event_pending(const struct event *ev, short events, struct timeval *tv)
Checks if a specific event is pending or scheduled.
EVENT2_EXPORT_SYMBOL int event_base_loopcontinue(struct event_base *)
Tell the active event_base_loop() to scan for new events immediately.
EVENT2_EXPORT_SYMBOL void event_set_mem_functions(void *(*malloc_fn)(size_t sz), void *(*realloc_fn)(void *ptr, size_t sz), void(*free_fn)(void *ptr))
Override the functions that Libevent uses for memory management.
EVENT2_EXPORT_SYMBOL struct event * event_base_get_running_event(struct event_base *base)
If called from within the callback for an event, returns that event.
EVENT2_EXPORT_SYMBOL void event_base_dump_events(struct event_base *, FILE *)
Writes a human-readable description of all inserted and/or active events to a provided stdio stream.
EVENT2_EXPORT_SYMBOL void libevent_global_shutdown(void)
Release up all globally-allocated resources allocated by Libevent.
EVENT2_EXPORT_SYMBOL int event_add(struct event *ev, const struct timeval *timeout)
Add an event to the set of pending events.
EVENT2_EXPORT_SYMBOL int event_base_set(struct event_base *, struct event *)
Associate a different event base with an event.
EVENT2_EXPORT_SYMBOL int event_config_require_features(struct event_config *cfg, int feature)
Enters a required event method feature that the application demands.
EVENT2_EXPORT_SYMBOL int event_base_loopexit(struct event_base *, const struct timeval *)
Exit the event loop after the specified time.
void(* event_fatal_cb)(int err)
A function to be called if Libevent encounters a fatal internal error.
Definition: event.h:740
EVENT2_EXPORT_SYMBOL int event_get_priority(const struct event *ev)
Return the priority of an event.
EVENT2_EXPORT_SYMBOL void event_enable_debug_logging(ev_uint32_t which)
Turn on debugging logs and have them sent to the default log handler.
EVENT2_EXPORT_SYMBOL void * event_get_callback_arg(const struct event *ev)
Return the callback argument assigned to an event.
EVENT2_EXPORT_SYMBOL int event_config_avoid_method(struct event_config *cfg, const char *method)
Enters an event method that should be avoided into the configuration.
EVENT2_EXPORT_SYMBOL int event_base_get_features(const struct event_base *base)
Return a bitmask of the features implemented by an event base.
event_base_config_flag
A flag passed to event_config_set_flag().
Definition: event.h:529
@ EVENT_BASE_FLAG_NO_CACHE_TIME
Instead of checking the current time every time the event loop is ready to run timeout callbacks,...
Definition: event.h:550
@ EVENT_BASE_FLAG_IGNORE_ENV
Do not check the EVENT_* environment variables when configuring an event_base
Definition: event.h:539
@ EVENT_BASE_FLAG_STARTUP_IOCP
Windows only: enable the IOCP dispatcher at startup.
Definition: event.h:546
@ EVENT_BASE_FLAG_NOLOCK
Do not allocate a lock for the event base, even if we have locking set up.
Definition: event.h:536
@ EVENT_BASE_FLAG_EPOLL_USE_CHANGELIST
If we are using the epoll backend, this flag says that it is safe to use Libevent's internal change-l...
Definition: event.h:566
@ EVENT_BASE_FLAG_PRECISE_TIMER
Ordinarily, Libevent implements its time and timeout code using the fastest monotonic timer that we h...
Definition: event.h:573
EVENT2_EXPORT_SYMBOL const char * event_base_get_method(const struct event_base *)
Get the kernel event notification mechanism used by Libevent.
EVENT2_EXPORT_SYMBOL const struct timeval * event_base_init_common_timeout(struct event_base *base, const struct timeval *duration)
Prepare an event_base to use a large number of timeouts with the same duration.
EVENT2_EXPORT_SYMBOL int event_base_get_max_events(struct event_base *, unsigned int, int)
Get the maximum number of events in a given event_base as specified in the flags.
EVENT2_EXPORT_SYMBOL void event_config_free(struct event_config *cfg)
Deallocates all memory associated with an event configuration object.
EVENT2_EXPORT_SYMBOL const char * event_get_version(void)
Get the Libevent version.
event_method_feature
A flag used to describe which features an event_base (must) provide.
Definition: event.h:501
@ EV_FEATURE_FDS
Require an event method that allows file descriptors as well as sockets.
Definition: event.h:511
@ EV_FEATURE_O1
Require an event method where having one event triggered among many is [approximately] an O(1) operat...
Definition: event.h:508
@ EV_FEATURE_ET
Require an event method that allows edge-triggered events with EV_ET.
Definition: event.h:503
@ EV_FEATURE_EARLY_CLOSE
Require an event method that allows you to use EV_CLOSED to detect connection close without the neces...
Definition: event.h:518
EVENT2_EXPORT_SYMBOL int event_base_update_cache_time(struct event_base *base)
Update cached_tv in the 'base' to the current time.
EVENT2_EXPORT_SYMBOL int event_config_set_flag(struct event_config *cfg, int flag)
Sets one or more flags to configure what parts of the eventual event_base will be initialized,...
EVENT2_EXPORT_SYMBOL int event_config_set_max_dispatch_interval(struct event_config *cfg, const struct timeval *max_interval, int max_callbacks, int min_priority)
Record an interval and/or a number of callbacks after which the event base should check for new event...
EVENT2_EXPORT_SYMBOL const char ** event_get_supported_methods(void)
Gets all event notification mechanisms supported by Libevent.
void(* event_callback_fn)(evutil_socket_t, short, void *)
A callback function for an event.
Definition: event.h:1014
EVENT2_EXPORT_SYMBOL int event_base_priority_init(struct event_base *, int)
Set the number of different event priorities.
EVENT2_EXPORT_SYMBOL int event_base_get_num_events(struct event_base *, unsigned int)
Gets the number of events in event_base, as specified in the flags.
Structure to hold information and state for a Libevent dispatch loop.
Definition: event.h:219
Configuration for an event_base.
Definition: event.h:297
Structure to represent a single event.
Definition: event.h:278
Common convenience functions for cross-platform portability and related socket manipulations.
#define evutil_socket_t
A type wide enough to hold the output of "socket()" or "accept()".
Definition: util.h:310