qmsk/net/lib/event2/event.pxd
author Tero Marttila <terom@fixme.fi>
Fri, 28 Aug 2009 21:58:47 +0300
changeset 39 075eaafa80a7
child 41 02f7c0539843
permissions -rw-r--r--
initial lib.event2 code
39
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    Core `struct event` type.
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
cimport qmsk.net.lib.event2.lib as lib
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
# internal helper method for handling timeout arguments
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
cdef lib.timeval* build_timeout (lib.timeval *tv, object timeout = ?) except? <lib.timeval *>-1
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
cdef class event :
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
    """
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
        Create a new event object with the given parameters.
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
        
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
        An event tracks a single OS file descriptor with some set of events (EV_READ/EV_WRITE) and an optional timeout.
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
        
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
        An event is associated with some event_base, which handles the event mechanism.
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
        
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
        Arguments:
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
            base        - event_base to use for this event
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
            fd          - OS file descriptor to watch, or -1
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
            events      - bitmask of EV_* flags that represents the events to wait for
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
        When the event fires, it will "call" this event object, so __call__ gets the following parameters:
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
            fd          - OS file descriptor the event occured on, or -1
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
            mask        - bitmask of EV_* flags that represents the triggered event
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
    
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
        The default implementation of __call__ does nothing. The method's return value will be ignored, and should be
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
        None. Any errors raised by the callback will be printed out as warning messages, and ignored.
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
    """
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
    # the underlying event object
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
    cdef lib.event *ev
075eaafa80a7 initial lib.event2 code
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33