XEP-0199: wrap functions with coroutine_wrapper and make ping() a coroutine
This commit is contained in:
parent
1e4944d47e
commit
cd7ff685fb
1 changed files with 8 additions and 3 deletions
|
@ -11,6 +11,7 @@ import logging
|
||||||
|
|
||||||
from slixmpp.jid import JID
|
from slixmpp.jid import JID
|
||||||
from slixmpp.stanza import Iq
|
from slixmpp.stanza import Iq
|
||||||
|
from slixmpp import asyncio, coroutine_wrapper
|
||||||
from slixmpp.exceptions import IqError, IqTimeout
|
from slixmpp.exceptions import IqError, IqTimeout
|
||||||
from slixmpp.xmlstream import register_stanza_plugin
|
from slixmpp.xmlstream import register_stanza_plugin
|
||||||
from slixmpp.xmlstream.matcher import StanzaPath
|
from slixmpp.xmlstream.matcher import StanzaPath
|
||||||
|
@ -118,8 +119,9 @@ class XEP_0199(BasePlugin):
|
||||||
log.debug("Pinged by %s", iq['from'])
|
log.debug("Pinged by %s", iq['from'])
|
||||||
iq.reply().send()
|
iq.reply().send()
|
||||||
|
|
||||||
|
@coroutine_wrapper
|
||||||
def send_ping(self, jid, ifrom=None, timeout=None, callback=None,
|
def send_ping(self, jid, ifrom=None, timeout=None, callback=None,
|
||||||
timeout_callback=None):
|
timeout_callback=None, coroutine=False):
|
||||||
"""Send a ping request.
|
"""Send a ping request.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
|
@ -139,11 +141,13 @@ class XEP_0199(BasePlugin):
|
||||||
iq['from'] = ifrom
|
iq['from'] = ifrom
|
||||||
iq.enable('ping')
|
iq.enable('ping')
|
||||||
|
|
||||||
return iq.send(timeout=timeout, callback=callback,
|
return iq.send(timeout=timeout, callback=callback, coroutine=coroutine,
|
||||||
timeout_callback=timeout_callback)
|
timeout_callback=timeout_callback)
|
||||||
|
|
||||||
|
@asyncio.coroutine
|
||||||
def ping(self, jid=None, ifrom=None, timeout=None):
|
def ping(self, jid=None, ifrom=None, timeout=None):
|
||||||
"""Send a ping request and calculate RTT.
|
"""Send a ping request and calculate RTT.
|
||||||
|
This is a coroutine.
|
||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
jid -- The JID that will receive the ping.
|
jid -- The JID that will receive the ping.
|
||||||
|
@ -169,7 +173,8 @@ class XEP_0199(BasePlugin):
|
||||||
|
|
||||||
log.debug('Pinging %s' % jid)
|
log.debug('Pinging %s' % jid)
|
||||||
try:
|
try:
|
||||||
self.send_ping(jid, ifrom=ifrom, timeout=timeout)
|
yield from self.send_ping(jid, ifrom=ifrom, timeout=timeout,
|
||||||
|
coroutine=True)
|
||||||
except IqError as e:
|
except IqError as e:
|
||||||
if own_host:
|
if own_host:
|
||||||
rtt = time.time() - start
|
rtt = time.time() - start
|
||||||
|
|
Loading…
Reference in a new issue