Open Lighting Architecture
0.9.2
|
An implementation of PollerInterface that uses kevent / kqueue.
kevent is more efficient than select() but only BSD-style systems support it.
Public Member Functions | |
KQueuePoller (ExportMap *export_map, Clock *clock) | |
Create a new KQueuePoller. | |
bool | AddReadDescriptor (class ReadFileDescriptor *descriptor) |
Register a ReadFileDescriptor for read events. | |
bool | AddReadDescriptor (class ConnectedDescriptor *descriptor, bool delete_on_close) |
Register a ConnectedDescriptor for read events. | |
bool | RemoveReadDescriptor (class ReadFileDescriptor *descriptor) |
Unregister a ReadFileDescriptor for read events. | |
bool | RemoveReadDescriptor (class ConnectedDescriptor *descriptor) |
Unregister a ConnectedDescriptor for read events. | |
bool | AddWriteDescriptor (class WriteFileDescriptor *descriptor) |
Register a WriteFileDescriptor to receive ready-to-write events. | |
bool | RemoveWriteDescriptor (class WriteFileDescriptor *descriptor) |
Unregister a WriteFileDescriptor for write events. | |
const TimeStamp * | WakeUpTime () const |
bool | Poll (TimeoutManager *timeout_manager, const TimeInterval &poll_interval) |
Poll the Descriptors for events and execute any callbacks. | |
Public Member Functions inherited from ola::io::PollerInterface | |
virtual | ~PollerInterface () |
Destructor. |
Additional Inherited Members | |
Static Public Attributes inherited from ola::io::PollerInterface | |
static const char | K_READ_DESCRIPTOR_VAR [] = "ss-read-descriptors" |
The number of descriptors registered for read events. | |
static const char | K_WRITE_DESCRIPTOR_VAR [] = "ss-write-descriptor" |
The number of descriptors registered for write events. | |
static const char | K_CONNECTED_DESCRIPTORS_VAR [] = "ss-connected-descriptors" |
The number of connected descriptors registered for read events. | |
Static Protected Attributes inherited from ola::io::PollerInterface | |
static const char | K_LOOP_TIME [] = "ss-loop-time" |
The time spent in the event loop. | |
static const char | K_LOOP_COUNT [] = "ss-loop-count" |
The number of iterations through the event loop. |
Create a new KQueuePoller.
|
virtual |
Register a ReadFileDescriptor for read events.
descriptor | the ReadFileDescriptor to register. The OnData() method will be called when there is data available for reading. |
Implements ola::io::PollerInterface.
|
virtual |
Register a ConnectedDescriptor for read events.
descriptor | the ConnectedDescriptor to register. The OnData() method will be called when there is data available for reading. Additionally, OnClose() will be called if the other end closes the connection. |
delete_on_close | controls whether the descriptor is deleted when it's closed. |
Implements ola::io::PollerInterface.
|
virtual |
Register a WriteFileDescriptor to receive ready-to-write events.
descriptor | the WriteFileDescriptor to register. The PerformWrite() method will be called when the descriptor is ready for writing. |
Implements ola::io::PollerInterface.
|
virtual |
Poll the Descriptors for events and execute any callbacks.
timeout_manager | the TimeoutManager to use for timer events. |
poll_interval | the maximum time to block for. |
Implements ola::io::PollerInterface.
|
virtual |
Unregister a ReadFileDescriptor for read events.
descriptor | the ReadFileDescriptor to unregister. |
Implements ola::io::PollerInterface.
|
virtual |
Unregister a ConnectedDescriptor for read events.
descriptor | the ConnectedDescriptor to unregister. |
Implements ola::io::PollerInterface.
|
virtual |
Unregister a WriteFileDescriptor for write events.
descriptor | the WriteFileDescriptor to unregister. |
Implements ola::io::PollerInterface.