Я пытаюсь написать C, который использует поддержку DBus в GIO GLib.
У меня есть GDBusObjectManager
, и я использовал g_signal_connect()
, чтобы добавить обработчик сигнала interface-added
. Подпись обработчика согласно документам:
void
user_function (GDBusObjectManager *manager,
GDBusObject *object,
GDBusInterface *interface,
gpointer user_data)
Я хочу проверить, соответствует ли добавленный интерфейс интересующему меня интерфейсу (org.bluez.Adapter1
), а затем вызвать некоторые методы из этого интерфейса для объекта, который его реализует. Я считаю, что первый шаг — проверить, совпадает ли имя интерфейса. Я считаю, что мог бы сделать это, сравнив с возвратом от const gchar *g_dbus_proxy_get_name(GDBusProxy *proxy);
, но у меня нет GDBusProxy
, у меня есть GDBusInterface
. Итак, мой вопрос: как я могу получить GDBusProxy
из GDBusInterface
?