summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/handler/callback.py
diff options
context:
space:
mode:
authorNathan Fritz <fritzy@netflint.net>2009-06-03 22:56:51 +0000
committerNathan Fritz <fritzy@netflint.net>2009-06-03 22:56:51 +0000
commit96b103b27599e5af247c1e3b95d62c80c1e32a63 (patch)
tree0527b1607b16adb020759ee9a944e1b22e3e0e6b /sleekxmpp/xmlstream/handler/callback.py
downloadslixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.tar.gz
slixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.tar.bz2
slixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.tar.xz
slixmpp-96b103b27599e5af247c1e3b95d62c80c1e32a63.zip
moved seesmic branch to trunk
Diffstat (limited to 'sleekxmpp/xmlstream/handler/callback.py')
-rw-r--r--sleekxmpp/xmlstream/handler/callback.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/sleekxmpp/xmlstream/handler/callback.py b/sleekxmpp/xmlstream/handler/callback.py
new file mode 100644
index 00000000..e3ef8ccc
--- /dev/null
+++ b/sleekxmpp/xmlstream/handler/callback.py
@@ -0,0 +1,20 @@
+from . import base
+import threading
+
+class Callback(base.BaseHandler):
+
+ def __init__(self, name, matcher, pointer, thread=False, once=False):
+ base.BaseHandler.__init__(self, name, matcher)
+ self._pointer = pointer
+ self._thread = thread
+ self._once = once
+
+ def run(self, payload):
+ base.BaseHandler.run(self, payload)
+ if self._thread:
+ x = threading.Thread(name="Callback_%s" % self.name, target=self._pointer, args=(payload,))
+ x.start()
+ else:
+ self._pointer(payload)
+ if self._once:
+ self._destroy = True