ioloop.h revision 74308421351d98c02c971aef32277d9712babb85
2a6af811ea3de3cf9e2f15e446674dd21b0705f3Timo Sirainen /* internal */
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainentypedef void timeout_callback_t(void *context);
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen/* Time when the I/O loop started calling handlers.
2d49f150b4bce6f2f59a84e268e4777901c3e42cTimo Sirainen Can be used instead of time(NULL). */
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen/* I/O listeners - you can create different handlers for IO_READ and IO_WRITE,
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen but make sure you don't create multiple handlers of same type, it's not
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen checked and removing one will stop the other from working as well.
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenstruct io *io_add(int fd, enum io_condition condition,
19e8adccba16ff419f5675b1575358c2956dce83Timo Sirainenstruct io *io_add_notify(const char *path, io_callback_t *callback,
eddd9bf1a1369aea4a2715f6be1137da6d17d293Timo Sirainen/* Remove I/O handler, and set io pointer to NULL. */
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen/* Timeout handlers */
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenstruct timeout *timeout_add(unsigned int msecs, timeout_callback_t *callback,
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen/* Remove timeout handler, and set timeout pointer to NULL. */
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenvoid io_loop_stop(struct ioloop *ioloop); /* safe to run in signal handler */
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenbool io_loop_is_running(struct ioloop *ioloop);
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainen/* call these if you wish to run the iteration only once */
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenvoid io_loop_set_running(struct ioloop *ioloop);
4bc96ba6f1d67a90a75fa131bcd2cd508ea5a05aTimo Sirainenvoid io_loop_handler_run(struct ioloop *ioloop);
2a6af811ea3de3cf9e2f15e446674dd21b0705f3Timo Sirainen/* Destroy I/O loop and set ioloop pointer to NULL. */