Получить 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,

Другие вопросы по тегам