1. 15 Mar, 2005 1 commit
  2. 13 Mar, 2005 4 commits
  3. 12 Mar, 2005 2 commits
    • Colin Walters's avatar
      2005-03-12 Colin Walters <walters@verbum.org> · 030cc1e5
      Colin Walters authored
      	* bus/driver.c (write_args_for_direction): New function,
      	parses a type signature into arguments and outputs to
      	XML.
      	(bus_driver_handle_introspect): Use it instead of
      	hardcoding XML for certain signatures.
      
      	* bus/Makefile.am (dbus-bus-introspect.xml): Add
      	dependency on dbus-daemon.
      
      	* glib/dbus-glib-tool.c (main): Parse ignore_unsupported
      	argument, pass it to dbus_binding_tool_output_glib_client.
      
      	* glib/dbus-binding-tool-glib.c
      	(generate_client_glue): Protect against multiple inclusion.
      	(dbus_binding_tool_output_glib_client): Add
      	G_BEGIN_DECLS/G_END_DECLS.
      
      	* glib/dbus-binding-tool-glib.c (compute_client_method_name):
      	Change to just take iface prefix directly.
      	(write_formal_parameters): Clarify error message.
      	(check_supported_parameters): New function; checks to see type
      	signatures of method parameters are supported.
      	(generate_client_glue): Handle ignore_unsupported flag.
      	(dbus_binding_tool_output_glib_client): Handle ignore_unsupported
      	parameter.
      
      	* glib/Makefile.am (dbus-glib-bindings.h): Pass
      	--ignore-unsupported by default until glib bindings
      	support arrays.
      030cc1e5
    • Colin Walters's avatar
      2005-03-11 Colin Walters <walters@verbum.org> · 3dea5c18
      Colin Walters authored
      	* glib/Makefile.am: Generate dbus-glib-bindings.h and
      	install it.
      
      	* bus/print-introspect.c: New file; prints introspection
      	data for a given name and object path.
      
      	* bus/run-with-tmp-session-bus.sh: New file, refactored
      	from test/glib/run-test.sh.  Creates a temporary session
      	bus and runs another program.
      
      	* test/glib/run-test.sh: Refactor to invoke
      	run-with-tmp-session-bus.sh.
      
      	* bus/driver.c (bus_driver_handle_introspect): Fix to print new
      	introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
      	macros instead of hardcoding.
      
      	* glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
      3dea5c18
  4. 11 Mar, 2005 1 commit
    • Joe Shaw's avatar
      2005-03-11 Joe Shaw <joeshaw@novell.com> · 3c1d2d65
      Joe Shaw authored
      	* dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
      	this unref; it doesn't match up evenly in some codepaths.
      	(_dbus_connection_block_pending_call): Unref at every exitpoint;
      	this evenly matches with the ref near the top of this function.
      3c1d2d65
  5. 09 Mar, 2005 3 commits
    • Joe Shaw's avatar
      2005-03-09 Joe Shaw <joeshaw@novell.com> · 59948748
      Joe Shaw authored
      	* dbus/dbus-object-tree.c
      	(_dbus_object_tree_unregister_and_unlock): If checks are enabled
      	and we try to unregister a path that's not registered, still go
      	through the process of unlocking and don't just return.
      59948748
    • Colin Walters's avatar
      2005-03-09 Colin Walters <walters@verbum.org> · 74b1b354
      Colin Walters authored
      	* glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
      	to this are generated for client-side wrappers.  Invokes a
      	D-BUS method and returns reply values.
      
      	* glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
      	function; writes signature string for argument direction.
      	(write_args_for_direction): Change to pass input values directly
      	instead of via address, and fix indentation.
      	(generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
      	make generated wrappers inlineable.
      
      	* dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
      	note about using dbus_type_is_fixed.
      
      	* dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
      	dbus/dbus-signature.c as dbus_type_is_fixed.
      
      	All callers updated.
      
      	* dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
      	from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
      
      	* dbus/dbus-signature.h: Prototype.
      
      	* glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
      	error printf code.
      
      	* test/glib/test-dbus-glib.c (main): Be sure to clear error as
      	appropriate instead of just freeing it.
      	(main): Free returned strings using g_free.
      
      	* test/glib/Makefile.am (test-service-glib-glue.h)
      	(test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
      
      	* glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
      	simply maps a simple D-BUS type to GType.
      	(dbus_dbus_type_to_gtype): Function which maps D-BUS type to
      	GType.
      	(dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
      	initialize the value with it.
      	(dbus_gvalue_binding_type_from_type): Unused, delete.
      	(dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
      	various types instead of unmarshalling to value data directly.
      	Remove can_convert boolean.
      	(dbus_gvalue_marshal): Remove duplicate initialization; switch to
      	returning directly instead of using can_convert boolean.
      	(dbus_gvalue_store): New function; not related to D-BUS per-se.
      	Stores a GValue in a pointer to a value of its corresponding C
      	type.
      
      	* glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
      	add dbus_gvalue_store.
      74b1b354
    • Joe Shaw's avatar
      2005-03-08 Joe Shaw <joeshaw@novell.com> · 2958e723
      Joe Shaw authored
      	Fix a bunch of lifecycle and memory management problems
      	in the mono bindings.
      
      	* mono/Arguments.cs (Arguments): Implement IDisposable
      
      	* mono/Bus.cs (Bus): Don't allow public instantiation.  This is
      	strictly a static class.
      
      	* mono/Connection.cs: Move the DBusObjectPathVTable and associated
      	delegates into this file.
      	(Connection): Implement IDisposable.
      	(Dispose): Disconnect the connection and set the raw connection
      	pointer to IntPtr.Zero.
      	(~Connection): Call Dispose().
      	(RegisterObjectPath): Added.  Manages the registration of object
      	paths so we can cleanly disconnect them at dispose/finalize time.
      	(UnregisterObjectPath): Ditto.
      	(set_RawConnection): Unregister all of the object paths when
      	changing the underlying DBusConnection.  Add them back onto the
      	new connection, if any.
      
      	* mono/Handler.cs: Don't implement IDisposable; it doesn't use any
      	more unmanaged resources anymore, so it's not necessary.  Move all
      	the DBusObjectPathVTable stuff out of here.
      	(Handler): Save references to our delegates so that they don't get
      	finalized.  Call Connection.RegisterObjectPath() instead of
      	dbus_connection_register_object_path() directly.
      	(Message_Called): Dispose the message after we're finished with
      	it.
      
      	* mono/Message.cs (Message): Implement IDisposable.
      	(Dispose): Dispose the Arguments, and set the RawMessage to
      	IntPtr.Zero.
      	(SendWithReplyAndBlock): We own the ref to the reply that comes
      	back from dbus_connection_send_with_reply_and_block() so add a
      	comment about that and unref it after we've constructed a managed
      	MethodReturn class around it.  Fixes a big, big leak.
      
      	* mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
      	method.
      	(BuildSignalHandler): After we've sent the Signal message, dispose
      	of it.
      	(BuildMethod): Dispose of the method call and reply messages after
      	we've sent the message and extracted the data we want from the
      	reply.
      
      	* mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
      	anymore.
      	(Service_FilterCalled): Dispose of the message after we're
      	finished with it.
      2958e723
  6. 08 Mar, 2005 1 commit
    • Joe Shaw's avatar
      2005-03-08 Joe Shaw <joeshaw@novell.com> · d96c9e46
      Joe Shaw authored
              * dbus/dbus-connection.c (dbus_connection_send_with_reply):
              After we attach our pending call to the connection, unref
              it.  Fixes a leak.
      
              * mono/Connection.cs (set_RawConnection): Disconnect our
              filter and match callbacks from the old connection and
              reconnect them to the new connection, if any.
      
      	* mono/DBusType/Array.cs: "Code" is a static member, so
      	don't use "this" to refer to it.  Fix for stricter checking
      	in Mono 1.1.4.
      
              * mono/DBusType/ObjectPath.cs (Append): Don't leak the
      	object path that we pass into unmanaged code.
      
              * mono/DBusType/String.cs (Append): Don't leak the string
      	that we pass into unmanged code.
      d96c9e46
  7. 07 Mar, 2005 1 commit
    • John Palmieri's avatar
      * NEWS: Update for 0.31 · 076664a5
      John Palmieri authored
      * configure.in: Release 0.31
        add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
      
      * qt/Makefile.am: fixed build
      
      * dbus/Makefile.am: soname bump for libdbus
      
      * glib/Makefile.am: soname bump for libdbus-glib
      076664a5
  8. 05 Mar, 2005 1 commit
    • Havoc Pennington's avatar
      2005-03-05 Havoc Pennington <hp@redhat.com> · ae94f92b
      Havoc Pennington authored
      	* dbus/dbus-sysdeps.c:
      	(pseudorandom_generate_random_bytes_buffer): fix to have no return
      	value
      	(_dbus_generate_random_bytes_buffer): fix return value
      
      	* dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
      	checks actually work, from Tom Parker <fdo@tevp.net>
      ae94f92b
  9. 02 Mar, 2005 1 commit
    • Colin Walters's avatar
      2005-03-01 Colin Walters <walters@verbum.org> · 8a66b12a
      Colin Walters authored
      	* test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
      	functions copied from dbus-glib-tool.c.
      	(main): Convert lots of error code to use them.
      	Also add some testing for introspection bits.
      8a66b12a
  10. 01 Mar, 2005 1 commit
  11. 27 Feb, 2005 1 commit
    • Colin Walters's avatar
      2005-02-27 Colin Walters <walters@verbum.org> · 2b97fb81
      Colin Walters authored
      	* glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
      	Change return value to const char * instead of int so we can do
      	full signatures.
      	(struct PropertyInfo, struct ArgInfo): Store char *.
      	(property_info_new, arg_info_new): Update parameters, strdup.
      	(property_info_unref, arg_info_unref): Free.
      
      	* glib/dbus-gidl.h: Update prototypes.
      
      	* glib/dbus-gparser.c (basic_type_from_string): Delete.
      	(validate_signature): New function, just validates signature and
      	sets GError.
      	(parse_property, parse_arg): Invoke validate_signature.  Store
      	signature instead of just type code.
      
      	* glib/dbus-gvalue.c (base_type_from_signature): New utility
      	function to return a primary type for a signature, dropping
      	information about types in container types.
      	(dbus_gvalue_genmarshal_name_from_type)
      	(dbus_gvalue_binding_type_from_type)
      	(dbus_gvalue_ctype_from_type): Update to take full signature
      	 instead of type code.
      	(dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
      
      	* glib/dbus-gvalue.h: Update prototypes for above.
      
      	* glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
      	glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
      	(introspect_properties, introspect_signals, write_interface):
      	Update to handle signatures, and remove usage of
      	_dbus_gutils_type_to_string.
      	(handle_introspect): Print out type codes instead of e.g. "string"
      	in hardcoded introspection XML; also use x_AS_STRING constants
      	instead of hardcoding in string.
      
      	* glib/dbus-glib-tool.c (pretty_print): Handle signature change
      	to string.  Remove usage of _dbus_gutils_type_to_string.
      
      	* glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
      
      	* glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
      	deletion.
      
      	* glib/dbus-binding-tool-glib.c (compute_marshaller)
      	(compute_marshaller_name, generate_glue): Handle signature change
      	to string.
      	(write_formal_parameters, write_args_for_direction): Ditto, and
      	remove FIXME.
      
      	* tools/dbus-tree-view.c (type_to_string): Delete.
      	(info_set_func_text): Update to print full signatures.
      
      	* test/glib/test-service-glib.xml: Change types to new
      	introspection format.
      2b97fb81
  12. 26 Feb, 2005 1 commit
    • Havoc Pennington's avatar
      2005-02-26 Havoc Pennington <hp@redhat.com> · ee27481d
      Havoc Pennington authored
      	* doc/TODO: remove the "guid" item
      
      	* test/glib/test-profile.c (no_bus_thread_func): use open_private
      	(with_bus_thread_func): use open_private
      
      	* dbus/dbus-connection.c (dbus_connection_open_private): new
      	function that works like the old dbus_connection_open()
      	(dbus_connection_open): now returns an existing connection if
      	possible
      
      	* dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
      	through the GUID to the transport
      
      	* dbus/dbus-server.c (_dbus_server_init_base): keep around the
      	GUID in hex-encoded form.
      
      	* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
      	pass GUID argument in to the transport
      
      	* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
      	guid argument
      
      	* dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
      
      	* dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
      ee27481d
  13. 25 Feb, 2005 1 commit
    • Havoc Pennington's avatar
      2005-02-25 Havoc Pennington <hp@redhat.com> · 7ce7502e
      Havoc Pennington authored
      	* doc/dbus-specification.xml: document the GUID thing
      
      	* dbus/dbus-server.c (_dbus_server_init_base): initialize a
      	globally unique ID for the server, and put a "guid=hexencoded"
      	field in the address
      
      	* dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
      
      	* dbus/dbus-message.c: ditto
      
      	* dbus/dbus-dataslot.c: ditto
      
      	* dbus/dbus-list.c: ditto
      
      	* dbus/dbus-internals.h: wait, just include
      	dbus-threads-internal.h here
      
      	* dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
      	use in main library
      
      	* dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
      7ce7502e
  14. 24 Feb, 2005 4 commits
    • Colin Walters's avatar
      2005-02-24 Colin Walters <walters@verbum.org> · 1b5dace8
      Colin Walters authored
      	* test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
      1b5dace8
    • John Palmieri's avatar
      glib/Makefile.am: added dbus-gobject.h to sources list · 651ca12a
      John Palmieri authored
      so distcheck doesn't fail
      651ca12a
    • Havoc Pennington's avatar
      2005-02-24 Havoc Pennington <hp@redhat.com> · cc73b3da
      Havoc Pennington authored
      	* dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
      	you must disconnect before unref, since locking and other things
      	are screwed up otherwise. Fix assorted other locking stuff.
      
      	* dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
      	fix compilation
      
      	* dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
      	into a private header and don't export from the library
      
      	* throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
      cc73b3da
    • Colin Walters's avatar
      2005-02-24 Colin Walters <walters@verbum.org> · 54a2e9f7
      Colin Walters authored
      	* dbus/dbus-signature.c: New file; implements various functions
      	related to type signatures.  Includes an interator for parsing,
      	validation functions.
      	(dbus_type_is_basic): Moved here from
      	dbus-marshal-basic.c:_dbus_type_is_basic.
      	(dbus_type_is_container): Moved here from
      	dbus-marshal-basic.c:_dbus_type_is_container.
      
      	All callers of _dbus_type_is_container and _dbus_type_is_basic
      	updated, and include dbus-signature.h.
      
      	* dbus/dbus-signature.h: New file; prototypes for the above.
      
      	* dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
      	dbus-signature.h.
      
      	* dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
      	function factored out of _dbus_first_type_in_signature.
      	(_dbus_first_type_in_signature_c_str): New function; returns first
      	type code for a type signature character.
      
      	* dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
      	handle function moves.
      
      	* dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
      
      	* dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
      	function; skips to next complete type in type signature.
      	Implemented using previous skip_one_complete_type.  Now
      	skip_one_complete_type just delegates to
      	_dbus_type_signature_next.
      
      	* dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
      	to dbus-signature.c
      	(_dbus_type_is_container): Ditto.
      
      	* doc/dbus-specification.xml: Update introspection sample to
      	use real type signatures.
      
      	* dbus/dbus-test.h: Prototype signature test.
      
      	* dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
      	signature tests.
      
      	* dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
      54a2e9f7
  15. 23 Feb, 2005 1 commit
  16. 21 Feb, 2005 2 commits
    • Colin Walters's avatar
      2005-02-21 Colin Walters <walters@verbum.org> · f9a7bcc2
      Colin Walters authored
      	* dbus/dbus-test-main.c (main): Take optional specific test
      	argument.
      
      	* dbus/dbus-test.c (run_test): New function, runs a test function
      	with no data directory.
      	(run_data_test): Like above, but takes data directory.
      	(dbus_internal_do_not_use_run_tests): Take
      	specific test argument.  Replace lots of cut n' paste code
      	with run_test and run_data_test.
      
      	* dbus/dbus-test.h: Update prototype for
      	dbus_internal_do_not_use_run_tests.
      f9a7bcc2
    • Havoc Pennington's avatar
      2005-02-20 Havoc Pennington <hp@redhat.com> · 209a5011
      Havoc Pennington authored
              Fix bugs reported by Daniel P. Berrange
      
      	* dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
      	(protected_change_watch): new function
      	(_dbus_server_toggle_watch, _dbus_server_remove_watch)
      	(_dbus_server_add_watch): change to work like the
      	dbus-connection.c equivalents; like those, probably kind of
      	busted, but should at least mostly work for now
      	(dbus_server_disconnect): drop the lock if we were already
      	disconnected, patch from Daniel P. Berrange
      
      	* dbus/dbus-server.c (_dbus_server_toggle_timeout)
      	(_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
      	same stuff
      
      	* doc/TODO: todo about unscrewing this mess
      209a5011
  17. 19 Feb, 2005 2 commits
    • Colin Walters's avatar
      2005-02-19 Colin Walters <walters@verbum.org> · 4c3d2abe
      Colin Walters authored
      	* glib/dbus-binding-tool-glib.c
      	(dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
      
      	* glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
      	as errno.h and sys/stat.h.
      	(lose): New function, prints error with
      	newline and exits.
      	(lose_gerror): Similar, but takes GError for message.
      	(main): Add --output argument to specify output file to write to,
      	instead of always printing to stdout.  In this mode, determine
      	timestamps on source files to see whether any are newer than the
      	target file.  If not, exit.  Also convert a number of error
      	messages to use lose (since it's shorter), and switch to using
      	g_io_channel_shutdown.
      4c3d2abe
    • Havoc Pennington's avatar
      2005-02-19 Havoc Pennington <hp@redhat.com> · f9bbe3c0
      Havoc Pennington authored
      	* glib/dbus-gobject.c
      	(_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
      
      	* glib/dbus-glib.c: fix doxygen warnings
      
      	* glib/dbus-gparser.c (parse_annotation): error if an annotation
      	is found on an <arg>
      f9bbe3c0
  18. 18 Feb, 2005 1 commit
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · 74ae666f
      Colin Walters authored
      	* glib/dbus-gobject.h: Don't export
      	_dbus_glib_marshal_dbus_message_to_gvalue_array.
      
      	* glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
      	(invoke_object_method): Handle it.
      
      	* glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
      	Handle rename.
      74ae666f
  19. 17 Feb, 2005 5 commits
    • Colin Walters's avatar
      *** empty log message *** · 390bab20
      Colin Walters authored
      390bab20
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · a9a4cc5f
      Colin Walters authored
      	* bus/.cvsignore, doc/.cvsignore
      	* test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
      	Update.
      a9a4cc5f
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · 24889520
      Colin Walters authored
      	* dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
      	Rename to DBUS_SERVICE_DBUS.
      	(DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
      	(DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
      	(DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
      	(DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
      	DBUS_INTERFACE_INTROSPECTABLE.
      	(DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
      	DBUS_INTERFACE_PROPERTIES.
      	(DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
      	DBUS_INTERFACE_PEER.
      	(DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
      	DBUS_INTERFACE_LOCAL.
      
      	All other users of those constants have been changed.
      
      	* bus/driver.c (bus_driver_handle_introspect): Use constants.
      
      	* glib/dbus-gobject.c (handle_introspect): Use constants.
      
      	* doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
      24889520
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · dc12fac5
      Colin Walters authored
      	* glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
      	(parse_node, parse_interface, parse_method, parse_signal)
      	(parse_property, parse_annotation): Lose if we're currently in an
      	annotation.
      	(parse_annotation): New function.
      	(parser_start_element, parser_end_element): Handle annotation.
      	(parse_method, parse_interface): Remove support for c_name attribute,
      	switch to annotations.
      
      	* glib/dbus-gidl.h (interface_info_get_binding_names)
      	(method_info_get_binding_names)
      	(interface_info_get_binding_name, method_info_get_binding_name)
      	(interface_info_set_binding_name, method_info_set_binding_name):
      	Remove.
      	(interface_info_get_annotations, method_info_get_annotations)
      	(interface_info_get_annotation, method_info_get_annotation)
      	(interface_info_add_annotation, method_info_add_annotation):
      	Prototype.
      
      	* glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
      	for "bindings".
      	(struct MethodInfo): Ditto.
      	Straightfoward conversion of binding methods into annotation methods
      	as prototyped.
      
      	* glib/dbus-glib-tool.c (pretty_print): Print annotations.
      
      	* glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
      
      	* glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
      	Use new annotation API.
      
      	* doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
      	annotation element.
      
      	* doc/dbus-specification.xml: Discuss introspection annotations,
      	include list of well-known annotations.
      
      	* test/glib/test-service-glib.xml: Make validate against new DTD.
      dc12fac5
    • Colin Walters's avatar
      2005-02-17 Colin Walters <walters@verbum.org> · 03f6615e
      Colin Walters authored
      	This patch is based on initial work from
      	Paul Kuliniewicz <kuliniew@purdue.edu>.
      
      	* glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
      	initialization of GValue from dbus type to here.
      	(dbus_gvalue_genmarshal_name_from_type): New function; generates a string
      	for the "glib-genmarshal" program from a DBus type.
      	(dbus_gvalue_binding_type_from_type): New function; turns a DBus type
      	into the C name for it we use in the glib bindings.
      	(dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
      	glib C type (not GValue).
      	(dbus_gvalue_demarshal): invoke dbus_gvalue_init.
      
      	* glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
      	from dbus-gobject.c.
      
      	* glib/dbus-gutils.h: Prototype it.
      
      	* glib/dbus-gproxy.c: Include new dbus-gobject.h.
      	(marshal_dbus_message_to_g_marshaller): Use new shared function
      	dbus_glib_marshal_dbus_message_to_gvalue_array.
      
      	* glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
      	Will be changed once we have annotations.
      
      	* glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
      	GStaticRWLock.  Callers updated.
      	(wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
      	(string_table_next): New function for iterating over zero-terminated
      	string value array.
      	(string_table_lookup): New function; retrieves specific entry in
      	array.
      	(get_method_data): New function; look up method data in object data chunk.
      	(object_error_domain_prefix_from_object_info)
      	(object_error_code_from_object_info): New functions, but not implemented yet.
      	(method_interface_from_object_info): New function; retrieve interface name.
      	(method_name_from_object_info): New function; retrieve method name.
      	(method_arg_info_from_object_info): New function; retrieve argument data.
      	(arg_iterate): New function; iterates over serialized argument data.
      	(method_dir_signature_from_object_info): New function; returns a
      	GString holding type signature for arguments for just one
      	direction (input or output).
      	(method_input_signature_from_object_info)
      	(method_output_signature_from_object_info): New functions.
      	(dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
      	converts dbus message arguments into a GValue array.  Used for both
      	signal handling and method invocation.
      	(struct DBusGlibWriteIterfaceData): New utility structure.
      	(write_interface): New function; generate introspection XML for
      	an interface.
      	(introspect_interfaces): New function; gathers all interface->methods,
      	generates introspection XML for them.
      	(handle_introspect): Invoke introspect_interfaces.
      	(get_object_property): Be sure to zero-initalize stack-allocated GValue.
      	(lookup_object_and_method): New function; examines an incoming message
      	and attempts to match it up (via interface, method name, and argument
      	signature) with a known object and method.
      	(gerror_domaincode_to_dbus_error_name): New function; converts a
      	GError domain and code into a DBus error name.  Needs GError data
      	added to object introspection to work well.
      	(gerror_to_dbus_error_message): Creates a DBusMessage error return from
      	GError.
      	(invoke_object_method): New function to invoke an object method
      	looked up via lookup_object_and_method.  Parses the incoming
      	message, turns it into a GValue array, then invokes the marshaller
      	specified in the DBusGMethodInfo.  Creates a new message with
      	either return values or error message as appropriate.
      	(gobject_message_function): Invoke lookup_object_and_method and
      	invoke_object_method.
      
      	* glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
      	(enum DBusBindingOutputMode): New enum for binding output modes.
      	(pretty_print): Print binding names.
      	(dbus_binding_tool_error_quark): GError bits.
      	(version): Fix typo.
      	(main): Create GIOChannel for output.  Parse new --mode argument,
      	possible values are "pretty-print", "glib-server", "glib-client".
      	Use mode to invoke appropriate function.
      
      	* glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
      
      	* glib/dbus-glib-tool.h: New header, just includes GError bits
      	for now.
      
      	* glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
      	maps binding style to name.
      	(struct MethodInfo): Ditto.
      	(get_hash_keys, get_hash_key): Utility function, returns keys for
      	a GHashTable.
      	(interface_info_new, method_info_new): Initialize bindings.
      	(interface_info_unref, method_info_unref): Destroy bindings.
      	(method_info_get_binding_names, method_info_get_binding_name)
      	(interface_info_get_binding_names, interface_info_get_binding_name):
      	Functions for retrieving binding names.
      	(method_info_set_binding_name, interface_info_set_binding_name):
      	Functions for setting binding names.
      
      	* glib/dbus-binding-tool-glib.h: New file, has prototypes
      	for glib binding generation.
      
      	* glib/dbus-binding-tool-glib.c: New file, implements server-side
      	and client-side glib glue generation.
      
      	* glib/Makefile.am (dbus_binding_tool_SOURCES): Add
      	dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
      	dbus-glib-tool.h.
      
      	* dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
      	of using GClosureMarshal directly.
      	(struct DBusGObjectInfo): Add n_infos member.
      
      	* test/glib/test-service-glib.xml: New file; contains introspection data
      	for MyTestObject used in test-service-glib.c.
      
      	* test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
      	(my_object_do_nothing, my_object_increment, my_object_throw_error)
      	(my_object_uppercase, my_object_many_args): New test methods.
      	(main): Use dbus_g_object_class_install_info to include generated object
      	info.
      
      	* test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
      	as well as client-side bindings.
      
      	* test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
      	(main): Activate TestSuiteGLibService; test invoke a bunch of its methods
      	using both the dbus_gproxy stuff directly as well as the generated bindings.
      03f6615e
  20. 16 Feb, 2005 1 commit
    • Havoc Pennington's avatar
      2005-02-15 Havoc Pennington <hp@redhat.com> · 9e445087
      Havoc Pennington authored
      	* dbus/dbus-connection.c (dbus_connection_dispatch): always
      	complete a pending call, don't run filters first.
      
      	* glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
      	dbus_pending_call_steal_reply
      
      	* dbus/dbus-pending-call.c (dbus_pending_call_block): just call
      	_dbus_connection_block_pending_call
      	(dbus_pending_call_get_reply): change to steal_reply and return a
      	ref
      
      	* dbus/dbus-connection.c
      	(dbus_connection_send_with_reply_and_block): port to work in terms
      	of DBusPendingCall
      	(_dbus_connection_block_pending_call): replace block_for_reply
      	with this
      9e445087
  21. 14 Feb, 2005 1 commit
  22. 13 Feb, 2005 4 commits
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · 7f2973c8
      Havoc Pennington authored
      	* dbus/dbus-connection.c (dbus_connection_return_message)
      	(dbus_connection_borrow_message): hold dispatch lock while message
      	is outstanding
      	(_dbus_connection_block_for_reply): hold dispatch lock while we
      	block for the reply, so nobody steals our reply
      	(dbus_connection_pop_message): hold the dispatch lock while we
      	pluck the message
      7f2973c8
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · 770dfe05
      Havoc Pennington authored
      	* dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
      	(_dbus_connection_release_dispatch)
      	(_dbus_connection_acquire_io_path)
      	(_dbus_connection_release_io_path): make the mutex and condvar
      	control access to the "acquired" flag. Drop the connection lock
      	while waiting on the condvar. Hopefully these are baby steps in
      	roughly the right direction.
      770dfe05
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · 46ee6086
      Havoc Pennington authored
      	* dbus/dbus-connection.c: use separate mutexes for the condition
      	variables; this is some kind of baseline for sanity, but the
      	condition variables still aren't used correctly afaict
      46ee6086
    • Havoc Pennington's avatar
      2005-02-13 Havoc Pennington <hp@redhat.com> · f349e6b8
      Havoc Pennington authored
      	* dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
      	fix a double-unlock
      
      	* dbus/dbus-connection.c
      	(_dbus_connection_detach_pending_call_unlocked): add this
      
              Initial semi-correct pass through to fix thread locking; there are
      	still some issues with the condition variable paths I'm pretty
      	sure
      
      	* dbus/dbus-server.c: add a mutex on DBusServer and appropriate
      	lock/unlock calls
      
      	* dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
      	rename to add _unlocked
      	(struct DBusConnection): move "dispatch_acquired" and
      	"io_path_acquired" to use only one bit each.
      	(CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
      	(dbus_connection_set_watch_functions): hacky fix to reentrancy
      	(_dbus_connection_add_watch, _dbus_connection_remove_watch)
      	(_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
      	(_dbus_connection_remove_timeout)
      	(_dbus_connection_toggle_timeout): drop lock when calling out to
      	user functions; done in a hacky/bad way.
      	(_dbus_connection_send_and_unlock): add a missing unlock
      	(_dbus_connection_block_for_reply): add a missing unlock
      
      	* dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
      	drop lock in a hacky probably unsafe way to call out to user
      	function
      f349e6b8