Получить GDBusConnection для имени шины, которая уже принадлежит
Я хотел бы зарегистрировать объект для имени Bus, которое уже принадлежит. Ниже описано, как я могу зарегистрировать объект на новой шине, но own_name
не удается, если шина уже существует. Могу ли я получить объект DBusConnection другим способом, чтобы я мог вызвать register_object
?
Bus.own_name (BusType.SESSION, "net.launchpad.Diodon", BusNameOwnerFlags.NONE,
conn => {
try {
conn.register_object ("/net/launchpad/Diodon", new DBusController (controller));
} catch (IOError e) {
stderr.printf ("Could not register service\n");
}
},
() => {},
() => stderr.printf ("Could not aquire name\n"));
1 ответ
Как описано в документации Gio, если имя шины принадлежало соединению шины сообщений с использованием BusNameOwnerFlags.ALLOW_REPLACEMENT
вы могли бы использовать BusNameOwnerFlags.REPLACE
и взять имя из другого соединения. В противном случае own_name
функция не сможет получить имя.
По коммитам, которые я мог найти в истории Git Diodon, кажется "net.launchpad.Diodon"
был получен с использованием флага NONE
,