2012-01-23 2 views
0

Я пытаюсь взломать дополнительную функцию плагина mpris quodlibet. Если вы хотите получить более подробную информацию о том, что я пытаюсь сделать, см.: http://code.google.com/p/quodlibet/issues/detail?id=889, но это не обязательно для ответа на вопрос.Как получить счет клиентов dbus для объекта

Плагин вводит ряд классов dbus.service.Object при запуске плагина. Я хотел бы получить для одного из объектов количество клиентов dbus ProxyObject, которые существуют для объекта, например. Я хочу знать, сколько клиентов подключено.

+0

Не было бы проще проверить, работает ли Gnome-Shell? – plaes

+0

Нет, потому что есть другие клиенты mpris. http://incise.org/mpris-speaking-programs.html –

ответ

1

Насколько я понимаю, между поставщиком услуг DBus и потребителем услуг DBus нет никаких «связей» или других отношений с состоянием (по крайней мере, об этом не упоминается в DBus message protocol spec). Из спецификации видно, что все, что ProxyObject и тому подобное, являются исключительно деталями реализации клиента, и вы не можете определить, есть ли какие-либо «клиенты» для вашего сервиса DBus.

Возможно, вы можете использовать некоторые нестандартные расширения для MPRIS (например, сообщения «ping») и попросить клиентов соблюдать эти расширения, или вы можете сделать настраиваемый параметр «не оставлять quodlibet, если он из следующих процессов ».

Смежные вопросы