From 949436ffac9e46649398e1bc9f0ddf567c88dd1c Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Fri, 17 Jun 2005 14:29:48 +0000 Subject: 2005-06-17 Colin Walters * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't spew warnings if we get malformed remote signals. * glib/dbus-gobject.c (propsig_iterate): New function. (lookup_object_info): New function, extracted from lookup_object_and_method. (introspect_properties, introspect_signals): Delete; these are merged into write_interface. (write_interface): Write out signals and properties here; dump the org.gtk.object stuff and use the interface given in the introspection data blob. Also fix up property XML. (lookup_values): New function. (introspect_interfaces): Gather a mapping from interface to a list of its methods, signals, and properties, then write out each interface. (lookup_object_and_method): Use lookup_object_info. (struct DBusGSignalClosure): Add interface. (dbus_g_signal_closure_new): Add interface. Don't dup signame; we can just use the constant data. (dbus_g_signal_closure_finalize): Don't free signal name. (signal_emitter_marshaller): Use interface from signal closure. (export_signals): Only export signals mentioned in introspection blob. (dbus_g_connection_register_g_object): Warn if we have no introspection data for an object. (funcsig_equal): Remove unused variable. (dbus_g_object_register_marshaller): Take varargs instead of list. (dbus_g_object_register_marshaller_array): New function, extracted from old dbus_g_object_register_marshaller. * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add signals and property data. (write_quoted_string): New function, extracted from generate_glue. (generate_glue): Write signals and properties to introspection blob. * dbus/dbus-glib.h (struct DBusGObjectInfo): Include exported_signals and exported_properties. (dbus_g_object_register_marshaller): Update prototype. (dbus_g_object_register_marshaller_array): Prototype. * test/glib/test-dbus-glib.c: Extend testing to cover new signals. * test/glib/test-service-glib.c: Add new test signals and method to emit them. * test/glib/test-service-glib.xml: Add some test signals. * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c and my-object-marshal.h (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add my-object-marshal.c. (my-object-marshal.c, my-object-marshal.h): Implement. * test/glib/.cvsignore: Update. * doc/TODO: Remove two GLib TODO items fixed by this patch. --- dbus/dbus-glib.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'dbus') diff --git a/dbus/dbus-glib.h b/dbus/dbus-glib.h index 80ed7f4f..4debe6fe 100644 --- a/dbus/dbus-glib.h +++ b/dbus/dbus-glib.h @@ -109,9 +109,11 @@ struct DBusGObjectInfo int format_version; /**< Allows us to change the rest of this struct * by adding DBusGObjectInfo2, DBusGObjectInfo3, etc. */ - const DBusGMethodInfo *infos; /**< Array of method pointers */ - int n_infos; /**< Length of the infos array */ + const DBusGMethodInfo *method_infos; /**< Array of method pointers */ + int n_method_infos; /**< Length of the infos array */ const char *data; /**< Introspection data */ + const char *exported_signals; /**< Exported signals */ + const char *exported_properties; /**< Exported properties */ }; void dbus_g_object_type_install_info (GType object_type, @@ -189,13 +191,16 @@ gboolean dbus_g_value_iterator_get_values (DBusGValueIterator *iter, void dbus_g_value_iterator_recurse (DBusGValueIterator *iter, DBusGValueIterator *sub); -void dbus_g_value_free (DBusGValue *value); +void dbus_g_value_free (DBusGValue *value); -void dbus_g_object_register_marshaller (GType rettype, - guint n_types, - const GType *param_types, - GClosureMarshal marshaller); +void dbus_g_object_register_marshaller (GClosureMarshal marshaller, + GType rettype, + ...); +void dbus_g_object_register_marshaller_array(GClosureMarshal marshaller, + GType rettype, + guint n_types, + const GType* types); typedef struct DBusGProxy DBusGProxy; typedef struct DBusGProxyClass DBusGProxyClass; -- cgit