[grilo-plugins] tmdb: use GTask instead of GSimpleAsyncResult



commit fb45b333607ad1c3c5ba68273c4c0a8778417660
Author: Victor Toso <me victortoso com>
Date:   Sat Sep 3 16:07:25 2016 +0200

    tmdb: use GTask instead of GSimpleAsyncResult
    
    https://bugzilla.gnome.org/show_bug.cgi?id=770806

 src/tmdb/grl-tmdb-request.c |   33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)
---
diff --git a/src/tmdb/grl-tmdb-request.c b/src/tmdb/grl-tmdb-request.c
index 14a687b..244d673 100644
--- a/src/tmdb/grl-tmdb-request.c
+++ b/src/tmdb/grl-tmdb-request.c
@@ -85,7 +85,7 @@ struct _GrlTmdbRequestPrivate {
   char *api_key;
   GHashTable *args;
   SoupURI *base;
-  GSimpleAsyncResult *simple;
+  GTask *task;
   JsonParser *parser;
   GrlTmdbRequestDetail detail;
   GList *details;
@@ -298,21 +298,22 @@ on_wc_request (GrlNetWc *wc,
   GError *error = NULL;
 
   if (!grl_net_wc_request_finish (wc, res, &content, &length, &error)) {
-    g_simple_async_result_set_from_error (self->priv->simple, error);
+    g_task_return_error (self->priv->task, error);
 
     goto out;
   }
 
   if (!json_parser_load_from_data (self->priv->parser, content, length, &error)) {
     GRL_WARNING ("Could not parse JSON: %s", error->message);
-    g_simple_async_result_set_from_error (self->priv->simple, error);
+    g_task_return_error (self->priv->task, error);
 
     goto out;
   }
 
+  g_task_return_boolean (self->priv->task, TRUE);
+
 out:
-  g_simple_async_result_complete_in_idle (self->priv->simple);
-  g_object_unref (self->priv->simple);
+  g_object_unref (self->priv->task);
 }
 
 /* Public functions */
@@ -541,10 +542,10 @@ grl_tmdb_request_run_async (GrlTmdbRequest *self,
     call = new_call;
   }
 
-  self->priv->simple = g_simple_async_result_new (G_OBJECT (self),
-                                                  callback,
-                                                  user_data,
-                                                  (gpointer) grl_tmdb_request_run_async);
+  self->priv->task = g_task_new (G_OBJECT (self),
+                                 cancellable,
+                                 callback,
+                                 user_data);
 
   GRL_DEBUG ("Requesting %s", call);
 
@@ -578,20 +579,14 @@ grl_tmdb_request_run_finish (GrlTmdbRequest *self,
                              GAsyncResult *result,
                              GError **error)
 {
-  GSimpleAsyncResult *simple;
-
-  if (!g_simple_async_result_is_valid (result,
-                                       G_OBJECT (self),
-                                       (gpointer) grl_tmdb_request_run_async)) {
-    return FALSE;
-  }
+  GTask *task;
 
-  simple = (GSimpleAsyncResult *) result;
-  if (g_simple_async_result_propagate_error (simple, error)) {
+  if (!g_task_is_valid (result, self)) {
     return FALSE;
   }
 
-  return TRUE;
+  task = G_TASK (result);
+  return g_task_propagate_boolean(task, error);
 }
 
 /**


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]