#include "threaddata.h" ThreadData::ThreadData(int threadnr) : threadnr(threadnr) { epollfd = check(epoll_create(999)); event_fd = eventfd(0, EFD_NONBLOCK); } void ThreadData::giveClient(Client_p client) { int fd = client->getFd(); struct epoll_event ev; memset(&ev, 0, sizeof (struct epoll_event)); ev.data.fd = fd; ev.events = EPOLLIN; check(epoll_ctl(epollfd, EPOLL_CTL_ADD, fd, &ev)); clients_by_fd[fd] = client; } Client_p ThreadData::getClient(int fd) { return this->clients_by_fd[fd]; } void ThreadData::removeClient(Client_p client) { clients_by_fd.erase(client->getFd()); }