2010-03-26 21:32:16 +00:00
|
|
|
"""
|
|
|
|
SleekXMPP: The Sleek XMPP Library
|
|
|
|
Copyright (C) 2010 Nathanael C. Fritz
|
|
|
|
This file is part of SleekXMPP.
|
|
|
|
|
2010-07-20 15:19:49 +00:00
|
|
|
See the file LICENSE for copying permission.
|
2010-03-26 21:32:16 +00:00
|
|
|
"""
|
2009-06-03 22:56:51 +00:00
|
|
|
from . import base
|
2010-01-08 06:03:02 +00:00
|
|
|
try:
|
|
|
|
import queue
|
|
|
|
except ImportError:
|
|
|
|
import Queue as queue
|
2009-06-03 22:56:51 +00:00
|
|
|
import logging
|
2009-12-11 01:29:46 +00:00
|
|
|
from .. stanzabase import StanzaBase
|
2009-06-03 22:56:51 +00:00
|
|
|
|
|
|
|
class Waiter(base.BaseHandler):
|
|
|
|
|
|
|
|
def __init__(self, name, matcher):
|
|
|
|
base.BaseHandler.__init__(self, name, matcher)
|
2009-08-31 22:46:31 +00:00
|
|
|
self._payload = queue.Queue()
|
2009-06-03 22:56:51 +00:00
|
|
|
|
2009-08-31 22:46:31 +00:00
|
|
|
def prerun(self, payload):
|
2009-06-03 22:56:51 +00:00
|
|
|
self._payload.put(payload)
|
2009-08-31 22:46:31 +00:00
|
|
|
|
|
|
|
def run(self, payload):
|
|
|
|
pass
|
2009-06-03 22:56:51 +00:00
|
|
|
|
|
|
|
def wait(self, timeout=60):
|
|
|
|
try:
|
|
|
|
return self._payload.get(True, timeout)
|
2009-08-31 22:46:31 +00:00
|
|
|
except queue.Empty:
|
2009-10-19 05:27:00 +00:00
|
|
|
logging.warning("Timed out waiting for %s" % self.name)
|
2009-12-17 01:54:22 +00:00
|
|
|
return False
|
2009-06-03 22:56:51 +00:00
|
|
|
|
|
|
|
def checkDelete(self):
|
|
|
|
return True
|