summaryrefslogtreecommitdiff
path: root/gio/gdrive.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2012-08-02 15:50:35 -0400
committerDan Winship <danw@gnome.org>2012-12-18 09:07:24 -0500
commited5accf16c03cc3ec5d54a457163a747d580b49d (patch)
tree0ff7d5293a7e15cc434d2a1f03d966e95844a5be /gio/gdrive.c
parent669505e354a843efb2e198d4b56e310fa6a69b9a (diff)
downloadglib-ed5accf16c03cc3ec5d54a457163a747d580b49d.tar.gz
gio: port file/vfs-related classes from GSimpleAsyncResult to GTask
https://bugzilla.gnome.org/show_bug.cgi?id=661767
Diffstat (limited to 'gio/gdrive.c')
-rw-r--r--gio/gdrive.c56
1 files changed, 34 insertions, 22 deletions
diff --git a/gio/gdrive.c b/gio/gdrive.c
index 53c5d759e..32f784899 100644
--- a/gio/gdrive.c
+++ b/gio/gdrive.c
@@ -23,7 +23,7 @@
#include "config.h"
#include "gdrive.h"
-#include "gsimpleasyncresult.h"
+#include "gtask.h"
#include "gthemedicon.h"
#include "gasyncresult.h"
#include "gioerror.h"
@@ -388,10 +388,10 @@ g_drive_eject (GDrive *drive,
if (iface->eject == NULL)
{
- g_simple_async_report_error_in_idle (G_OBJECT (drive), callback, user_data,
- G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
- _("drive doesn't implement eject"));
-
+ g_task_report_new_error (drive, callback, user_data,
+ g_drive_eject_with_operation,
+ G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ _("drive doesn't implement eject"));
return;
}
@@ -423,6 +423,8 @@ g_drive_eject_finish (GDrive *drive,
if (g_async_result_legacy_propagate_error (result, error))
return FALSE;
+ else if (g_async_result_is_tagged (result, g_drive_eject_with_operation))
+ return g_task_propagate_boolean (G_TASK (result), error);
iface = G_DRIVE_GET_IFACE (drive);
@@ -461,13 +463,13 @@ g_drive_eject_with_operation (GDrive *drive,
if (iface->eject == NULL && iface->eject_with_operation == NULL)
{
- g_simple_async_report_error_in_idle (G_OBJECT (drive),
- callback, user_data,
- G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
- /* Translators: This is an error
- * message for drive objects that
- * don't implement any of eject or eject_with_operation. */
- _("drive doesn't implement eject or eject_with_operation"));
+ g_task_report_new_error (drive, callback, user_data,
+ g_drive_eject_with_operation,
+ G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ /* Translators: This is an error
+ * message for drive objects that
+ * don't implement any of eject or eject_with_operation. */
+ _("drive doesn't implement eject or eject_with_operation"));
return;
}
@@ -503,6 +505,8 @@ g_drive_eject_with_operation_finish (GDrive *drive,
if (g_async_result_legacy_propagate_error (result, error))
return FALSE;
+ else if (g_async_result_is_tagged (result, g_drive_eject_with_operation))
+ return g_task_propagate_boolean (G_TASK (result), error);
iface = G_DRIVE_GET_IFACE (drive);
if (iface->eject_with_operation_finish != NULL)
@@ -538,10 +542,10 @@ g_drive_poll_for_media (GDrive *drive,
if (iface->poll_for_media == NULL)
{
- g_simple_async_report_error_in_idle (G_OBJECT (drive), callback, user_data,
- G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
- _("drive doesn't implement polling for media"));
-
+ g_task_report_new_error (drive, callback, user_data,
+ g_drive_poll_for_media,
+ G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ _("drive doesn't implement polling for media"));
return;
}
@@ -571,6 +575,8 @@ g_drive_poll_for_media_finish (GDrive *drive,
if (g_async_result_legacy_propagate_error (result, error))
return FALSE;
+ else if (g_async_result_is_tagged (result, g_drive_poll_for_media))
+ return g_task_propagate_boolean (G_TASK (result), error);
iface = G_DRIVE_GET_IFACE (drive);
@@ -741,9 +747,10 @@ g_drive_start (GDrive *drive,
if (iface->start == NULL)
{
- g_simple_async_report_error_in_idle (G_OBJECT (drive), callback, user_data,
- G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
- _("drive doesn't implement start"));
+ g_task_report_new_error (drive, callback, user_data,
+ g_drive_start,
+ G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ _("drive doesn't implement start"));
return;
}
@@ -775,6 +782,8 @@ g_drive_start_finish (GDrive *drive,
if (g_async_result_legacy_propagate_error (result, error))
return FALSE;
+ else if (g_async_result_is_tagged (result, g_drive_start))
+ return g_task_propagate_boolean (G_TASK (result), error);
iface = G_DRIVE_GET_IFACE (drive);
@@ -840,9 +849,10 @@ g_drive_stop (GDrive *drive,
if (iface->stop == NULL)
{
- g_simple_async_report_error_in_idle (G_OBJECT (drive), callback, user_data,
- G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
- _("drive doesn't implement stop"));
+ g_task_report_new_error (drive, callback, user_data,
+ g_drive_start,
+ G_IO_ERROR, G_IO_ERROR_NOT_SUPPORTED,
+ _("drive doesn't implement stop"));
return;
}
@@ -874,6 +884,8 @@ g_drive_stop_finish (GDrive *drive,
if (g_async_result_legacy_propagate_error (result, error))
return FALSE;
+ else if (g_async_result_is_tagged (result, g_drive_start))
+ return g_task_propagate_boolean (G_TASK (result), error);
iface = G_DRIVE_GET_IFACE (drive);