qmsk/net/lib/event2/event.pxd
author Tero Marttila <terom@fixme.fi>
Mon, 31 Aug 2009 21:36:15 +0300
changeset 41 02f7c0539843
parent 39 075eaafa80a7
child 50 da394bb715af
permissions -rw-r--r--
* fix timeout=0.0
* fix loop() return value for case ret == 0, ret > 1
* change event_base to raise EventCallErrors (to be renamed...?)
* move some event docstrings to __call__
"""
    Core `struct event` type.
"""

cimport qmsk.net.lib.event2.lib as lib

# internal helper method for handling timeout arguments
cdef lib.timeval* build_timeout (lib.timeval *tv, object timeout = ?) except? <lib.timeval *>-1

cdef class event :
    """
        Create a new event object with the given parameters.
        
        An event tracks a single OS file descriptor with some set of events (EV_READ/EV_WRITE) and an optional timeout.
        
        An event is associated with some event_base, which handles the event mechanism.
        
        Arguments:
            base        - event_base to use for this event
            fd          - OS file descriptor to watch, or -1
            events      - bitmask of EV_* flags that represents the events to wait for

        When the event fires, it will "call" this event object. See __call__().
    """

    # the underlying event object
    cdef lib.event *ev