|
@@ -29,6 +29,8 @@ struct QIOTask {
|
|
QIOTaskFunc func;
|
|
QIOTaskFunc func;
|
|
gpointer opaque;
|
|
gpointer opaque;
|
|
GDestroyNotify destroy;
|
|
GDestroyNotify destroy;
|
|
|
|
+ gpointer result;
|
|
|
|
+ GDestroyNotify destroyResult;
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -57,6 +59,9 @@ static void qio_task_free(QIOTask *task)
|
|
if (task->destroy) {
|
|
if (task->destroy) {
|
|
task->destroy(task->opaque);
|
|
task->destroy(task->opaque);
|
|
}
|
|
}
|
|
|
|
+ if (task->destroyResult) {
|
|
|
|
+ task->destroyResult(task->result);
|
|
|
|
+ }
|
|
object_unref(task->source);
|
|
object_unref(task->source);
|
|
|
|
|
|
g_free(task);
|
|
g_free(task);
|
|
@@ -154,6 +159,21 @@ void qio_task_abort(QIOTask *task,
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
+void qio_task_set_result_pointer(QIOTask *task,
|
|
|
|
+ gpointer result,
|
|
|
|
+ GDestroyNotify destroy)
|
|
|
|
+{
|
|
|
|
+ task->result = result;
|
|
|
|
+ task->destroyResult = destroy;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+gpointer qio_task_get_result_pointer(QIOTask *task)
|
|
|
|
+{
|
|
|
|
+ return task->result;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
Object *qio_task_get_source(QIOTask *task)
|
|
Object *qio_task_get_source(QIOTask *task)
|
|
{
|
|
{
|
|
return task->source;
|
|
return task->source;
|