aboutsummaryrefslogtreecommitdiff
path: root/src/mm-bearer-cdma.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-bearer-cdma.c')
-rw-r--r--src/mm-bearer-cdma.c28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/mm-bearer-cdma.c b/src/mm-bearer-cdma.c
index d016f79f..e12fac1b 100644
--- a/src/mm-bearer-cdma.c
+++ b/src/mm-bearer-cdma.c
@@ -95,14 +95,32 @@ disconnect (MMBearer *self,
/*****************************************************************************/
MMBearer *
-mm_bearer_cdma_new (MMBaseModem *modem,
+mm_bearer_cdma_new_finish (MMIfaceModemCdma *modem,
+ GAsyncResult *res,
+ GError **error)
+{
+ if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error))
+ return NULL;
+
+ return MM_BEARER (g_object_ref (g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res))));
+}
+
+void
+mm_bearer_cdma_new (MMIfaceModemCdma *modem,
MMCommonBearerProperties *properties,
- GError **error)
+ GAsyncReadyCallback callback,
+ gpointer user_data)
{
+ GSimpleAsyncResult *result;
static guint id = 0;
MMBearerCdma *bearer;
gchar *path;
+ result = g_simple_async_result_new (G_OBJECT (modem),
+ callback,
+ user_data,
+ mm_bearer_cdma_new);
+
/* Create the object */
bearer = g_object_new (MM_TYPE_BEARER_CDMA,
MM_BEARER_CDMA_RM_PROTOCOL, mm_common_bearer_properties_get_rm_protocol (properties),
@@ -118,7 +136,11 @@ mm_bearer_cdma_new (MMBaseModem *modem,
NULL);
g_free (path);
- return MM_BEARER (bearer);
+ g_simple_async_result_set_op_res_gpointer (result,
+ bearer,
+ (GDestroyNotify)g_object_unref);
+ g_simple_async_result_complete_in_idle (result);
+ g_object_unref (result);
}
static void