summaryrefslogtreecommitdiffstats
path: root/dbus
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2005-06-17 14:29:48 +0000
committerColin Walters <walters@verbum.org>2005-06-17 14:29:48 +0000
commit949436ffac9e46649398e1bc9f0ddf567c88dd1c (patch)
treed8bad3f3ffa5813a7e99726b66bba3de8aafc319 /dbus
parent679018f00c7277ecd6272cb1be5dfdedf134c422 (diff)
2005-06-17 Colin Walters <walters@verbum.org>
* 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.
Diffstat (limited to 'dbus')
-rw-r--r--dbus/dbus-glib.h19
1 files changed, 12 insertions, 7 deletions
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;