--- a/qmsk/net/lib/event2/event.pyx Mon Aug 31 22:17:54 2009 +0300
+++ b/qmsk/net/lib/event2/event.pyx Tue Sep 01 00:04:26 2009 +0300
@@ -134,3 +134,20 @@
lib.event_free(self.ev)
+class CallbackEvent (event) :
+ """
+ Extends the event type to take a callback and additional arguments to invoke from the __call__ method.
+ """
+
+ def __init__ (self, event_base base, lib.evutil_socket_t fd, short events, object callback, *args, **kwargs) :
+ # parent
+ super(CallbackEvent, self).__init__(base, fd, events)
+
+ # store
+ self.callback = callback
+ self.args = args
+ self.kwargs = kwargs
+
+ def __call__ (self, lib.evutil_socket_t fd, short mask) :
+ self.callback(fd, mask, *self.args, **self.kwargs)
+