diff options
author | Nathan Fritz <fritzy@netflint.net> | 2009-08-31 22:46:31 +0000 |
---|---|---|
committer | Nathan Fritz <fritzy@netflint.net> | 2009-08-31 22:46:31 +0000 |
commit | 05c9ea5c1d953637343c9fad07267e7f89b20561 (patch) | |
tree | d4b0d432870bb195a4f14ec07ce889fcd080a357 /sleekxmpp/xmlstream/handler/callback.py | |
parent | 00d46ee2b0fe4c0d76525d284dcc7ed588e701af (diff) | |
download | slixmpp-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.py | 26 |
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 |