summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/handler/callback.py
diff options
context:
space:
mode:
authorNathan Fritz <fritzy@netflint.net>2009-08-31 22:46:31 +0000
committerNathan Fritz <fritzy@netflint.net>2009-08-31 22:46:31 +0000
commit05c9ea5c1d953637343c9fad07267e7f89b20561 (patch)
treed4b0d432870bb195a4f14ec07ce889fcd080a357 /sleekxmpp/xmlstream/handler/callback.py
parent00d46ee2b0fe4c0d76525d284dcc7ed588e701af (diff)
downloadslixmpp-05c9ea5c1d953637343c9fad07267e7f89b20561.tar.gz
slixmpp-05c9ea5c1d953637343c9fad07267e7f89b20561.tar.bz2
slixmpp-05c9ea5c1d953637343c9fad07267e7f89b20561.tar.xz
slixmpp-05c9ea5c1d953637343c9fad07267e7f89b20561.zip
* converted sleekxmpp to Python 3.x
* sleekxmpp no longer spawns threads for callback handlers -- there are now two threads: one for handlers and one for reading. callback handlers can get results from the read queue directly with the "wait" handler which is used in .send() for the reply catching argument.
Diffstat (limited to 'sleekxmpp/xmlstream/handler/callback.py')
-rw-r--r--sleekxmpp/xmlstream/handler/callback.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/sleekxmpp/xmlstream/handler/callback.py b/sleekxmpp/xmlstream/handler/callback.py
index e3ef8ccc..c618b718 100644
--- a/sleekxmpp/xmlstream/handler/callback.py
+++ b/sleekxmpp/xmlstream/handler/callback.py
@@ -1,20 +1,26 @@
from . import base
-import threading
class Callback(base.BaseHandler):
- def __init__(self, name, matcher, pointer, thread=False, once=False):
+ def __init__(self, name, matcher, pointer, thread=False, once=False, instream=False):
base.BaseHandler.__init__(self, name, matcher)
self._pointer = pointer
self._thread = thread
self._once = once
+ self._instream = instream
+
+ def prerun(self, payload):
+ base.BaseHandler.prerun(self, payload)
+ if self._instream:
+ self.run(payload, True)
- 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:
+ def run(self, payload, instream=False):
+ if not self._instream or instream:
+ 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
+ if self._once:
+ self._destroy = True