From 4027ef8c00ee2a5b808c11c7f3ae50cda117d92a Mon Sep 17 00:00:00 2001 From: Florent Le Coz Date: Sat, 2 Nov 2013 16:04:10 +0100 Subject: Basic IRC message parsing/sending --- src/network/poller.cpp | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) (limited to 'src/network/poller.cpp') diff --git a/src/network/poller.cpp b/src/network/poller.cpp index c7d9eb2..7ab8bc3 100644 --- a/src/network/poller.cpp +++ b/src/network/poller.cpp @@ -59,12 +59,39 @@ void Poller::remove_socket_handler(const socket_t socket) } } +void Poller::watch_send_events(const SocketHandler* const socket_handler) +{ +#if POLLER == POLL + for (size_t i = 0; i <= this->nfds; ++i) + { + if (this->fds[i].fd == socket_handler->get_socket()) + { + this->fds[i].events = POLLIN|POLLOUT; + return; + } + } +#endif + throw std::runtime_error("Cannot watch a non-registered socket for send events"); +} + +void Poller::stop_watching_send_events(const SocketHandler* const socket_handler) +{ +#if POLLER == POLL + for (size_t i = 0; i <= this->nfds; ++i) + { + if (this->fds[i].fd == socket_handler->get_socket()) + { + this->fds[i].events = POLLIN; + return; + } + } +#endif + throw std::runtime_error("Cannot watch a non-registered socket for send events"); +} + void Poller::poll() { #if POLLER == POLL - std::cout << "Polling:" << std::endl; - for (size_t i = 0; i < this->nfds; ++i) - std::cout << "pollfd[" << i << "]: (" << this->fds[i].fd << ")" << std::endl; int res = ::poll(this->fds, this->nfds, -1); if (res < 0) { @@ -93,4 +120,3 @@ void Poller::poll() } #endif } - -- cgit v1.2.3