diff options
Diffstat (limited to 'src/libnm-glib-aux/nm-dbus-aux.h')
| -rw-r--r-- | src/libnm-glib-aux/nm-dbus-aux.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/libnm-glib-aux/nm-dbus-aux.h b/src/libnm-glib-aux/nm-dbus-aux.h index 65a91311..420a0c55 100644 --- a/src/libnm-glib-aux/nm-dbus-aux.h +++ b/src/libnm-glib-aux/nm-dbus-aux.h @@ -84,6 +84,29 @@ void nm_dbus_connection_call_get_name_owner(GDBusConnection * d NMDBusConnectionCallGetNameOwnerCb callback, gpointer user_data); +static inline void +nm_dbus_connection_call_request_name(GDBusConnection * dbus_connection, + const char * name, + guint32 flags, + int timeout_msec, + GCancellable * cancellable, + GAsyncReadyCallback callback, + gpointer user_data) +{ + g_dbus_connection_call(dbus_connection, + DBUS_SERVICE_DBUS, + DBUS_PATH_DBUS, + DBUS_INTERFACE_DBUS, + "RequestName", + g_variant_new("(su)", name, flags), + G_VARIANT_TYPE("(u)"), + G_DBUS_CALL_FLAGS_NONE, + timeout_msec, + cancellable, + callback, + user_data); +} + static inline guint nm_dbus_connection_signal_subscribe_properties_changed(GDBusConnection * dbus_connection, const char * bus_name, @@ -215,4 +238,30 @@ gboolean _nm_dbus_error_is(GError *error, ...) G_GNUC_NULL_TERMINATED; /*****************************************************************************/ +GDBusConnection *nm_g_bus_get_blocking(GCancellable *cancellable, GError **error); + +/*****************************************************************************/ + +typedef struct { + GVariant *result; + GError * error; +} NMDBusConnectionCallBlockingData; + +void +nm_dbus_connection_call_blocking_callback(GObject *source, GAsyncResult *res, gpointer user_data); + +GVariant *nm_dbus_connection_call_blocking(NMDBusConnectionCallBlockingData *data, GError **error); + +/*****************************************************************************/ + +static inline gboolean +nm_g_variant_tuple_get_u(GVariant *v, guint32 *out_u) +{ + if (g_variant_is_of_type(v, G_VARIANT_TYPE("(u)"))) { + g_variant_get(v, "(u)", out_u); + return TRUE; + } + return FALSE; +} + #endif /* __NM_DBUS_AUX_H__ */ |