[Twisted-Python] Triggering callbacks on raw file descriptors

Jean-Paul Calderone exarkun at divmod.com
Sat Jan 7 14:04:09 EST 2006

On Sat, 07 Jan 2006 13:46:48 -0500, Itamar Shtull-Trauring <itamar at itamarst.org> wrote:
>On Sat, 2006-01-07 at 10:14 -0800, Brian Granger wrote:
>> Digging around the source code, it looks like the FileDescriptor that
>> Port inherits from would be a good starting point.  But as I
>> understand it FileDescriptor is abstract.  Is it as simple as
>> inheriting from FileDescriptor and providing the fd that I get from
>> Bonjour?  How do I specify callbacks to trigger when the fd is
>> readable/writable?
>You just need a fileno() method that returns the file descriptor you are
>wrapping, and doRead and doWrite methods that they do the appropriate
>thing (they will get called by the reactor on those events.)

Given the simplicity of the interface, it hardly even makes sense 
to use FileDescriptor.  What you want can be achieved using:

class BonjourThingo(object):
    def __init__(self, fd, doRead, doWrite):
        self.fileno = lambda: fd
        self.doRead = doRead
        self.doWrite = doWrite

And then adding it as a reader or a writer to a reactor which 
supports IReactorFDSet.


More information about the Twisted-Python mailing list