Re: [PATCH] sim-mbim: port MMSimMbim to use GTask
On 30/06/17 11:16, Ben Chan wrote: > --- > src/mm-sim-mbim.c | 201 > -- > 1 file changed, 89 insertions(+), 112 deletions(-) > Pushed to git master, thanks. > diff --git a/src/mm-sim-mbim.c b/src/mm-sim-mbim.c > index 3d99c99d..f112fe7d 100644 > --- a/src/mm-sim-mbim.c > +++ b/src/mm-sim-mbim.c > @@ -50,12 +50,13 @@ peek_device (gpointer self, > g_object_unref (modem); > > if (!port) { > -g_simple_async_report_error_in_idle (G_OBJECT (self), > - callback, > - user_data, > - MM_CORE_ERROR, > - MM_CORE_ERROR_FAILED, > - "Couldn't peek MBIM port"); > +g_task_report_new_error (self, > + callback, > + user_data, > + peek_device, > + MM_CORE_ERROR, > + MM_CORE_ERROR_FAILED, > + "Couldn't peek MBIM port"); > return FALSE; > } > > @@ -71,15 +72,13 @@ load_sim_identifier_finish (MMBaseSim *self, > GAsyncResult *res, > GError **error) > { > -if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), > error)) > -return NULL; > -return g_strdup ((gchar *)g_simple_async_result_get_op_res_gpointer > (G_SIMPLE_ASYNC_RESULT (res))); > +return g_task_propagate_pointer (G_TASK (res), error); > } > > static void > simid_subscriber_ready_state_ready (MbimDevice *device, > GAsyncResult *res, > -GSimpleAsyncResult *simple) > +GTask *task) > { > MbimMessage *response; > GError *error = NULL; > @@ -97,14 +96,13 @@ simid_subscriber_ready_state_ready (MbimDevice *device, > NULL, /* telephone_numbers_count */ > NULL, /* telephone_numbers */ > )) > -g_simple_async_result_set_op_res_gpointer (simple, sim_iccid, > g_free); > +g_task_return_pointer (task, sim_iccid, g_free); > else > -g_simple_async_result_take_error (simple, error); > +g_task_return_error (task, error); > +g_object_unref (task); > > if (response) > mbim_message_unref (response); > -g_simple_async_result_complete (simple); > -g_object_unref (simple); > } > > static void > @@ -114,12 +112,12 @@ load_sim_identifier (MMBaseSim *self, > { > MbimDevice *device; > MbimMessage *message; > -GSimpleAsyncResult *result; > +GTask *task; > > if (!peek_device (self, , callback, user_data)) > return; > > -result = g_simple_async_result_new (G_OBJECT (self), callback, > user_data, load_sim_identifier); > +task = g_task_new (self, NULL, callback, user_data); > > message = mbim_message_subscriber_ready_status_query_new (NULL); > mbim_device_command (device, > @@ -127,7 +125,7 @@ load_sim_identifier (MMBaseSim *self, > 10, > NULL, > > (GAsyncReadyCallback)simid_subscriber_ready_state_ready, > - result); > + task); > mbim_message_unref (message); > } > > @@ -136,18 +134,16 @@ load_sim_identifier (MMBaseSim *self, > > static gchar * > load_imsi_finish (MMBaseSim *self, > -GAsyncResult *res, > -GError **error) > + GAsyncResult *res, > + GError **error) > { > -if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), > error)) > -return NULL; > -return g_strdup ((gchar *)g_simple_async_result_get_op_res_gpointer > (G_SIMPLE_ASYNC_RESULT (res))); > +return g_task_propagate_pointer (G_TASK (res), error); > } > > static void > imsi_subscriber_ready_state_ready (MbimDevice *device, > GAsyncResult *res, > - GSimpleAsyncResult *simple) > + GTask *task) > { > MbimMessage *response; > GError *error = NULL; > @@ -165,14 +161,13 @@ imsi_subscriber_ready_state_ready (MbimDevice *device, > NULL, /* telephone_numbers_count */ > NULL, /* telephone_numbers */ > )) > -g_simple_async_result_set_op_res_gpointer (simple, subscriber_id, > g_free); > +g_task_return_pointer (task, subscriber_id, g_free); > else > -g_simple_async_result_take_error (simple, error); > +g_task_return_error (task, error); > +g_object_unref (task); > > if (response) >
[PATCH] sim-mbim: port MMSimMbim to use GTask
--- src/mm-sim-mbim.c | 201 -- 1 file changed, 89 insertions(+), 112 deletions(-) diff --git a/src/mm-sim-mbim.c b/src/mm-sim-mbim.c index 3d99c99d..f112fe7d 100644 --- a/src/mm-sim-mbim.c +++ b/src/mm-sim-mbim.c @@ -50,12 +50,13 @@ peek_device (gpointer self, g_object_unref (modem); if (!port) { -g_simple_async_report_error_in_idle (G_OBJECT (self), - callback, - user_data, - MM_CORE_ERROR, - MM_CORE_ERROR_FAILED, - "Couldn't peek MBIM port"); +g_task_report_new_error (self, + callback, + user_data, + peek_device, + MM_CORE_ERROR, + MM_CORE_ERROR_FAILED, + "Couldn't peek MBIM port"); return FALSE; } @@ -71,15 +72,13 @@ load_sim_identifier_finish (MMBaseSim *self, GAsyncResult *res, GError **error) { -if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) -return NULL; -return g_strdup ((gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res))); +return g_task_propagate_pointer (G_TASK (res), error); } static void simid_subscriber_ready_state_ready (MbimDevice *device, GAsyncResult *res, -GSimpleAsyncResult *simple) +GTask *task) { MbimMessage *response; GError *error = NULL; @@ -97,14 +96,13 @@ simid_subscriber_ready_state_ready (MbimDevice *device, NULL, /* telephone_numbers_count */ NULL, /* telephone_numbers */ )) -g_simple_async_result_set_op_res_gpointer (simple, sim_iccid, g_free); +g_task_return_pointer (task, sim_iccid, g_free); else -g_simple_async_result_take_error (simple, error); +g_task_return_error (task, error); +g_object_unref (task); if (response) mbim_message_unref (response); -g_simple_async_result_complete (simple); -g_object_unref (simple); } static void @@ -114,12 +112,12 @@ load_sim_identifier (MMBaseSim *self, { MbimDevice *device; MbimMessage *message; -GSimpleAsyncResult *result; +GTask *task; if (!peek_device (self, , callback, user_data)) return; -result = g_simple_async_result_new (G_OBJECT (self), callback, user_data, load_sim_identifier); +task = g_task_new (self, NULL, callback, user_data); message = mbim_message_subscriber_ready_status_query_new (NULL); mbim_device_command (device, @@ -127,7 +125,7 @@ load_sim_identifier (MMBaseSim *self, 10, NULL, (GAsyncReadyCallback)simid_subscriber_ready_state_ready, - result); + task); mbim_message_unref (message); } @@ -136,18 +134,16 @@ load_sim_identifier (MMBaseSim *self, static gchar * load_imsi_finish (MMBaseSim *self, -GAsyncResult *res, -GError **error) + GAsyncResult *res, + GError **error) { -if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) -return NULL; -return g_strdup ((gchar *)g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res))); +return g_task_propagate_pointer (G_TASK (res), error); } static void imsi_subscriber_ready_state_ready (MbimDevice *device, GAsyncResult *res, - GSimpleAsyncResult *simple) + GTask *task) { MbimMessage *response; GError *error = NULL; @@ -165,14 +161,13 @@ imsi_subscriber_ready_state_ready (MbimDevice *device, NULL, /* telephone_numbers_count */ NULL, /* telephone_numbers */ )) -g_simple_async_result_set_op_res_gpointer (simple, subscriber_id, g_free); +g_task_return_pointer (task, subscriber_id, g_free); else -g_simple_async_result_take_error (simple, error); +g_task_return_error (task, error); +g_object_unref (task); if (response) mbim_message_unref (response); -g_simple_async_result_complete (simple); -g_object_unref (simple); } static void @@ -182,12 +177,12 @@ load_imsi (MMBaseSim *self, { MbimDevice *device; MbimMessage *message; -GSimpleAsyncResult *result; +GTask *task; if (!peek_device (self, , callback, user_data))