def _call_dbus(self, obj, *args, **kw): # print self.meth.__name__, args, kw bus_obj = DbusInterface.get_bus_obj(obj) bus_interface = self.iface if self.iface else\ DbusInterface.get_bus_iface(obj) bus_meth = bus_obj.get_dbus_method(self.meth.__name__, bus_interface) args = self.convert_args_to_dbus_args(*args) kw = self.convert_kw_to_dbus_kw(**kw) dbus_result = bus_meth(*args, **kw) DbusInterface.store_result(obj, dbus_result) produces = self.produces if produces: return produces(dbus_result) meth = self.meth result = None if meth: result = meth(obj, *args, **kw) if result is None and self.override_return: result = dbus_result return result
def _watch_dbus(self, obj, *args, **kw): ''' set self._handler to be called when obj fire signal wrapped ''' def handler(*args, **kw): if self.meth is not self._handler: DbusInterface.store_result(obj, self.meth(obj, *args, **kw)) return self._handler(self._obj, *args, **kw) if self.iface: bus_iface = DbusInterface.iface(obj, self.iface) bus_iface.connect_to_signal(self.meth.__name__, handler, dbus_interface=self.iface, *args, **kw) else: bus_obj = DbusInterface.get_bus_obj(obj) bus_obj.connect_to_signal(self.meth.__name__, handler, dbus_interface=DbusInterface.get_bus_iface(obj), *args, **kw)