root/software/dbus_test/service.py @ cd10f9a6
| cd10f9a6 | David Sorber | #!/usr/bin/env python3
|
|
import dbus
|
|||
import dbus.service
|
|||
import dbus.mainloop.glib
|
|||
from gi.repository import GObject as gobject
|
|||
class Service(dbus.service.Object):
|
|||
def __init__(self, message):
|
|||
self._message = message
|
|||
def run(self):
|
|||
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
|||
bus_name = dbus.service.BusName("com.example.service", dbus.SystemBus())
|
|||
dbus.service.Object.__init__(self, bus_name, "/com/example/service")
|
|||
self._loop = gobject.MainLoop()
|
|||
print("Service running...")
|
|||
self._loop.run()
|
|||
print("Service stopped")
|
|||
@dbus.service.method("com.example.service.Message", in_signature='', out_signature='s')
|
|||
def get_message(self):
|
|||
print(" sending message")
|
|||
return self._message
|
|||
@dbus.service.method("com.example.service.Quit", in_signature='', out_signature='')
|
|||
def quit(self):
|
|||
print(" shutting down")
|
|||
self._loop.quit()
|
|||
if __name__ == "__main__":
|
|||
Service("This is the service").run()
|