diff options
Diffstat (limited to 'test/glib/test-service-glib.c')
-rw-r--r-- | test/glib/test-service-glib.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/glib/test-service-glib.c b/test/glib/test-service-glib.c index e44310f3..b0043e80 100644 --- a/test/glib/test-service-glib.c +++ b/test/glib/test-service-glib.c @@ -80,6 +80,8 @@ gboolean my_object_many_uppercase (MyObject *obj, const char * const *in, char * gboolean my_object_str_hash_len (MyObject *obj, GHashTable *table, guint *len, GError **error); +gboolean my_object_send_car (MyObject *obj, GValueArray *invals, GValueArray **outvals, GError **error); + gboolean my_object_get_hash (MyObject *obj, GHashTable **table, GError **error); gboolean my_object_increment_val (MyObject *obj, GError **error); @@ -502,6 +504,32 @@ my_object_str_hash_len (MyObject *obj, GHashTable *table, guint *len, GError **e } gboolean +my_object_send_car (MyObject *obj, GValueArray *invals, GValueArray **outvals, GError **error) +{ + if (invals->n_values != 3 + || G_VALUE_TYPE (g_value_array_get_nth (invals, 0)) != G_TYPE_STRING + || G_VALUE_TYPE (g_value_array_get_nth (invals, 1)) != G_TYPE_UINT + || G_VALUE_TYPE (g_value_array_get_nth (invals, 2)) != G_TYPE_VALUE) + { + g_set_error (error, + MY_OBJECT_ERROR, + MY_OBJECT_ERROR_FOO, + "invalid incoming values"); + return FALSE; + } + *outvals = g_value_array_new (2); + g_value_array_append (*outvals, NULL); + g_value_init (g_value_array_get_nth (*outvals, (*outvals)->n_values - 1), G_TYPE_UINT); + g_value_set_uint (g_value_array_get_nth (*outvals, (*outvals)->n_values - 1), + g_value_get_uint (g_value_array_get_nth (invals, 1)) + 1); + g_value_array_append (*outvals, NULL); + g_value_init (g_value_array_get_nth (*outvals, (*outvals)->n_values - 1), DBUS_TYPE_G_OBJECT_PATH); + g_value_set_boxed (g_value_array_get_nth (*outvals, (*outvals)->n_values - 1), + g_strdup ("/org/freedesktop/DBus/Tests/MyTestObject2")); + return TRUE; +} + +gboolean my_object_get_hash (MyObject *obj, GHashTable **ret, GError **error) { GHashTable *table; |