#python #linux #dbus
#python #linux #dbus
Вопрос:
Я бы хотел, чтобы мой интерфейс dbus имел такие пути:
- /org/fusegui/sites/example.com
- /org/fusegui/sites/www.kernel.org
Каждый из вышеперечисленных объектов представляет собой объект с одинаковыми методами: host(), name(), timeout() и так далее.
Как бы я достиг этого в Python? Например, если бы у меня был список, заполненный этими объектами сайта. Как бы я зациклил их и добавил в службу dbus?
Ответ №1:
dbus-python: экспорт объектов
Ответ №2:
Я создал это вместе:
import gtk
import dbus
import dbus.service
from dbus.mainloop.glib import DBusGMainLoop
class MyDBUSObject(dbus.service.Object):
def __init__(self, path):
bus_name = dbus.service.BusName('org.fusegui', bus=dbus.SessionBus())
dbus.service.Object.__init__(self, bus_name, path)
@dbus.service.method('org.fusegui.site')
def hello(self):
return "Hello,World!"
DBusGMainLoop(set_as_default=True)
for i in range(0, 50):
MyDBUSObject('/org/fusegui/sites/%i' % i)
gtk.main()
Кажется, что он экспортирует объекты так, как я этого хотел. Я не знаю, правильно ли это ™ делать.