qmsk/net/lib/event2/event.pyx
changeset 46 64b4ffb44754
parent 39 075eaafa80a7
child 47 b45a6648931c
equal deleted inserted replaced
44:01ac7755b15a 46:64b4ffb44754
   132             XXX: what happens if event_base's __dealloc__ is triggered, but there are still event objects alive?
   132             XXX: what happens if event_base's __dealloc__ is triggered, but there are still event objects alive?
   133         """
   133         """
   134 
   134 
   135         lib.event_free(self.ev)
   135         lib.event_free(self.ev)
   136 
   136 
       
   137 class CallbackEvent (event) :
       
   138     """
       
   139         Extends the event type to take a callback and additional arguments to invoke from the __call__ method.
       
   140     """
       
   141 
       
   142     def __init__ (self, event_base base, lib.evutil_socket_t fd, short events, object callback, *args, **kwargs) :
       
   143         # parent
       
   144         super(CallbackEvent, self).__init__(base, fd, events)
       
   145 
       
   146         # store
       
   147         self.callback = callback
       
   148         self.args = args
       
   149         self.kwargs = kwargs
       
   150 
       
   151     def __call__ (self, lib.evutil_socket_t fd, short mask) :
       
   152         self.callback(fd, mask, *self.args, **self.kwargs)
       
   153