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

Epoll abstraction. More...

#include <senf/Scheduler/Poller.hh>

List of all members.


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:
Value  Event type

Definition at line 51 of file Poller.hh.


Classes

struct   GetPollResult

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.
void  remove (int fd)
  Remove file descriptor.
range  wait ()
  Wait for one event.
void  timeout (int t)
  Set event timeout to t milliseconds.
int  timeout () const
  Current event timeout.

Structors and default members

  Poller ()
  ~Poller ()

Member Typedef Documentation

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

Definition at line 67 of file Poller.hh.

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

Definition at line 68 of file Poller.hh.

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

Definition at line 66 of file Poller.hh.


Member Enumeration Documentation

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

Definition at line 70 of file Poller.hh.


Constructor & Destructor Documentation

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

Definition at line 35 of file Poller.cti.

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

Definition at line 44 of file Poller.cti.


Member Function Documentation

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

Remove file descriptor.

Definition at line 50 of file Poller.ct.

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

Definition at line 36 of file Poller.ct.

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

Current event timeout.

Definition at line 56 of file Poller.cti.

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

Set event timeout to t milliseconds.

Definition at line 50 of file Poller.cti.

template<class Value >
senf::scheduler::detail::Poller< 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

Definition at line 64 of file Poller.ct.


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