dbus/python/examples/example-signal-recipient.py
John (J5) Palmieri afc504f848 * Merge DBUS_0_35_2 branch into HEAD
2005-07-17  John (J5) Palmieri  <johnp@redhat.com>

        * NEWS: Update to 0.35.2

2005-07-17  John (J5) Palmieri  <johnp@redhat.com>

        * python/_dbus.py: Remove import of the dbus.services
        module as it no longer exists (patch from Dimitur Kirov)

        * python/service.py (Object::__init__): Fixed typo
        s/name/bus_name (patch from Dimitur Kirov)

        * python/examples/example-signal-emitter.py: import dbus.glib
        to get the main loop and use glib mainloop instead of gtk so
        X doesn't have to be running.

        * python/examples/example-signal-recipient.py: import dbus.glib
        to get the main loop and use glib mainloop instead of gtk so
        X doesn't have to be running. Import the decorators module
        directly.

        * test/glib/Makefile.am:  Added DIST_EXTRA files that distcheck
        didn't pick up on but are needed to build

        * configure.in: upped version to 0.35.2

        * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
        added Colin Walters' SELinux API rename patch from head
        s/unix sercurity context/selinux security context/

2005-07-16  John (J5) Palmieri  <johnp@redhat.com>

        * python/Makefile.am: dbus_binding.pxd.in should be included
        in EXTRA_DIST not dbus_binding.pxd
        fix up $(srcdir) hopefully for the last time

        * NEWS: Update to 0.35.1
2005-07-17 21:02:56 +00:00

53 lines
1.8 KiB
Python

#!/usr/bin/env python
import dbus
import dbus.decorators
import dbus.glib
import gobject
def handle_reply(msg):
print msg
def handle_error(e):
print str(e)
def emit_signal():
#call the emitHelloSignal method
object.emitHelloSignal(dbus_interface="org.designfu.TestService")
#reply_handler = handle_reply, error_handler = handle_error)
return True
bus = dbus.SessionBus()
object = bus.get_object("org.designfu.TestService","/org/designfu/TestService/object")
def hello_signal_handler(hello_string):
print ("Received signal and it says: " + hello_string)
@dbus.decorators.explicitly_pass_message
def catchall_signal_handler(*args, **keywords):
#The dbus.handler directive passes in the special __dbus_message__ variable
dbus_message = keywords["dbus_message"]
print "Caught signal " + dbus_message.get_member()
for arg in args:
print " " + str(arg)
def catchall_hello_signals_handler(hello_string):
print ("Received a hello signal and it says ") + hello_string
@dbus.decorators.explicitly_pass_message
def catchall_testservice_interface_handler(hello_string, dbus_message):
print "org.designfu.TestService interface says " + hello_string + " when it sent signal " + dbus_message.get_member()
object.connect_to_signal("HelloSignal", hello_signal_handler, dbus_interface="org.designfu.TestService")
#lets make a catchall
bus.add_signal_receiver(catchall_signal_handler)
bus.add_signal_receiver(catchall_hello_signals_handler, dbus_interface = "org.designfu.TestService", signal_name = "HelloSignal")
bus.add_signal_receiver(catchall_testservice_interface_handler, dbus_interface = "org.designfu.TestService")
gobject.timeout_add(2000, emit_signal)
# Tell the remote object to emit the signal
loop = gobject.MainLoop()
loop.run()