senf::scheduler::detail::Poller< Value > Class Template Reference

Epoll abstraction. More...

#include <senf/Scheduler/Poller.hh>

Inheritance diagram for senf::scheduler::detail::Poller< Value >:

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< iteratorrange
 

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 ()
 

Detailed Description

template<class Value>
class senf::scheduler::detail::Poller< Value >

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.

Template Parameters
ValueEvent type

Definition at line 42 of file Poller.hh.

Member Typedef Documentation

◆ iterator

template<class Value>
typedef boost::transform_iterator<GetPollResult, epoll_event*> senf::scheduler::detail::Poller< Value >::iterator

Definition at line 58 of file Poller.hh.

◆ range

template<class Value>
typedef boost::iterator_range<iterator> senf::scheduler::detail::Poller< Value >::range

Definition at line 59 of file Poller.hh.

◆ value_type

template<class Value>
typedef Value senf::scheduler::detail::Poller< Value >::value_type

Definition at line 57 of file Poller.hh.

Member Enumeration Documentation

◆ Events

template<class Value>
enum senf::scheduler::detail::Poller::Events
Enumerator
EV_READ 
EV_PRIO 
EV_WRITE 
EV_HUP 
EV_ERR 

Definition at line 61 of file Poller.hh.

Constructor & Destructor Documentation

◆ Poller()

template<class Value>
senf::scheduler::detail::Poller< Value >::Poller ( )

◆ ~Poller()

template<class Value>
senf::scheduler::detail::Poller< Value >::~Poller ( )

Member Function Documentation

◆ remove()

template<class Value>
void senf::scheduler::detail::Poller< Value >::remove ( int  fd)

Remove file descriptor.

◆ set()

template<class Value>
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).

◆ timeout() [1/2]

template<class Value>
void senf::scheduler::detail::Poller< Value >::timeout ( int  t)

Set event timeout to t milliseconds.

◆ timeout() [2/2]

template<class Value>
int senf::scheduler::detail::Poller< Value >::timeout ( ) const

Current event timeout.

◆ wait()

template<class Value>
range senf::scheduler::detail::Poller< Value >::wait ( )

Wait for one event.

Returns
a range of iterators which iterate over the data values registered with the event

The documentation for this class was generated from the following file: