summaryrefslogtreecommitdiff
path: root/sleekxmpp/xmlstream/handler/waiter.py
blob: 2c91052d046023e73448172ed91431bdd82739a7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from . import base
import queue
import logging

class Waiter(base.BaseHandler):
	
	def __init__(self, name, matcher):
		base.BaseHandler.__init__(self, name, matcher)
		self._payload = queue.Queue()
	
	def prerun(self, payload):
		logging.debug("Putting into Waiter %s" % self.name)
		self._payload.put(payload)
	
	def run(self, payload):
		pass

	def wait(self, timeout=60):
		logging.debug("Waiting on %s." % self.name)
		try:
			return self._payload.get(True, timeout)
		except queue.Empty:
			logging.warning("Timed out waiting for %s" % self.name)
			return False
	
	def checkDelete(self):
		return True