aboutsummaryrefslogtreecommitdiff
path: root/libmm-glib/mm-modem-simple.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2012-10-02 12:29:44 +0200
committerAleksander Morgado <aleksander@lanedo.com>2012-10-03 20:45:20 +0200
commit41ece5a021cc2b3f53db465a06d60267bada3c5e (patch)
tree15e3cbb597f9b44d36164d7a05ecb2e1dbaba802 /libmm-glib/mm-modem-simple.c
parent730f69a6d49e8785ea8051692e025f61dad8d7ef (diff)
libmm-glib,bearer: `MMBearer' is now a real object
Not just a typedef of the gdbus-codegen generated `MmGdbusBearer'.
Diffstat (limited to 'libmm-glib/mm-modem-simple.c')
-rw-r--r--libmm-glib/mm-modem-simple.c49
1 files changed, 28 insertions, 21 deletions
diff --git a/libmm-glib/mm-modem-simple.c b/libmm-glib/mm-modem-simple.c
index e9d09b2f..dd3ec84b 100644
--- a/libmm-glib/mm-modem-simple.c
+++ b/libmm-glib/mm-modem-simple.c
@@ -125,9 +125,13 @@ new_bearer_ready (GDBusConnection *connection,
ConnectContext *ctx)
{
GError *error = NULL;
- MMBearer *bearer;
+ GObject *bearer;
+ GObject *source_object;
+
+ source_object = g_async_result_get_source_object (res);
+ bearer = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object), res, &error);
+ g_object_unref (source_object);
- bearer = mm_gdbus_bearer_proxy_new_finish (res, &error);
if (error)
g_simple_async_result_take_error (ctx->result, error);
else
@@ -155,15 +159,17 @@ simple_connect_ready (MMModemSimple *self,
return;
}
- mm_gdbus_bearer_proxy_new (
- g_dbus_proxy_get_connection (
- G_DBUS_PROXY (self)),
- G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
- MM_DBUS_SERVICE,
- bearer_path,
- ctx->cancellable,
- (GAsyncReadyCallback)new_bearer_ready,
- ctx);
+ g_async_initable_new_async (MM_TYPE_BEARER,
+ G_PRIORITY_DEFAULT,
+ ctx->cancellable,
+ (GAsyncReadyCallback)new_bearer_ready,
+ ctx,
+ "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
+ "g-name", MM_DBUS_SERVICE,
+ "g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (self)),
+ "g-object-path", bearer_path,
+ "g-interface-name", "org.freedesktop.ModemManager1.Bearer",
+ NULL);
}
/**
@@ -232,7 +238,7 @@ mm_modem_simple_connect_sync (MMModemSimple *self,
GCancellable *cancellable,
GError **error)
{
- MMBearer *bearer = NULL;
+ GObject *bearer = NULL;
gchar *bearer_path = NULL;
GVariant *variant;
@@ -245,20 +251,21 @@ mm_modem_simple_connect_sync (MMModemSimple *self,
cancellable,
error);
if (bearer_path) {
- bearer = mm_gdbus_bearer_proxy_new_sync (
- g_dbus_proxy_get_connection (
- G_DBUS_PROXY (self)),
- G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
- MM_DBUS_SERVICE,
- bearer_path,
- cancellable,
- error);
+ bearer = g_initable_new (MM_TYPE_BEARER,
+ cancellable,
+ error,
+ "g-flags", G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
+ "g-name", MM_DBUS_SERVICE,
+ "g-connection", g_dbus_proxy_get_connection (G_DBUS_PROXY (self)),
+ "g-object-path", bearer_path,
+ "g-interface-name", "org.freedesktop.ModemManager1.Bearer",
+ NULL);
g_free (bearer_path);
}
g_variant_unref (variant);
- return bearer;
+ return (bearer ? MM_BEARER (bearer) : NULL);
}
/*****************************************************************************/