aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-07-31 09:02:58 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-07-31 09:02:58 +0200
commit737b6c2fc5d576c744aa7e5bb70b171bf3271e6f (patch)
treef03309c73327dc4eb5556e8c901981baeaf166e1
parent60405ce4ff5cc8ce7d8116b2387add00465dbd49 (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.c4
-rw-r--r--libmm-glib/mm-manager.c18
-rw-r--r--libmm-glib/mm-manager.h3
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,