как предоставить список объектов с dbus

#python #linux #dbus

#python #linux #dbus

Вопрос:

Я бы хотел, чтобы мой интерфейс dbus имел такие пути:

  • /org/fusegui/sites/example.com
  • /org/fusegui/sites/www.kernel.org

Каждый из вышеперечисленных объектов представляет собой объект с одинаковыми методами: host(), name(), timeout() и так далее.

Как бы я достиг этого в Python? Например, если бы у меня был список, заполненный этими объектами сайта. Как бы я зациклил их и добавил в службу dbus?

Ответ №1:

Ответ №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()
  

Кажется, что он экспортирует объекты так, как я этого хотел. Я не знаю, правильно ли это ™ делать.