#include /* for select system call and related */ #include /* for memset and stuff */ #include /* for getopt */ #include "class.h" #include "server.h" #include "socket.h" #include "logger.h" #include "interface/class.h" static void ctor(void * _this, va_list * params) { Server this = _this; in_port_t port; unsigned int backlog; this->logger = va_arg(* params, Logger); this->reader = va_arg(* params, void*); port = va_arg(* params, int); backlog = va_arg(* params, unsigned int); this->sock = new(Sock, this->logger, port); socketListen(this->sock, backlog); (this->fds)[0].fd = this->sock->handle; (this->fds)[0].events = POLLIN; this->nfds = 1; } static void dtor(void * _this) { Server this = _this; int i; printf("nfds: %d\n", this->nfds); for (i=1; infds; i++) { /* * @TODO do some finalization...buffer handling...etc. */ delete(&(this->conns[(this->fds)[i].fd]).sock); delete(&(this->conns[(this->fds)[i].fd]).reader); } delete(&this->sock); } INIT_IFACE(Class, ctor, dtor, NULL); CREATE_CLASS(Server, NULL, IFACE(Class)); // vim: set ts=4 sw=4: