diff options
author | Ben Chan <benchan@chromium.org> | 2017-09-08 13:05:39 -0700 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2017-09-18 20:39:03 -0700 |
commit | 8fb6f30f49b2315c7d1d6daac23c67875834c6ba (patch) | |
tree | 3df8ad3e64876583ceb7a4bcc15d37da126958ee | |
parent | 5ffc3b7a9263a07fd30ad21738afe1a7b357c08f (diff) |
sierra: port load_sim_identifier to use GTask
-rw-r--r-- | plugins/sierra/mm-sim-sierra.c | 44 |
1 files changed, 17 insertions, 27 deletions
diff --git a/plugins/sierra/mm-sim-sierra.c b/plugins/sierra/mm-sim-sierra.c index 2c2c5ff6..233bf2f5 100644 --- a/plugins/sierra/mm-sim-sierra.c +++ b/plugins/sierra/mm-sim-sierra.c @@ -41,20 +41,13 @@ load_sim_identifier_finish (MMBaseSim *self, GAsyncResult *res, GError **error) { - gchar *iccid; - - if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) - return NULL; - - iccid = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res)); - mm_dbg ("loaded SIM identifier: %s", iccid); - return g_strdup (iccid); + return g_task_propagate_pointer (G_TASK (res), error); } static void iccid_read_ready (MMBaseModem *modem, GAsyncResult *res, - GSimpleAsyncResult *simple) + GTask *task) { GError *error = NULL; const gchar *response; @@ -64,32 +57,29 @@ iccid_read_ready (MMBaseModem *modem, response = mm_base_modem_at_command_finish (modem, res, &error); if (!response) { - g_simple_async_result_take_error (simple, error); - g_simple_async_result_complete (simple); - g_object_unref (simple); + g_task_return_error (task, error); + g_object_unref (task); return; } p = mm_strip_tag (response, "!ICCID:"); if (!p) { - g_simple_async_result_set_error (simple, - MM_CORE_ERROR, - MM_CORE_ERROR_FAILED, - "Failed to parse !ICCID response: '%s'", - response); - g_simple_async_result_complete (simple); - g_object_unref (simple); + g_task_return_new_error (task, + MM_CORE_ERROR, + MM_CORE_ERROR_FAILED, + "Failed to parse !ICCID response: '%s'", + response); + g_object_unref (task); return; } parsed = mm_3gpp_parse_iccid (p, &local); if (parsed) - g_simple_async_result_set_op_res_gpointer (simple, parsed, g_free); + g_task_return_pointer (task, parsed, g_free); else - g_simple_async_result_take_error (simple, local); + g_task_return_error (task, local); - g_simple_async_result_complete (simple); - g_object_unref (simple); + g_object_unref (task); } static void @@ -98,11 +88,14 @@ load_sim_identifier (MMBaseSim *self, gpointer user_data) { MMBaseModem *modem = NULL; + GTask *task; g_object_get (self, MM_BASE_SIM_MODEM, &modem, NULL); + task = g_task_new (self, NULL, callback, user_data); + mm_dbg ("loading (Sierra) SIM identifier..."); mm_base_modem_at_command ( modem, @@ -110,10 +103,7 @@ load_sim_identifier (MMBaseSim *self, 3, FALSE, (GAsyncReadyCallback)iccid_read_ready, - g_simple_async_result_new (G_OBJECT (self), - callback, - user_data, - load_sim_identifier)); + task); g_object_unref (modem); } |