*/
#ifndef _IOHandler_h
#define _IOHandler_h
+#include "../config.h" /* configure script autogenerated */
#include <stddef.h>
#include <sys/time.h> /* struct timeval */
enum IOType type;
enum IOStatus state;
struct timeval timeout;
+ int constant_timeout;
iohandler_callback *callback;
struct IOBuffer readbuf;
struct IOBuffer writebuf;
#define IOHANDLER_CONNECT_IPV4 0x01
#define IOHANDLER_CONNECT_IPV6 0x02 /* overrides IOHANDLER_CONNECT_IPV4 */
+ #define IOHANDLER_SETTING_HIGH_PRECISION_TIMER 0x01
+
+ void iohandler_set(int setting, int value);
+
struct IODescriptor *iohandler_add(int sockfd, enum IOType type, struct timeval *timeout, iohandler_callback *callback);
struct IODescriptor *iohandler_timer(struct timeval timeout, iohandler_callback *callback);
+ struct IODescriptor *iohandler_constant_timer(int msec, iohandler_callback *callback);
struct IODescriptor *iohandler_connect(const char *hostname, unsigned int port, int ssl, const char *bind, iohandler_callback *callback);
struct IODescriptor *iohandler_connect_flags(const char *hostname, unsigned int port, int ssl, const char *bindhost, iohandler_callback *callback, int flags);
struct IODescriptor *iohandler_listen(const char *hostname, unsigned int port, iohandler_callback *callback);