Project

General

Profile

Download (1 KB) Statistics
| Branch: | Tag: | Revision:
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):
f94cb2af David Sorber
def __init__(self, message):
self._message = message
cd10f9a6 David Sorber
f94cb2af David Sorber
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")
cd10f9a6 David Sorber
f94cb2af David Sorber
self._loop = gobject.MainLoop()
print("Service running...")
self._loop.run()
print("Service stopped")
cd10f9a6 David Sorber
f94cb2af David Sorber
@dbus.service.method("com.example.service.Message", in_signature='', out_signature='s')
def get_message(self):
print(" sending message")
return self._message
cd10f9a6 David Sorber
f94cb2af David Sorber
@dbus.service.method("com.example.service.Quit", in_signature='', out_signature='')
def quit(self):
print(" shutting down")
self._loop.quit()
cd10f9a6 David Sorber
if __name__ == "__main__":
f94cb2af David Sorber
Service("This is the service").run()