diff options
author | Colin Walters <walters@verbum.org> | 2005-06-27 18:20:20 +0000 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2005-06-27 18:20:20 +0000 |
commit | 0c6f2bbff503c10212589c1540d06b29395587aa (patch) | |
tree | de341ef0b08f56ab97669cc2c65fb96aa1b04e71 /test/glib/test-service-glib.c | |
parent | 3427ef3d39c585ce574dfd01563de6e575217e5e (diff) |
2005-06-27 Colin Walters <walters@verbum.org>
* test/glib/test-dbus-glib.c:
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml:
Test hash table signal emitting.
* glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
types to their fundamental basis types, since this is what
marshallers operate on. Also add an entry for VOID__BOXED.
(dbus_g_object_register_marshaller_array): Convert to fundamental.
Diffstat (limited to 'test/glib/test-service-glib.c')
-rw-r--r-- | test/glib/test-service-glib.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/glib/test-service-glib.c b/test/glib/test-service-glib.c index 21c4458d..46421d70 100644 --- a/test/glib/test-service-glib.c +++ b/test/glib/test-service-glib.c @@ -79,6 +79,7 @@ gboolean my_object_get_val (MyObject *obj, guint *ret, GError **error); gboolean my_object_get_value (MyObject *obj, guint *ret, GError **error); gboolean my_object_emit_signals (MyObject *obj, GError **error); +gboolean my_object_emit_signal2 (MyObject *obj, GError **error); gboolean my_object_emit_frobnicate (MyObject *obj, GError **error); @@ -98,6 +99,7 @@ enum FROBNICATE, SIG0, SIG1, + SIG2, LAST_SIGNAL }; @@ -206,6 +208,15 @@ my_object_class_init (MyObjectClass *mobject_class) NULL, NULL, my_object_marshal_VOID__STRING_BOXED, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_VALUE); + + signals[SIG2] = + g_signal_new ("sig2", + G_OBJECT_CLASS_TYPE (mobject_class), + G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, + 0, + NULL, NULL, + g_cclosure_marshal_VOID__BOXED, + G_TYPE_NONE, 1, DBUS_TYPE_G_STRING_STRING_HASHTABLE); } GQuark @@ -438,6 +449,19 @@ my_object_emit_signals (MyObject *obj, GError **error) return TRUE; } +gboolean +my_object_emit_signal2 (MyObject *obj, GError **error) +{ + GHashTable *table; + + table = g_hash_table_new (g_str_hash, g_str_equal); + g_hash_table_insert (table, "baz", "cow"); + g_hash_table_insert (table, "bar", "foo"); + g_signal_emit (obj, signals[SIG2], 0, table); + g_hash_table_destroy (table); + return TRUE; +} + static GMainLoop *loop; #define TEST_SERVICE_NAME "org.freedesktop.DBus.TestSuiteGLibService" |