45 lines
1.0 KiB
Python
Executable File
45 lines
1.0 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
# Based on http://stackoverflow.com/questions/22390064/use-dbus-to-just-send-a-message-in-python
|
|
|
|
# Python DBUS Test Server
|
|
# runs until the Quit() method is called via DBUS
|
|
|
|
from gi.repository import GLib
|
|
from pydbus import SessionBus
|
|
|
|
loop = GLib.MainLoop()
|
|
|
|
class MyDBUSService(object):
|
|
"""
|
|
<node>
|
|
<interface name='net.lew21.pydbus.ClientServerExample'>
|
|
<method name='Hello'>
|
|
<arg type='s' name='response' direction='out'/>
|
|
</method>
|
|
<method name='EchoString'>
|
|
<arg type='s' name='a' direction='in'/>
|
|
<arg type='s' name='response' direction='out'/>
|
|
</method>
|
|
<method name='Quit'/>
|
|
</interface>
|
|
</node>
|
|
"""
|
|
|
|
def Hello(self):
|
|
"""returns the string 'Hello, World!'"""
|
|
return "Hello, World!"
|
|
|
|
def EchoString(self, s):
|
|
"""returns whatever is passed to it"""
|
|
return s
|
|
|
|
def Quit(self):
|
|
"""removes this object from the DBUS connection and exits"""
|
|
loop.quit()
|
|
|
|
bus = SessionBus()
|
|
bus.publish("net.lew21.pydbus.ClientServerExample", MyDBUSService())
|
|
loop.run()
|
|
|