From 6175cbcd99f917b08646d130770a132458056249 Mon Sep 17 00:00:00 2001 From: Emmanuel Gil Peyrot Date: Sat, 16 Aug 2014 22:37:29 +0200 Subject: Reintroduce XMLStream.process, making it run the asyncio event loop. --- slixmpp/xmlstream/xmlstream.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'slixmpp/xmlstream/xmlstream.py') diff --git a/slixmpp/xmlstream/xmlstream.py b/slixmpp/xmlstream/xmlstream.py index e3a8265a..ff5a3d26 100644 --- a/slixmpp/xmlstream/xmlstream.py +++ b/slixmpp/xmlstream/xmlstream.py @@ -302,6 +302,20 @@ class XMLStream(object): except OSError as e: self.event("connection_failed", e) + def process(self, timeout=None): + """Process all the available XMPP events (receiving or sending data on the + socket(s), calling various registered callbacks, calling expired + timers, handling signal events, etc). If timeout is None, this + function will run forever. If timeout is a number, this function + will return after the given time in seconds. + """ + loop = asyncio.get_event_loop() + if timeout is None: + loop.run_forever() + else: + future = asyncio.sleep(timeout) + loop.run_until_complete(future) + def init_parser(self): """init the XML parser. The parser must always be reset for each new connexion -- cgit v1.2.3