qmsk/net/lib/event2/event.pyx
changeset 46 64b4ffb44754
parent 39 075eaafa80a7
child 47 b45a6648931c
--- 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)
+