class documentation

Schedule reads and writes based on the passage of time, rather than notification.

This is useful for supporting polling filesystem files, which epoll(7) does not support.

The implementation uses _PollLikeMixin, which is a bit hacky, but re-implementing and testing the relevant code yet again is unappealing.

Method __init__ Undocumented
Method addReader Add a FileDescriptor for notification of data available to read.
Method addWriter Add a FileDescriptor for notification of data available to write.
Method getReaders Return a list of the readers.
Method getWriters Return a list of the writers.
Method isReading Checks if the file descriptor is currently being observed for read readiness.
Method isWriting Checks if the file descriptor is currently being observed for write readiness.
Method iterate Call doRead and doWrite on all readers and writers respectively.
Method removeAll Remove all readers and writers.
Method removeReader Remove a FileDescriptor from notification of data available to read.
Method removeWriter Remove a FileDescriptor from notification of data available to write.
Method _checkLoop Start or stop a LoopingCall based on whether there are readers and writers.
Constant _POLL_DISCONNECTED Undocumented
Constant _POLL_IN Undocumented
Constant _POLL_OUT Undocumented
Instance Variable _loop A LoopingCall that drives the polling, or None.
Instance Variable _reactor The EPollReactor that is using this instance.
Instance Variable _readers A set of FileDescriptor objects that should be read from.
Instance Variable _writers A set of FileDescriptor objects that should be written to.

Inherited from _PollLikeMixin:

Method _doReadOrWrite fd is available for read or write, do the work and raise errors if necessary.

Inherited from _DisconnectSelectableMixin (via _PollLikeMixin):

Method _disconnectSelectable Utility function for disconnecting a selectable.
def __init__(self, reactor): (source)

Undocumented

def addReader(self, reader): (source)

Add a FileDescriptor for notification of data available to read.

def addWriter(self, writer): (source)

Add a FileDescriptor for notification of data available to write.

def getReaders(self): (source)

Return a list of the readers.

def getWriters(self): (source)

Return a list of the writers.

def isReading(self, fd): (source)

Checks if the file descriptor is currently being observed for read readiness.

Parameters
fd:twisted.internet.abstract.FileDescriptorThe file descriptor being checked.
Returns
boolTrue if the file descriptor is being observed for read readiness, False otherwise.
def isWriting(self, fd): (source)

Checks if the file descriptor is currently being observed for write readiness.

Parameters
fd:twisted.internet.abstract.FileDescriptorThe file descriptor being checked.
Returns
boolTrue if the file descriptor is being observed for write readiness, False otherwise.
def iterate(self): (source)

Call doRead and doWrite on all readers and writers respectively.

def removeAll(self): (source)

Remove all readers and writers.

def removeReader(self, reader): (source)

Remove a FileDescriptor from notification of data available to read.

def removeWriter(self, writer): (source)

Remove a FileDescriptor from notification of data available to write.

def _checkLoop(self): (source)

Start or stop a LoopingCall based on whether there are readers and writers.

_POLL_DISCONNECTED: int = (source)

Undocumented

Value
1
_POLL_IN: int = (source)

Undocumented

Value
2
_POLL_OUT: int = (source)

Undocumented

Value
4

A LoopingCall that drives the polling, or None.

_reactor = (source)

The EPollReactor that is using this instance.

_readers: set = (source)

A set of FileDescriptor objects that should be read from.

_writers: set = (source)

A set of FileDescriptor objects that should be written to.