¿Cómo implemento un método asíncrono en Python DBus? Un ejemplo a continuación:Implementación de un método asíncrono en Python DBus
class LastfmApi(dbus.service.Object):
def __init__(self):
bus_name = dbus.service.BusName('fm.lastfm.api', bus=dbus.SessionBus())
dbus.service.Object.__init__(self, bus_name, '/')
@dbus.service.method('fm.last.api.account', out_signature="s")
def getUsername(self):
## How do I get this method done asynchronously ??
## For example, this method should go off and retrieve the "username"
## asynchronously. When this method returns, the "username" isn't available
## immediately but will be made available at a later time.
Estoy usando el reactor glib2 de Twisted.
actualización: Sé que este comportamiento es posible implementar - Enlace con el Bus incluye una "serie" (identificador único) a llamadas de método y el método de llamada tiene acceso a este identificador con el fin de que coincida con "llamadas" con "respuestas" .
No está muy claro qué es lo que quiere lograr aquí. ¿Qué se supone que 'getUsername' debe hacer? –