diff options
author | Colin Walters <walters@verbum.org> | 2005-07-11 16:12:50 +0000 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2005-07-11 16:12:50 +0000 |
commit | 622cc8af6181d7e3d839ec0bdfad376648863844 (patch) | |
tree | d1c77dc4245d50c4749fd0eff18c7dcaf6115c6c /glib/examples/example-service.c | |
parent | 8c095eea8fbe2f8c219bdb2aebcf61e4e3993f53 (diff) |
2005-07-11 Colin Walters <walters@verbum.org>
* glib/dbus-gvalue.c (struct _DBusGValue): Delete.
(dbus_g_value_types_init): Remove assertion.
(dbus_g_value_get_g_type, dbus_g_value_open)
(dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
(dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
functions related to DBusGValue. Now we marshal/demarshal
structures as GValueArray.
(dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
structures.
(signature_iter_to_g_type_array): Don't call
signature_iter_to_g_type_struct.
(signature_iter_to_g_type_struct): Delete.
(dbus_gvalue_to_signature): Delete.
(dbus_gvalue_to_signature): New function with same name as other
one; we can convert structures to signatures.
(demarshal_valuearray): New function.
(get_type_demarshaller): Use it.
(demarshal_recurse): Delete.
(marshal_proxy): New function.
(marshal_map): Warn if we can't determine signature from type.
(marshal_collection_ptrarray): Ditto.
(marshal_collection_array): Ditto.
(get_type_marshaller): Use marshal_valuearray.
(marshal_recurse): Delete.
(_dbus_gvalue_test): Add some tests.
* dbus/dbus-glib.h (struct _DBusGValueIterator):
(dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
(dbus_g_value_open, dbus_g_value_iterator_get_value)
(dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
(dbus_g_value_free): Remove prototypes.
* glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
G_TYPE_VALUE_ARRAY.
* glib/examples/example-service.c:
* glib/examples/example-client.c: Implement GetTuple.
* test/glib/test-dbus-glib.c:
* test/glib/test-service-glib.c:
* test/glib/test-service-glib.xml: Add structure tests.
Diffstat (limited to 'glib/examples/example-service.c')
-rw-r--r-- | glib/examples/example-service.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/glib/examples/example-service.c b/glib/examples/example-service.c index d1f8c62e..5e58175f 100644 --- a/glib/examples/example-service.c +++ b/glib/examples/example-service.c @@ -51,7 +51,7 @@ struct SomeObjectClass G_DEFINE_TYPE(SomeObject, some_object, G_TYPE_OBJECT) gboolean some_object_hello_world (SomeObject *obj, const char *hello_message, char ***ret, GError **error); -gboolean some_object_get_tuple (SomeObject *obj, DBusGValue **ret, GError **error); +gboolean some_object_get_tuple (SomeObject *obj, GValueArray **ret, GError **error); gboolean some_object_get_dict (SomeObject *obj, GHashTable **ret, GError **error); #include "example-service-glue.h" @@ -79,9 +79,16 @@ some_object_hello_world (SomeObject *obj, const char *hello_message, char ***ret } gboolean -some_object_get_tuple (SomeObject *obj, DBusGValue **ret, GError **error) +some_object_get_tuple (SomeObject *obj, GValueArray **ret, GError **error) { - /* FIXME */ + *ret = g_value_array_new (6); + g_value_array_prepend (*ret, NULL); + g_value_init (g_value_array_get_nth (*ret, 0), G_TYPE_STRING); + g_value_set_string (g_value_array_get_nth (*ret, 0), "hello"); + g_value_array_prepend (*ret, NULL); + g_value_init (g_value_array_get_nth (*ret, 0), G_TYPE_UINT); + g_value_set_uint (g_value_array_get_nth (*ret, 0), 42); + return TRUE; } @@ -105,6 +112,14 @@ main (int argc, char **argv) guint request_name_result; g_type_init (); + + { + GLogLevelFlags fatal_mask; + + fatal_mask = g_log_set_always_fatal (G_LOG_FATAL_MASK); + fatal_mask |= G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL; + g_log_set_always_fatal (fatal_mask); + } dbus_g_object_type_install_info (SOME_TYPE_OBJECT, &dbus_glib_some_object_object_info); |