modified IOMultiplexer (added epoll & kevent support)
[TransparentIRC.git] / src / IOHandler.h
index 3e9e7053981ed8d045cfb459926c285a383bce73..76fb2cf82c89dd492352ea622a12f416e8065785 100644 (file)
@@ -57,7 +57,6 @@ struct IOBuffer {
 
 struct IODescriptor {
     int fd;
-    FILE *file;
     enum IOType type;
     enum IOStatus state;
     struct timeval timeout;
@@ -81,8 +80,7 @@ struct IOEvent {
     } data;
 };
 
-struct IODescriptor *iohandler_add(int sockfd, enum IOType type, iohandler_callback *callback);
-struct IODescriptor *iohandler_file(FILE *file, iohandler_callback *callback);
+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_connect(const char *hostname, unsigned int port, int ssl, const char *bind, iohandler_callback *callback);
 struct IODescriptor *iohandler_listen(const char *hostname, unsigned int port, int ssl, iohandler_callback *callback);
@@ -91,6 +89,7 @@ void iohandler_send(struct IODescriptor *iofd, const char *data, size_t datalen)
 void iohandler_printf(struct IODescriptor *iofd, const char *text, ...);
 void iohandler_close(struct IODescriptor *iofd);
 void iohandler_update(struct IODescriptor *iofd);
+void iohandler_set_timeout(struct IODescriptor *iofd, struct timeval *timeout);
 
 void iohandler_poll();