diff options
Diffstat (limited to 'src/mm-bearer-cdma.c')
-rw-r--r-- | src/mm-bearer-cdma.c | 28 |
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 |