python-efl/examples/dbus/test_signal_emitter.py

38 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
import dbus
import dbus.service
from efl import dbus_mainloop
from efl import ecore
class TestObject(dbus.service.Object):
def __init__(self, conn, object_path="/com/example/TestService/object"):
dbus.service.Object.__init__(self, conn, object_path)
@dbus.service.signal("com.example.TestService")
def HelloSignal(self, message):
# The signal is emitted when this method exits
# You can have code here if you wish
pass
@dbus.service.method("com.example.TestService")
def emitHelloSignal(self):
#you emit signals by calling the signal"s skeleton method
self.HelloSignal("Hello")
return "Signal emitted"
@dbus.service.method("com.example.TestService",
in_signature="", out_signature="")
def Exit(self):
ecore.idler_add(ecore.main_loop_quit)
dbus_ml = dbus_mainloop.DBusEcoreMainLoop()
session_bus = dbus.SessionBus(mainloop=dbus_ml)
name = dbus.service.BusName("com.example.TestService", session_bus)
obj = TestObject(session_bus)
ecore.main_loop_begin()