Update NEWS
[dbus-python-phuang.git] / examples / example-service.py
blob5dca9a5230421e3922b53421c5418b4694c77017
1 #!/usr/bin/env python
3 usage = """Usage:
4 python example-service.py &
5 python example-client.py
6 python example-async-client.py
7 python example-client.py --exit-service
8 """
10 import gobject
12 import dbus
13 import dbus.service
14 import dbus.mainloop.glib
16 class DemoException(dbus.DBusException):
17 _dbus_error_name = 'com.example.DemoException'
19 class SomeObject(dbus.service.Object):
21 @dbus.service.method("com.example.SampleInterface",
22 in_signature='s', out_signature='as')
23 def HelloWorld(self, hello_message):
24 print (str(hello_message))
25 return ["Hello", " from example-service.py", "with unique name",
26 session_bus.get_unique_name()]
28 @dbus.service.method("com.example.SampleInterface",
29 in_signature='', out_signature='')
30 def RaiseException(self):
31 raise DemoException('The RaiseException method does what you might '
32 'expect')
34 @dbus.service.method("com.example.SampleInterface",
35 in_signature='', out_signature='(ss)')
36 def GetTuple(self):
37 return ("Hello Tuple", " from example-service.py")
39 @dbus.service.method("com.example.SampleInterface",
40 in_signature='', out_signature='a{ss}')
41 def GetDict(self):
42 return {"first": "Hello Dict", "second": " from example-service.py"}
44 @dbus.service.method("com.example.SampleInterface",
45 in_signature='', out_signature='')
46 def Exit(self):
47 mainloop.quit()
50 if __name__ == '__main__':
51 dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
53 session_bus = dbus.SessionBus()
54 name = dbus.service.BusName("com.example.SampleService", session_bus)
55 object = SomeObject(session_bus, '/SomeObject')
57 mainloop = gobject.MainLoop()
58 print "Running example service."
59 print usage
60 mainloop.run()