diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2012-07-31 09:02:58 +0200 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-07-31 09:02:58 +0200 |
commit | 737b6c2fc5d576c744aa7e5bb70b171bf3271e6f (patch) | |
tree | f03309c73327dc4eb5556e8c901981baeaf166e1 | |
parent | 60405ce4ff5cc8ce7d8116b2387add00465dbd49 (diff) |
cli,libmm-glib: provide mm_manager_(peek|get)_proxy()
peek() doesn't increase the reference count of the proxy object, while get()
does it.
-rw-r--r-- | cli/mmcli-manager.c | 4 | ||||
-rw-r--r-- | libmm-glib/mm-manager.c | 18 | ||||
-rw-r--r-- | libmm-glib/mm-manager.h | 3 |
3 files changed, 20 insertions, 5 deletions
diff --git a/cli/mmcli-manager.c b/cli/mmcli-manager.c index 4db353d6..70a7050e 100644 --- a/cli/mmcli-manager.c +++ b/cli/mmcli-manager.c @@ -249,7 +249,7 @@ get_manager_ready (GObject *source, ctx->manager = mmcli_get_manager_finish (result); /* Setup operation timeout */ - mmcli_force_operation_timeout (mm_manager_get_proxy (ctx->manager)); + mmcli_force_operation_timeout (mm_manager_peek_proxy (ctx->manager)); /* Request to set log level? */ if (set_logging_str) { @@ -331,7 +331,7 @@ mmcli_manager_run_synchronous (GDBusConnection *connection) ctx->manager = mmcli_get_manager_sync (connection); /* Setup operation timeout */ - mmcli_force_operation_timeout (mm_manager_get_proxy (ctx->manager)); + mmcli_force_operation_timeout (mm_manager_peek_proxy (ctx->manager)); /* Request to set log level? */ if (set_logging_str) { diff --git a/libmm-glib/mm-manager.c b/libmm-glib/mm-manager.c index cab08dec..82c59eb8 100644 --- a/libmm-glib/mm-manager.c +++ b/libmm-glib/mm-manager.c @@ -132,17 +132,31 @@ mm_manager_new_sync (GDBusConnection *connection, } /** + * mm_manager_peek_proxy: + * @manager: A #MMManager. + * + * Gets the #GDBusProxy interface of the %manager. + * + * Returns: (transfer none): The #GDBusProxy interface of %manager. Do not free the returned object, it is owned by @manager. + */ +GDBusProxy * +mm_manager_peek_proxy (MMManager *manager) +{ + return G_DBUS_PROXY (manager->priv->manager_iface_proxy); +} + +/** * mm_manager_get_proxy: * @manager: A #MMManager. * * Gets the #GDBusProxy interface of the %manager. * - * Returns: (transfer none): The #GDBusProxy interface of %manager or %NULL if the interface hasn't been created. Do not free the returned object, it is owned by @manager. + * Returns: (transfer full): The #GDBusProxy interface of %manager, which must be freed with g_object_unref(). */ GDBusProxy * mm_manager_get_proxy (MMManager *manager) { - return G_DBUS_PROXY (manager->priv->manager_iface_proxy); + return G_DBUS_PROXY (g_object_ref (manager->priv->manager_iface_proxy)); } static void diff --git a/libmm-glib/mm-manager.h b/libmm-glib/mm-manager.h index 0684075e..afd6784b 100644 --- a/libmm-glib/mm-manager.h +++ b/libmm-glib/mm-manager.h @@ -67,7 +67,8 @@ MMManager *mm_manager_new_sync ( GCancellable *cancellable, GError **error); -GDBusProxy *mm_manager_get_proxy (MMManager *manager); +GDBusProxy *mm_manager_peek_proxy (MMManager *manager); +GDBusProxy *mm_manager_get_proxy (MMManager *manager); void mm_manager_set_logging (MMManager *manager, const gchar *level, |