#ifndef WEBSERV_HPP # define WEBSERV_HPP # include # include # include # include # include # include // close # include // exit # include // cout, cin # include // errno # include // perror # include // memset # include // socket, accept, listen, send, recv, bind, connect, setsockopt, getsockname # include // sockaddr_in # include // inet_ntoa, inet_addr, htonl, htons, ntohl, ntohs # include // poll # include // fcntl # include // ioctl # define TRUE 1 # define FALSE 0 class Webserv { public: Webserv(); // Webserv(Webserv const &src); ~Webserv(); // Webserv &operator=(Webserv const &rhs); void bind(in_port_t port); void listen(unsigned int max_connections); void start(int timeout, int bufsize); private: int _socket_fd; std::map _request; std::map _response; void _add_fd(int sd, short event); void _accept_connection(); void _connect_socket(int it, int bufsize); void _close_fd(int it); std::vector _fds; std::vector::iterator _it; std::vector::iterator _it_end; }; #endif