Epoll abstraction. More...
#include <senf/Scheduler/Poller.hh>

Public Types | |
| enum | Events { EV_READ = EPOLLIN, EV_PRIO = EPOLLPRI, EV_WRITE = EPOLLOUT, EV_HUP = EPOLLHUP, EV_ERR = EPOLLERR } |
| typedef Value | value_type |
| typedef boost::transform_iterator< GetPollResult, epoll_event * > | iterator |
| typedef boost::iterator_range< iterator > | range |
Public Member Functions | |
| bool | set (int fd, int events, Value *data) |
| Set file descriptor event data and mask. More... | |
| void | remove (int fd) |
| Remove file descriptor. More... | |
| range | wait () |
| Wait for one event. More... | |
| void | timeout (int t) |
| Set event timeout to t milliseconds. More... | |
| int | timeout () const |
| Current event timeout. More... | |
Structors and default members | |
| Poller () | |
| ~Poller () | |
Epoll abstraction.
This class provides a more convenient interface to the epoll() API. File descriptors are registered with pointers to a parameterized event type. After waiting for an event, the Poller allows to iterate over the event instances for all posted events.
| Value | Event type |
| typedef boost::transform_iterator<GetPollResult, epoll_event*> senf::scheduler::detail::Poller< Value >::iterator |
| typedef boost::iterator_range<iterator> senf::scheduler::detail::Poller< Value >::range |
| typedef Value senf::scheduler::detail::Poller< Value >::value_type |
| enum senf::scheduler::detail::Poller::Events |
| senf::scheduler::detail::Poller< Value >::Poller | ( | ) |
| senf::scheduler::detail::Poller< Value >::~Poller | ( | ) |
| void senf::scheduler::detail::Poller< Value >::remove | ( | int | fd | ) |
Remove file descriptor.
| bool senf::scheduler::detail::Poller< Value >::set | ( | int | fd, |
| int | events, | ||
| Value * | data | ||
| ) |
Set file descriptor event data and mask.
The Poller does not own data. The value is owned by some external entity (the dispatcher to be more precise).
| void senf::scheduler::detail::Poller< Value >::timeout | ( | int | t | ) |
Set event timeout to t milliseconds.
| int senf::scheduler::detail::Poller< Value >::timeout | ( | ) | const |
Current event timeout.
| range senf::scheduler::detail::Poller< Value >::wait | ( | ) |
Wait for one event.