[tracker] libtracker-extract: Port tracker_extract_client API to GTask
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] libtracker-extract: Port tracker_extract_client API to GTask
- Date: Wed, 25 Nov 2015 22:30:50 +0000 (UTC)
commit 04fbc5a99611c2bbdbbe2447917f1e5d02518db8
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Nov 25 22:37:28 2015 +0100
libtracker-extract: Port tracker_extract_client API to GTask
src/libtracker-extract/tracker-extract-client.c | 61 +++++++++-------------
1 files changed, 25 insertions(+), 36 deletions(-)
---
diff --git a/src/libtracker-extract/tracker-extract-client.c b/src/libtracker-extract/tracker-extract-client.c
index 2bcba92..c993055 100644
--- a/src/libtracker-extract/tracker-extract-client.c
+++ b/src/libtracker-extract/tracker-extract-client.c
@@ -58,7 +58,7 @@ typedef struct {
typedef struct {
TrackerExtractInfo *info;
- GSimpleAsyncResult *res;
+ GTask *task;
} MetadataCallData;
static SendAndSpliceData *
@@ -111,12 +111,12 @@ send_and_splice_data_free (SendAndSpliceData *data)
static MetadataCallData *
metadata_call_data_new (TrackerExtractInfo *info,
- GSimpleAsyncResult *res)
+ GTask *task)
{
MetadataCallData *data;
data = g_slice_new (MetadataCallData);
- data->res = g_object_ref (res);
+ data->task = g_object_ref (task);
data->info = tracker_extract_info_ref (info);
return data;
@@ -126,7 +126,7 @@ static void
metadata_call_data_free (MetadataCallData *data)
{
tracker_extract_info_unref (data->info);
- g_object_unref (data->res);
+ g_object_unref (data->task);
g_slice_free (MetadataCallData, data);
}
@@ -319,7 +319,7 @@ get_metadata_fast_cb (void *buffer,
data = user_data;
if (G_UNLIKELY (error)) {
- g_simple_async_result_set_from_error (data->res, error);
+ g_task_return_error (data->task, error);
} else {
GInputStream *input_stream;
GDataInputStream *data_input_stream;
@@ -376,22 +376,21 @@ get_metadata_fast_cb (void *buffer,
g_free (sparql);
}
- g_simple_async_result_set_op_res_gpointer (data->res,
- tracker_extract_info_ref (data->info),
- (GDestroyNotify) tracker_extract_info_unref);
+ g_task_return_pointer (data->task,
+ tracker_extract_info_ref (data->info),
+ (GDestroyNotify) tracker_extract_info_unref);
}
- g_simple_async_result_complete_in_idle (data->res);
metadata_call_data_free (data);
}
static void
-get_metadata_fast_async (GDBusConnection *connection,
- GFile *file,
- const gchar *mime_type,
- const gchar *graph,
- GCancellable *cancellable,
- GSimpleAsyncResult *res)
+get_metadata_fast_async (GDBusConnection *connection,
+ GFile *file,
+ const gchar *mime_type,
+ const gchar *graph,
+ GCancellable *cancellable,
+ GTask *task)
{
MetadataCallData *data;
TrackerExtractInfo *info;
@@ -405,19 +404,16 @@ get_metadata_fast_async (GDBusConnection *connection,
gint err = errno;
g_critical ("Coudln't open pipe");
- g_simple_async_result_set_error (res,
- G_IO_ERROR,
- g_io_error_from_errno (err),
- "Could not open pipe to extractor");
- g_simple_async_result_complete_in_idle (res);
+ g_task_return_new_error (task, G_IO_ERROR,
+ g_io_error_from_errno (err),
+ "Could not open pipe to extractor");
return;
}
fd_list = g_unix_fd_list_new ();
if ((fd_index = g_unix_fd_list_append (fd_list, pipefd[1], &error)) == -1) {
- g_simple_async_result_set_from_error (res, error);
- g_simple_async_result_complete_in_idle (res);
+ g_task_return_error (task, error);
g_object_unref (fd_list);
g_error_free (error);
@@ -449,7 +445,7 @@ get_metadata_fast_async (GDBusConnection *connection,
g_free (uri);
info = tracker_extract_info_new (file, mime_type, graph);
- data = metadata_call_data_new (info, res);
+ data = metadata_call_data_new (info, task);
dbus_send_and_splice_async (connection,
message,
@@ -487,8 +483,8 @@ tracker_extract_client_get_metadata (GFile *file,
GAsyncReadyCallback callback,
gpointer user_data)
{
- GSimpleAsyncResult *res;
GError *error = NULL;
+ GTask *task;
g_return_if_fail (G_IS_FILE (file));
g_return_if_fail (mime_type != NULL);
@@ -499,18 +495,15 @@ tracker_extract_client_get_metadata (GFile *file,
connection = g_bus_get_sync (TRACKER_IPC_BUS, cancellable, &error);
if (error) {
- g_simple_async_report_gerror_in_idle (G_OBJECT (file), callback, user_data, error);
- g_error_free (error);
+ g_task_report_error (file, callback, user_data, NULL, error);
return;
}
}
- res = g_simple_async_result_new (G_OBJECT (file), callback, user_data, NULL);
- g_simple_async_result_set_handle_cancellation (res, TRUE);
-
+ task = g_task_new (file, cancellable, callback, user_data);
get_metadata_fast_async (connection, file, mime_type, graph,
- cancellable, res);
- g_object_unref (res);
+ cancellable, task);
+ g_object_unref (task);
}
/**
@@ -534,11 +527,7 @@ tracker_extract_client_get_metadata_finish (GFile *file,
g_return_val_if_fail (G_IS_ASYNC_RESULT (res), NULL);
g_return_val_if_fail (!error || !*error, NULL);
- if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (res), error)) {
- return NULL;
- }
-
- return g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (res));
+ return g_task_propagate_pointer (G_TASK (res), error);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]