mirror of git://git.sysmocom.de/ofono
gdbus: Add g_dbus_client_set_ready_watch()
This patch adds a new gdbus helper to notify the clients that GetManagedObjects reply was received and the last proxy has been informed previously by the proxy_added callback.
This commit is contained in:
parent
472e6650d4
commit
ea2b34eacd
|
@ -56,6 +56,8 @@ struct GDBusClient {
|
||||||
void *signal_data;
|
void *signal_data;
|
||||||
GDBusProxyFunction proxy_added;
|
GDBusProxyFunction proxy_added;
|
||||||
GDBusProxyFunction proxy_removed;
|
GDBusProxyFunction proxy_removed;
|
||||||
|
GDBusClientFunction ready;
|
||||||
|
void *ready_data;
|
||||||
GDBusPropertyFunction property_changed;
|
GDBusPropertyFunction property_changed;
|
||||||
void *user_data;
|
void *user_data;
|
||||||
GList *proxy_list;
|
GList *proxy_list;
|
||||||
|
@ -982,6 +984,9 @@ static void parse_managed_objects(GDBusClient *client, DBusMessage *msg)
|
||||||
|
|
||||||
dbus_message_iter_next(&dict);
|
dbus_message_iter_next(&dict);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (client->ready)
|
||||||
|
client->ready(client, client->ready_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void get_managed_objects_reply(DBusPendingCall *call, void *user_data)
|
static void get_managed_objects_reply(DBusPendingCall *call, void *user_data)
|
||||||
|
@ -1243,6 +1248,18 @@ gboolean g_dbus_client_set_signal_watch(GDBusClient *client,
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean g_dbus_client_set_ready_watch(GDBusClient *client,
|
||||||
|
GDBusClientFunction ready, void *user_data)
|
||||||
|
{
|
||||||
|
if (client == NULL)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
client->ready = ready;
|
||||||
|
client->ready_data = user_data;
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean g_dbus_client_set_proxy_handlers(GDBusClient *client,
|
gboolean g_dbus_client_set_proxy_handlers(GDBusClient *client,
|
||||||
GDBusProxyFunction proxy_added,
|
GDBusProxyFunction proxy_added,
|
||||||
GDBusProxyFunction proxy_removed,
|
GDBusProxyFunction proxy_removed,
|
||||||
|
|
|
@ -337,6 +337,7 @@ gboolean g_dbus_proxy_method_call(GDBusProxy *proxy, const char *method,
|
||||||
GDBusReturnFunction function, void *user_data,
|
GDBusReturnFunction function, void *user_data,
|
||||||
GDBusDestroyFunction destroy);
|
GDBusDestroyFunction destroy);
|
||||||
|
|
||||||
|
typedef void (* GDBusClientFunction) (GDBusClient *client, void *user_data);
|
||||||
typedef void (* GDBusProxyFunction) (GDBusProxy *proxy, void *user_data);
|
typedef void (* GDBusProxyFunction) (GDBusProxy *proxy, void *user_data);
|
||||||
typedef void (* GDBusPropertyFunction) (GDBusProxy *proxy, const char *name,
|
typedef void (* GDBusPropertyFunction) (GDBusProxy *proxy, const char *name,
|
||||||
DBusMessageIter *iter, void *user_data);
|
DBusMessageIter *iter, void *user_data);
|
||||||
|
@ -359,7 +360,8 @@ gboolean g_dbus_client_set_disconnect_watch(GDBusClient *client,
|
||||||
GDBusWatchFunction function, void *user_data);
|
GDBusWatchFunction function, void *user_data);
|
||||||
gboolean g_dbus_client_set_signal_watch(GDBusClient *client,
|
gboolean g_dbus_client_set_signal_watch(GDBusClient *client,
|
||||||
GDBusMessageFunction function, void *user_data);
|
GDBusMessageFunction function, void *user_data);
|
||||||
|
gboolean g_dbus_client_set_ready_watch(GDBusClient *client,
|
||||||
|
GDBusClientFunction ready, void *user_data);
|
||||||
gboolean g_dbus_client_set_proxy_handlers(GDBusClient *client,
|
gboolean g_dbus_client_set_proxy_handlers(GDBusClient *client,
|
||||||
GDBusProxyFunction proxy_added,
|
GDBusProxyFunction proxy_added,
|
||||||
GDBusProxyFunction proxy_removed,
|
GDBusProxyFunction proxy_removed,
|
||||||
|
|
Loading…
Reference in New Issue