From e43a353d27f1b9643c21ccff53a7759fc3dcdffe Mon Sep 17 00:00:00 2001 From: "John (J5) Palmieri" Date: Tue, 24 May 2005 00:21:07 +0000 Subject: * python/decorators.py: import dbus_bindings * python/matchrules.py (SignalMatchRule, SignalMatchTree, SignalMatchNode): new classes that implement wildcard signal callback matching using a tree lookup. Heavily modified from a patch sent by Celso Pinto (fd.o bug #3241) * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func): use new match classes to handle signals. --- python/decorators.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'python/decorators.py') diff --git a/python/decorators.py b/python/decorators.py index 4be6e207..7847b3a2 100644 --- a/python/decorators.py +++ b/python/decorators.py @@ -1,5 +1,6 @@ import _util import inspect +import dbus_bindings def method(dbus_interface): @@ -18,14 +19,15 @@ def signal(dbus_interface): _util._validate_interface_or_name(dbus_interface) def decorator(func): def emit_signal(self, *args, **keywords): - func(self, *args, **keywords) - message = dbus_bindings.Signal(self._object_path, dbus_interface, func.__name__) + func(self, *args, **keywords) + message = dbus_bindings.Signal(self._object_path, dbus_interface, func.__name__) iter = message.get_iter(True) + for arg in args: iter.append(arg) - + self._connection.send(message) - + emit_signal._dbus_is_signal = True emit_signal._dbus_interface = dbus_interface emit_signal.__name__ = func.__name__ -- cgit