summaryrefslogtreecommitdiff
path: root/client/gdaemonfileoutputstream.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@src.gnome.org>2007-09-13 13:05:15 +0000
committerAlexander Larsson <alexl@src.gnome.org>2007-09-13 13:05:15 +0000
commitfcfd94ae7b7580811dc307502efa3460d1a1446f (patch)
treecb018437437af2b831aae99e156bf4ef85186a35 /client/gdaemonfileoutputstream.c
parent22343f6ac37cfd0838a4a721f93cbda045e2217f (diff)
downloadgvfs-fcfd94ae7b7580811dc307502efa3460d1a1446f.tar.gz
Convert the rest of GInputStream to the new async API model
Original git commit by Alexander Larsson <alexl@redhat.com> at 1177595433 +0200 svn path=/trunk/; revision=482
Diffstat (limited to 'client/gdaemonfileoutputstream.c')
-rw-r--r--client/gdaemonfileoutputstream.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/client/gdaemonfileoutputstream.c b/client/gdaemonfileoutputstream.c
index f3256d2e..9933e139 100644
--- a/client/gdaemonfileoutputstream.c
+++ b/client/gdaemonfileoutputstream.c
@@ -953,7 +953,7 @@ typedef struct AsyncIterator AsyncIterator;
typedef void (*AsyncIteratorDone) (GOutputStream *stream,
gpointer op_data,
- gpointer callback,
+ GAsyncReadyCallback callback,
gpointer callback_data,
GError *io_error);
@@ -965,7 +965,7 @@ struct AsyncIterator {
state_machine_iterator iterator;
gpointer iterator_data;
int io_priority;
- gpointer callback;
+ GAsyncReadyCallback callback;
gpointer callback_data;
};
@@ -1044,13 +1044,19 @@ async_read_op_callback (GObject *source_object,
}
static void
-async_skip_op_callback (GInputStream *stream,
- gsize count_requested,
- gssize count_skipped,
- gpointer data,
- GError *error)
+async_skip_op_callback (GObject *source_object,
+ GAsyncResult *res,
+ gpointer user_data)
{
- async_op_handle ((AsyncIterator *)data, count_skipped, error);
+ GInputStream *stream = G_INPUT_STREAM (source_object);
+ gssize count_skipped;
+ GError *error = NULL;
+
+ count_skipped = g_input_stream_skip_finish (stream, res, &error);
+
+ async_op_handle ((AsyncIterator *)user_data, count_skipped, error);
+ if (error)
+ g_error_free (error);
}
static void
@@ -1097,8 +1103,8 @@ async_iterate (AsyncIterator *iterator)
g_input_stream_skip_async (file->data_stream,
io_data->io_size,
iterator->io_priority,
- async_skip_op_callback, iterator,
- io_data->io_allow_cancel ? iterator->cancellable : NULL);
+ io_data->io_allow_cancel ? iterator->cancellable : NULL,
+ async_skip_op_callback, iterator);
}
else if (io_op == STATE_OP_WRITE)
{
@@ -1117,7 +1123,7 @@ run_async_state_machine (GDaemonFileOutputStream *file,
state_machine_iterator iterator_cb,
gpointer iterator_data,
int io_priority,
- gpointer callback,
+ GAsyncReadyCallback callback,
gpointer data,
GCancellable *cancellable,
AsyncIteratorDone done_cb)
@@ -1204,9 +1210,9 @@ g_daemon_file_output_stream_write_async (GOutputStream *stream,
(state_machine_iterator)iterate_write_state_machine,
op,
io_priority,
- callback, data,
+ (gpointer)callback, data,
cancellable,
- async_write_done);
+ (gpointer)async_write_done);
}
static void
@@ -1279,7 +1285,7 @@ g_daemon_file_output_stream_close_async (GOutputStream *stream,
run_async_state_machine (file,
(state_machine_iterator)iterate_close_state_machine,
op, io_priority,
- callback, data,
+ (gpointer)callback, data,
cancellable,
- async_close_done);
+ (gpointer)async_close_done);
}