gobject-introspection r1070 - in trunk: . tests/everything
- From: johan svn gnome org
- To: svn-commits-list gnome org
- Subject: gobject-introspection r1070 - in trunk: . tests/everything
- Date: Tue, 27 Jan 2009 00:34:02 +0000 (UTC)
Author: johan
Date: Tue Jan 27 00:34:02 2009
New Revision: 1070
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=1070&view=rev
Log:
2009-01-26 Johan Dahlin <jdahlin async com br>
* tests/everything/everything.c (test_callback):
* tests/everything/everything.h:
Add a couple of callback tests.
Modified:
trunk/ChangeLog
trunk/tests/everything/everything.c
trunk/tests/everything/everything.h
Modified: trunk/tests/everything/everything.c
==============================================================================
--- trunk/tests/everything/everything.c (original)
+++ trunk/tests/everything/everything.c Tue Jan 27 00:34:02 2009
@@ -747,3 +747,68 @@
{
return x;
}
+
+/**
+ * test_callback:
+ * @callback: (scope call):
+ *
+ **/
+int
+test_callback (TestCallback callback)
+{
+ return callback();
+}
+
+/**
+ * test_callback_user_data:
+ * @callback: (scope call):
+ *
+ * Call - callback parameter persists for the duration of the method
+ * call and can be released on return.
+ **/
+int
+test_callback_user_data (TestCallbackUserData callback,
+ gpointer user_data)
+{
+ return callback(user_data);
+}
+
+/**
+ * test_callback_destroy_notify:
+ * @callback: (scope notified):
+ *
+ * Notified - callback persists until a DestroyNotify delegate
+ * is invoked.
+ **/
+int
+test_callback_destroy_notify (TestCallbackUserData callback,
+ gpointer user_data,
+ GDestroyNotify notify)
+{
+ int retval;
+
+ retval = callback(user_data);
+ if (notify)
+ notify(user_data);
+
+ return retval;
+}
+
+/**
+ * test_callback_infinte:
+ * @callback: (scope infinte):
+ *
+ * Infinite - callback persists forever.
+ **/
+
+static GSList *infinite_callbacks = NULL;
+
+int
+test_callback_infinte (TestCallbackUserData callback,
+ gpointer user_data)
+{
+ infinite_callbacks = g_slist_prepend(infinite_callbacks, callback);
+
+ return callback(user_data);
+}
+
Modified: trunk/tests/everything/everything.h
==============================================================================
--- trunk/tests/everything/everything.h (original)
+++ trunk/tests/everything/everything.h Tue Jan 27 00:34:02 2009
@@ -167,6 +167,7 @@
gboolean test_boxed_equals (TestBoxed *boxed,
TestBoxed *other);
+/* gobject */
#define TEST_TYPE_OBJ (test_obj_get_type ())
#define TEST_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), TEST_TYPE_OBJ, TestObj))
#define TEST_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), TEST_TYPE_OBJ))
@@ -187,4 +188,18 @@
TestObj* test_obj_new_from_file (const char *x, GError **error);
double test_obj_static_method (int x);
+/* callback */
+typedef int (*TestCallback) ();
+typedef int (*TestCallbackUserData) (gpointer user_data);
+
+int test_callback (TestCallback callback);
+int test_callback_user_data (TestCallbackUserData callback,
+ gpointer user_data);
+int test_callback_destroy_notify (TestCallbackUserData callback,
+ gpointer user_data,
+ GDestroyNotify notify);
+int test_callback_infinte (TestCallbackUserData callback,
+ gpointer user_data);
+
+
#endif /* __GITESTTYPES_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]