summaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* 2005-07-01 Colin Walters <walters@verbum.org>Colin Walters2005-07-011-0/+9
| | | | | | | | | Patch from Jonathan Matthew <jonathan@kaolin.hn.org> * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type. (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE, G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32, and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
* 2005-06-30 Colin Walters <walters@verbum.org>Colin Walters2005-06-301-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/glib/test-dbus-glib.c: * test/glib/test-service-glib.c: * test/glib/test-service-glib.xml: Update tests for new error setting bits, also add async tests (patch from Ross Burton). * test/glib/Makefile.am (test_service_glib_LDADD): Add DBUS_GLIB_THREADS_LIBS. * glib/dbus-gproxy.c (get_name_owner) (dbus_g_pending_call_end_valist): Ditto. * glib/dbus-gobject.c (error_metadata): New mapping from GError domain (GQuark) to DBusGErrorInfo. (gerror_domaincode_to_dbus_error_name): Attempt to look up error quark in error_metadata. Take message interface as default error message interface. (gerror_to_dbus_error_message): Pass message interface. (dbus_set_g_error): Resurrected. (dbus_g_error_info_free): New function. (dbus_g_object_type_install_info): Use g_type_class_ref instead of _peek to actually create the object class if it hasn't been created yet. (dbus_g_error_domain_register): New function. * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error. * glib/dbus-gparser.c (validate_signature): Ditto. * dbus/dbus-glib.h (dbus_g_error_set): Delete. (dbus_g_error_domain_register): Prototype. * glib/dbus-glib.c (dbus_g_error_set): Delete. Update tests.
* 2005-06-29 Colin Walters <walters@verbum.org>Colin Walters2005-06-291-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add DBUS_TYPE_G_OBJECT_PATH. * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH. (dbus_g_object_path_get_g_type): New function. (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH to DBUS_TYPE_G_OBJECT_PATH by default. (demarshal_proxy): Remove unused name variable. (demarshal_object_path, marshal_object_path): New functions. (demarshal_proxy_array, marshal_proxy_array): Delete. * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map DBUS_TYPE_G_OBJECT_PATH to char *. (dbus_g_type_get_lookup_function): Map builtin DBUS_TYPE_G_OBJECT_PATH. * test/glib/test-dbus-glib.c * test/glib/test-service-glib.c (my_object_objpath): Adapt tests to new object path marshalling.
* * configure.in: force check for Python >= 2.4John (J5) Palmieri2005-06-291-0/+4
|
* 2005-06-29 Colin Walters <walters@verbum.org>Colin Walters2005-06-291-0/+7
| | | | | | | Patch from Ross Burton <ross@openedhand.com> * glib/dbus-gobject.c (invoke_object_method): Unset object value in all cases, not only in async case.
* 2005-06-29 Colin Walters <walters@verbum.org>Colin Walters2005-06-291-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member name_call for keeping track of any outgoing GetNameOwner call. Also add for_owner and associated. (struct _DBusGProxyManager): Add owner_names, which is hash table that maps a base name to a list of names it owns (that we're interested in). Add pending_nameowner_calls which is a list of all outstanding GetNameOwner; avoids us having to iterate over every proxy. Add unassociated_proxies which keeps track of name proxies with no associated name owner. (dbus_g_proxy_manager_unref): Destroy owner_names. (struct DBusGProxyNameOwnerInfo): New struct for keeping track of name refcounts. (find_name_in_info, name_owner_foreach) (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo) (dbus_g_proxy_manager_monitor_name_owner) (dbus_g_proxy_manager_unmonitor_name_owner) (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner): New functions; they manipulate the owner_names mapping. (got_name_owner_cb): New function. (get_name_owner): New function, extracted from dbus_g_proxy_new_for_name_owner. (dbus_g_proxy_manager_register): For now we need to keep track of all NameOwnerChanged. Also if the proxy is for a name, if we don't already know the name owner, queue a new GetNameOwner request and add it to our list of unassociated proxies. Otherwise inc the refcount. (dbus_g_proxy_manager_unregister): If this proxy is for a name, cancel any pending GetNameOwner call, etc. (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use the owner_names mapping to look up the current names for the signal source, and dispatch to any proxies for that name. (dbus_g_proxy_new): Initialize new members. (dbus_g_proxy_new_for_name): Delete unused proxy variable. (dbus_g_proxy_new_for_name_owner): Use get_name_owner. (dbus_g_pending_call_end_valist): New function, extracted from dbus_g_proxy_end_call_internal. Useful when we don't have a proxy but want to use the GLib infrastructure. Also note how many arguments in reply were over. (dbus_g_pending_call_end): New function, just call dbus_g_pending_call_end_valist. (dbus_g_proxy_end_call_internal): Just call dbus_g_pending_call_end_valist. * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup of builtin marshaller for STRING_STRING_STRING. * test/glib/test-dbus-glib.c: * test/glib/test-service-glib.c: * test/glib/test-service-glib.xml: Extend tests to cover name proxies, destruction of owner proxies, etc. * glib/examples/example-signal-recipient.c (dbus_g_proxy_new_for_name_owner): Create a name proxy. * tools/dbus-send.c (main): Print D-BUS error name in addition to message.
* * python/dbus_bindings.pyx.in (cunregister_function_handler,John (J5) Palmieri2005-06-281-0/+8
| | | | | | | cmessage_function_handler): Patch from Anthony Baxter <anthony@interlink.com.au> fixes threading problems by using the Py_GILState_Ensure/Release to synchronize with the python runtime.
* 2005-06-28 Ray Strode <rstrode@redhat.com>Ray Strode2005-06-281-0/+5
| | | | | * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill babysitter helper process on last unref, bug #2813.
* 2005-06-27 Colin Walters <walters@verbum.org>Colin Walters2005-06-271-0/+12
| | | | | | | | | | | | * 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.
* 2005-06-26 Havoc Pennington <hp@redhat.com>Havoc Pennington2005-06-271-0/+5
| | | | | * doc/dbus-tutorial.xml: fix names of interface/service/path, fix from Don Park
* 2005-06-26 Colin Walters <walters@verbum.org>Colin Walters2005-06-261-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * glib/dbus-glib.c (dbus_set_g_error): Delete. (dbus_g_error_set): New public function from its ashes; used by both service-side method implementation and GLib bindings internals. (dbus_g_error_has_name, dbus_g_error_get_name): New function. (_dbus_glib_test): Add some tests. * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name. * test/glib/test-service-glib.c (my_object_throw_error): Use dbus_g_error_set. * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle errors thrown by dbus_g_error_set. * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set. * glib/dbus-gparser.c (validate_signature): Ditto. * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner) (dbus_g_proxy_end_call_internal): Ditto. * glib/Makefile.am: Generate dbus-glib-error-switch.h, which converts DBUS_ERROR_x to DBUS_GERROR_x. (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it. * doc/TODO: Remove error TODO. * doc/dbus-tutorial.xml: Update with documentation about error handling. * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
* 2005-06-22 Colin Walters <walters@verbum.org>Colin Walters2005-06-221-0/+6
| | | | | | Patch from Ross Burton <ross@openedhand.com> * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
* 2005-06-20 Colin Walters <walters@verbum.org>Colin Walters2005-06-211-0/+17
| | | | | | | | | | | | | | | | | * configure.in: Add glib/examples. * glib/Makefile.am: Add examples/ * glib/examples/.cvsignore * glib/examples/Makefile.am * glib/examples/example-client.c * glib/examples/example-service.c * glib/examples/example-service.xml * glib/examples/example-signal-emitter.c * glib/examples/example-signal-emitter.xml * glib/examples/example-signal-recipient.c: New files; GLib binding examples, ported from python/examples.
* 2005-06-20 Colin Walters <walters@verbum.org>Colin Walters2005-06-211-0/+10
| | | | | | | | | | * dbus/dbus-glib.h: * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to dbus_g_proxy_call. * glib/dbus-binding-tool-glib.c: * doc/dbus-tutorial.xml: * test/glib/test-dbus-glib.c: Update for rename.
* 2005-06-20 Colin Walters <walters@verbum.org>Colin Walters2005-06-201-0/+10
| | | | | | | | | | Patch suggested by Ross Burton <ross@openedhand.com> * glib/dbus-gobject.c (export_signals): Free signal name. (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug memory leak. Add a bit of documentation. (dbus_g_method_return_error): Free context, and note we do so.
* 2005-06-18 Murray Cumming <murrayc@murrayc.com>Murray Cumming2005-06-191-0/+11
| | | | | | | | | | | * dbus/dbus-glib.h: * glib/dbus-gobject.c: * glib/dbus-gproxy.c: * glib/dbus-gvalue.c: Predeclare structs as typedef struct _Something Something instead of typedef struct Something Something, so we can redeclare the prototypes. Other GNOME libraries do this already.
* 2005-06-17 Colin Walters <walters@verbum.org>Colin Walters2005-06-171-0/+5
| | | | | * tools/dbus-names-model.c (have_names_notify): Fix call to dbus_g_proxy_end_call.
* 2005-06-17 Colin Walters <walters@verbum.org>Colin Walters2005-06-171-0/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+4
| | | | * doc/TODO: Update for GLib bindings.
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-5/+12
| | | | | | | * glib/dbus-binding-tool-glib.c: * glib/dbus-gobject.c: * glib/dbus-gproxy.c: Add Nokia copyright; Patch from Ross Burton, for his GLib bindings work.
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+7
| | | | | | | * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params to iterate instead of walking to G_TYPE_INVALID. Patch based on a patch from Ryan Gammon.
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+5
| | | | | * bus/bus.c (bus_context_new): Set parser to NULL after we unref it (Patch from Chris Boscolo, #2174).
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+12
| | | | | | | | | | | | * python/dbus_bindings.pyx.in: Import size_t, __int64_t, __uint64_t, and __signed. * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte): Define cmsg struct, output it. (_dbus_read_credentials_unix_socket): Use cmsg struct. Patch from Joe Markus Clarke for FreeBSD support.
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+10
| | | | | | | | | | * tools/dbus-send.c (append_array): Use strtok. (append_dict): New function. (type_from_name): New function, extracted from main. (main): Handle sending dicts. * tools/dbus-print-message.c (print_iter): Print dict entries.
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+5
| | | | | * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string values as the empty string (#2948).
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+8
| | | | | | | | * dbus/Makefile.am: * mono/doc/Makefile.am: * test/glib/Makefile.am: Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
* 2005-06-16 Colin Walters <walters@verbum.org>Colin Walters2005-06-161-0/+9
| | | | | | | | | * dbus/dbus-marshal-header.c (_dbus_header_load): Set header byte order from expected byte order (Patch from Chris Wilson, #3475). * dbus/dbus-marshal-byteswap.c (byteswap_body_helper): Increment pointer after swapping fixed array. Add assertion for array length.
* 2005-06-15 Colin Walters <walters@verbum.org>Colin Walters2005-06-151-0/+5
| | | | | * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket): Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
* * NEWS: Update to 0.34dbus-0.34.0John (J5) Palmieri2005-06-151-0/+11
|
* * dbus/dbus-connection.c (_dbus_connection_peer_filter): New methodJohn (J5) Palmieri2005-06-151-0/+12
| | | | | | | | | | | (_dbus_connection_run_builtin_filters): New method (dbus_connection_dispatch): Run the builtin filters which in turn runs the peer filter which handles Ping messages. * doc/TODO: - Ping isn't handled: This patch fixes it - Add a test case for the Ping message: added TODO item
* * dbus/dbus-message.c:John (J5) Palmieri2005-06-151-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | (dbus_message_has_path): New method (dbus_message_has_interface): New method (dbus_message_has_member): New method * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user): New method * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that the keyring directory is private to the user * doc/TODO: - The convenience functions in dbus-bus.h should perhaps have the signatures that they would have if they were autogenerated stubs. e.g. the acquire service function. We should also evaluate which of these functions to include, in light of the fact that GLib/Qt native stubs will probably also exist.: Punted - add dbus_message_has_path(), maybe has_member/interface: fixed in this patch - in dbus-keyring.c, enforce that the keyring dir is not world readable/writable: Fixed in this patch
* * dbus/dbus-marshal-validate.h: Added a new validationJohn (J5) Palmieri2005-06-151-0/+24
| | | | | | | | | | | | | | | | | | | | | | | error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for out of memory errors when validating signitures * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used DBUS_VALID and a FALSE return value to indicate OOM * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason): Use a stack to track the number of elements inside containers. The stack values are then used to validate that dict entries have only two elements within them. (validate_body_helper): check the reason for failure when validating varients * dbus/dbus-message.c (load_message): use DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used DBUS_VALID and a FALSE return value to indicate OOM * doc/TODO: remove "- validate dict entry number of fields" as this patch fixes it
* 2005-06-14 David Zeuthen <davidz@redhat.com>David Zeuthen2005-06-151-0/+22
| | | | | | | | | | | | | | | | | | | | | | * bus/bus.c (process_config_every_time): Drop existing conf-dir watches (if applicable) and add new watches * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY (main): Setup SIGIO signal handler if using D_NOTIFY * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list (merge_included): Also merge conf_dirs list (bus_config_parser_unref): Clear conf_dirs list (include_dir): Add directory to conf_dirs list (bus_config_parser_get_conf_dirs): New function * bus/dir-watch.[ch]: New files * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch] * configure.in: Add checks for D_NOTIFY on Linux
* 2005-06-14 Colin Walters <walters@verbum.org>Colin Walters2005-06-141-0/+6
| | | | | | * glib/dbus-binding-tool-glib.c: * glib/dbus-gobject.c: * glib/dbus-gvalue.c: Fix indentation and brace style.
* 2005-06-14 Ross Burton <ross@burtonini.com>.Colin Walters2005-06-141-0/+13
| | | | | | | | | | | | | * glib/dbus-glib.h: Make DBusGMethodInvocation a private structure. Rearrange prototypes a bit. * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add documentation for first_arg_type. * glib/dbus-gobject.c: Move DBusGMethodInvocation here, add documentation. Move dbus_g_method_return and dbus_g_method_return_error into public API section.
* 2005-06-14 Colin Walters <walters@verbum.org>Colin Walters2005-06-141-0/+5
| | | | | * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Add missing return statements, noticed by Ross Burton.
* 2005-06-13 Ross Burton <ross@burtonini.com>.Colin Walters2005-06-131-0/+6
| | | | | | * glib/dbus-gobject.c: Handle errors on message demarshalling by sending error message back. * glib/dbus-gvalue.c: Initialize return variables.
* 2005-06-13 Colin Walters <walters@verbum.org>Colin Walters2005-06-131-0/+4
| | | | * glib/Makefile.am: Fix thinko in last patch.
* 2005-06-13 Colin Walters <walters@verbum.org>Colin Walters2005-06-131-0/+6
| | | | | | * glib/Makefile.am: Move dbus-gtype-specialized.c and dbus-gtype-specialized.h into a _HEADERS variable, install them.
* 2005-06-12 Colin Walters <walters@verbum.org>Colin Walters2005-06-131-0/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Async signals and various bugfixes and testing by Ross Burton <ross@burtonini.com>. * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete. (dbus_gvalue_genmarshal_name_from_type) (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c. (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature. (dbus_g_value_types_init, dbus_gtype_from_signature) (dbus_gtype_from_signature_iter, dbus_gtype_to_signature) (dbus_gtypes_from_arg_signature): New function prototypes. (dbus_gvalue_demarshal): Take context and error arguments. (dbus_gvalue_demarshal_variant): New function. (dbus_gvalue_demarshal_message): New function. (dbus_gvalue_store): Delete. * glib/dbus-gvalue.c: File has been almost entirely rewritten; now we special-case more types such as DBUS_TYPE_SIGNATURE, handle arrays and hash tables correctly, etc. Full support for recursive values is not yet complete. * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last argument of signal to G_TYPE_POINTER since we now pass a structure. (lookup_g_marshaller): Delete in favor of _dbus_gobject_lookup_marshaller. (marshal_dbus_message_to_g_marshaller): Use _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message to handle remote signal callbacks. (dbus_g_proxy_new_from_proxy): New function; creates a new DBusGProxy by copying an existing one. (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface) (dbus_g_proxy_get_path): New functions. (dbus_g_proxy_marshal_args_to_message): New function; factored out of existing code. (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments from a varargs array. (dbus_g_proxy_begin_call_internal): New function. (dbus_g_proxy_end_call_internal): New function. (dbus_g_proxy_begin_call): Take GTypes instead of DBus types as arguments; simply invoke dbus_g_proxy_begin_call_internal after collecting args into value array. (dbus_g_proxy_end_call): Take GTypes instead of DBus types; invoke dbus_g_proxy_end_call_internal. (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and end_call_internal. (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus types. (array_free_all): New function. (dbus_g_proxy_add_signal): Take GTypes. * glib/dbus-gobject.h: (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller): Prototype. * glib/dbus-gobject.c: Add a global marshal_table hash which stores mappings from type signatures to marshallers. Change lots of invocations of dbus_gtype_to_dbus_type to dbus_gtype_to_signature. (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete. (introspect_signals): Fix test for query.return_type. (set_object_property): Update invocation of dbus_gvalue_demarshal. (invoke_object_method): Many changes. Handle asynchronous invocations. Convert arguments with dbus_gvalue_demarshal_message. Handle errors. Use DBusSignatureIter instead of strlen on args. Handle all arguments generically. Special-case variants. (dbus_g_method_return, dbus_g_method_return_error): New function. (DBusGSignalClosure): New structure, closes over signal information. (dbus_g_signal_closure_new): New function. (dbus_g_signal_closure_finalize): New function. (signal_emitter_marshaller): New function; is special marshaller which emits signals on bus. (export_signals): New function; introspects object signals and connects to them. (dbus_g_object_type_install_info): Take GType instead of GObjectClass. (dbus_g_connection_register_g_object): Invoke export_signals. (dbus_g_connection_lookup_g_object): New function. (DBusGFuncSignature) New structure; used for mapping type signatures to marshallers. (funcsig_hash): New function; hashes DBusGFuncSignature. (funcsig_equal): New function; compares DBusGFuncSignature. (_dbus_gobject_lookup_marshaller): New function. (dbus_g_object_register_marshaller): New function; used to register a marshaller at runtime for a particular signature. * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests. * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC which notes a server method implementation should be asynchronous. * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call dbus_g_value_types_init. (write_formal_parameters): Use dbus_gtype_from_signature. Handle variants specially. (dbus_g_type_get_lookup_function): Turn GType into an invocation of a lookup function. (write_args_for_direction): Use dbus_g_type_get_lookup_function. (write_untyped_out_args): New method; write output arguments. (write_formal_declarations_for_direction): Function for writing prototypes. (write_formal_parameters_for_direction): Function for writing implementations. (write_typed_args_for_direction): Function for writing arguments prefixed with GTypes. (write_async_method_client): Write out async version of method. * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h. (dbus_g_type_get_marshal_name): Move mapping from GType to marshal name into here. (dbus_g_type_get_c_name): Move into here. (compute_marshaller): Convert signature to type with dbus_gtype_from_signature, use dbus_g_type_get_marshal_name. (compute_marshaller_name): Ditto. (compute_marshaller): Handle async signal annotations. (gather_marshallers): Return if we don't have a known prefix. (generate_glue): Collect introspection blob here, and write all of the blob at the end. This allows an object with multiple interfaces to work. Mark async methods in introspection blob. * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add dbus-gtype-specialized.c, dbus-gtype-specialized.h, dbus-gvalue-utils.h, dbus-gvalue-utils.c. * dbus/dbus-glib.h: Don't include dbus-protocol.h; this avoids people accidentally using DBUS_TYPE_* which should not be necessary anymore. Do include dbus-gtype-specialized.h, which are utilities for GLib container types. Add various #defines for types such as DBUS_TYPE_G_BOOLEAN_ARRAY. (DBusGValueIterator, DBusGValue): Define, not fully used yet. (dbus_g_value_get_g_type): Type for recursive 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): Prototypes. (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype. (dbus_g_proxy_set_interface): Prototype. (dbus_g_proxy_begin_call, dbus_g_proxy_end_call) (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus types. (dbus_g_proxy_get_path, dbus_g_proxy_get_interface): Accessors. (DBusGAsyncData, DBusGMethodInvocation): Structures for doing async invocations. (dbus_g_method_return, dbus_g_method_return_error): Prototypes. * doc/dbus-tutorial.xml: Update GLib section. * tools/dbus-viewer.c (load_child_nodes): Update for new invocation type of dbus_g_proxy_end_call. (load_from_service_thread_func): Ditto. * tools/print-introspect.c (main): Ditto. * tools/dbus-names-model.c (have_names_notify) (names_model_reload, names_model_set_connection) Use GTypes. * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION, needed since Python bindings use GLib bindings. * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION. Add --prefix argument. * tools/Makefile.am: Define DBUS_COMPILATION. Remove unneeded --ignore-unsupported arg. * test/glib/test-service-glib.c: * test/glib/test-service-glib.xml: * test/glib/test-dbus-glib.c: Add many more tests.
* 2005-06-06 David Zeuthen <davidz@redhat.com>David Zeuthen2005-06-061-0/+9
| | | | | | | | | * doc/TODO: Add item about need to remove deprecated functions. * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect * dbus/dbus-connection.c (dbus_connection_disconnect): New function to repair the ABI which was broken with the last commit.
* * doc/TODO: remove connection_open/connection_disconnect lacks symmetry ↵John (J5) Palmieri2005-06-021-1/+2
| | | | item that was just fixed
* * tools/dbus-send.c (main):John (J5) Palmieri2005-06-021-0/+10
| | | | | | | | | | s/dbus_connection_disconnect/dbus_connection_close * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func): s/dbus_connection_disconnect/dbus_connection_close * test/test-service.c (path_message_func, filter_func): s/dbus_connection_disconnect/dbus_connection_close
* * dbus/dbus-connection.c, dbus/dbus-connection.hJohn (J5) Palmieri2005-06-021-0/+22
| | | | | | | | | | | | | | | | | | | | | (dbus_connection_disconnect): renamed to dbus_connection_close for API symmetry with dbus_connection_open (_dbus_connection_open_internal): s/dbus_connection_disconnect/dbus_connection_close * dbus/dbus-bus.c (dbus_bus_get): s/dbus_connection_disconnect/dbus_connection_close * bus/connection.c (bus_connections_unref, bus_connections_setup_connection, bus_connections_expire_incomplete): s/dbus_connection_disconnect/dbus_connection_close * bus/dispatch.c (bus_dispatch, kill_client_connection, kill_client_connection_unchecked, check_hello_connection): s/dbus_connection_disconnect/dbus_connection_close * bus/bus.c (new_connection_callback): s/dbus_connection_disconnect/dbus_connection_close
* 2005-05-25 Colin Walters <walters@verbum.org>Colin Walters2005-05-251-0/+8
| | | | | | | | * dbus/dbus-protocol.h: Move various bus service #defines such as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to dbus/dbus-shared.h. * dbus/dbus-shared.h: Various defines moved here. * dbus/dbus-marshal-header.c: Include dbus-shared.h.
* * python/__init__.py: Python bindings deserve a minor versionJohn (J5) Palmieri2005-05-241-0/+5
| | | | update. Upped to (0, 40, 2)
* * python/decorators.py: add explicitly_pass_message decoratorJohn (J5) Palmieri2005-05-241-0/+14
| | | | | | | | | | | | | | | for passing in the dbus message as keyword for edge case signal handling * python/matchrules.py (SignalMatchRule.__repr__): fix output to conform with what dbus expects for match rules (SignalMatchRule.execute): add the dbus message as a keyword if the signal handler has requested it * python/examples/example/signal-recipient.py: added some more examples on how to hook up to signals * python/proxies.py: minor formatting changes
* * python/decorators.py: import dbus_bindingsJohn (J5) Palmieri2005-05-241-0/+12
| | | | | | | | | | * python/matchrules.py (SignalMatchRule, SignalMatchTree, SignalMatchNode): new classes that implement wildcard signal callback matching using a tree lookup. Heavily modified from a patch sent by Celso Pinto (fd.o bug #3241) * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func): use new match classes to handle signals.
* - s/TYPE_PATH/TYPE_OBJECT_PATHJohn (J5) Palmieri2005-05-191-0/+4
|
* 2005-05-18 Havoc Pennington <hp@redhat.com>Havoc Pennington2005-05-181-0/+8
| | | | | | | | * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require gettext. Not really worth requiring yet perhaps, but any production quality 1.0 would require it so we should go ahead and get things set up. We do have a couple token calls to bindtextdomain in the code already.