g_simple_async_result_set_op_res_gboolean
g_simple_async_result_get_op_res_gboolean
g_simple_async_result_get_source_tag
+g_simple_async_result_is_valid
g_simple_async_result_set_handle_cancellation
g_simple_async_result_complete
g_simple_async_result_complete_in_idle
+2009-01-05 Ryan Lortie <desrt@desrt.ca>
+
+ * gio.symbols:
+ * ../docs/reference/gio/gio-sections.txt:
+ * gsimpleasyncresult.h:
+ * gsimpleasyncresult.c: Add g_simple_async_result_is_valid().
+ Implementation by Dan Winship. Closes #566170.
+
2008-12-31 Matthias Clasen <mclasen@redhat.com>
* gdesktopappinfo.c:
g_simple_async_result_propagate_error
g_simple_async_result_set_error
g_simple_async_result_set_error_va
+g_simple_async_result_is_valid
g_simple_async_report_error_in_idle
g_simple_async_report_gerror_in_idle
#endif
}
/**
+ * g_simple_async_result_is_valid:
+ * @result: the #GAsyncResult passed to the _finish function.
+ * @source: the #GObject passed to the _finish function.
+ * @source_tag: the asynchronous function.
+ *
+ * Ensures that the data passed to the _finish function of an async
+ * operation is consistent. Three checks are performed.
+ *
+ * First, @result is checked to ensure that it is really a
+ * #GSimpleAsyncResult. Second, @source is checked to ensure that it
+ * matches the source object of @result. Third, @source_tag is
+ * checked to ensure that it is equal to the source_tag argument given
+ * to g_simple_async_result_new() (which, by convention, is a pointer
+ * to the _async function corresponding to the _finish function from
+ * which this function is called).
+ *
+ * Returns: #TRUE if all checks passed or #FALSE if any failed.
+ **/
+gboolean
+g_simple_async_result_is_valid (GAsyncResult *result,
+ GObject *source,
+ gpointer source_tag)
+{
+ GSimpleAsyncResult *simple;
+ GObject *cmp_source;
+
+ if (!G_IS_SIMPLE_ASYNC_RESULT (result))
+ return FALSE;
+ simple = (GSimpleAsyncResult *)result;
+
+ cmp_source = g_async_result_get_source_object (result);
+ if (cmp_source != source)
+ {
+ g_object_unref (cmp_source);
+ return FALSE;
+ }
+ g_object_unref (cmp_source);
+
+ return source_tag == g_simple_async_result_get_source_tag (simple);
+}
+
+/**
* g_simple_async_report_error_in_idle:
* @object: a #GObject.
* @callback: a #GAsyncReadyCallback.