X-Git-Url: https://git.llucax.com/software/libev.git/blobdiff_plain/d68da9db1b34dbd6f29a0576bc897a9c49e4d7ed..cf490d847d65f13ede217101e89d0bf7e20621d0:/event.h diff --git a/event.h b/event.h index 48c34e6..aee8c38 100644 --- a/event.h +++ b/event.h @@ -28,17 +28,28 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef _EVENT_H_ -#define _EVENT_H_ +#ifndef EVENT_H__ +#define EVENT_H__ -#ifndef EV_EMBED -# include "ev.h" +#ifdef EV_H +# include EV_H +#else +# include #endif #ifdef __cplusplus extern "C" { #endif +struct event_base; + +#define EVLIST_TIMEOUT 0x01 +#define EVLIST_INSERTED 0x02 +#define EVLIST_SIGNAL 0x04 +#define EVLIST_ACTIVE 0x08 +#define EVLIST_INTERNAL 0x10 +#define EVLIST_INIT 0x80 + struct event { /* libev watchers we map onto */ @@ -55,9 +66,8 @@ struct event int ev_fd; int ev_pri; int ev_res; + int ev_flags; short ev_events; - - char initialised; /* flag to work around some idiosynchrasies in the API */ }; #define EV_PERSIST 0x10 @@ -65,7 +75,7 @@ struct event #define EVENT_SIGNAL(ev) ((int) (ev)->ev_fd) #define EVENT_FD(ev) ((int) (ev)->ev_fd) -#define event_initialized(ev) ((ev)->initialised) +#define event_initialized(ev) ((ev)->ev_flags & EVLIST_INIT) #define evtimer_add(ev,tv) event_add (ev, tv) #define evtimer_set(ev,cb,data) event_set (ev, -1, 0, cb, data) @@ -108,14 +118,13 @@ int event_once (int fd, short events, void (*cb)(int, short, void *), void *arg, int event_add (struct event *ev, struct timeval *tv); int event_del (struct event *ev); +void event_active (struct event *ev, int res, short ncalls); /* ncalls is being ignored */ int event_pending (struct event *ev, short, struct timeval *tv); int event_priority_init (int npri); int event_priority_set (struct event *ev, int pri); -struct event_base; - int event_base_set (struct event_base *base, struct event *ev); int event_base_loop (struct event_base *base, int); int event_base_loopexit (struct event_base *base, struct timeval *tv); @@ -123,8 +132,8 @@ int event_base_dispatch (struct event_base *base); int event_base_once (struct event_base *base, int fd, short events, void (*cb)(int, short, void *), void *arg, struct timeval *tv); int event_base_priority_init (struct event_base *base, int fd); -#ifndef EV_EMBED -# include "event_compat.h" +#ifndef EV_STANDALONE +# include #endif #ifdef __cplusplus