Find a file
Colin Walters e888647a70 2005-07-08 Colin Walters <walters@verbum.org>
* tools/Makefile.am: Kill of print-introspect in favor of using
	dbus-send --print-reply=literal.
	* tools/print-introspect.c: Deleted.

	* test/glib/test-service-glib.xml:
	* test/glib/test-service-glib.c (my_object_get_objs): New test
	for "ao".

	* test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
	(main): Test GetObjs.

	* glib/examples/statemachine/Makefile.am:
	* glib/examples/statemachine/sm-marshal.list:
	* glib/examples/statemachine/statemachine-client.c:
	* glib/examples/statemachine/statemachine-server.c:
	* glib/examples/statemachine/statemachine-server.xml:
	* glib/examples/statemachine/statemachine.c:
	* glib/examples/statemachine/statemachine.h:
	* glib/examples/statemachine/statemachine.xml:

	New example.

	* glib/examples/example-service.c (main): Move invocation
	of dbus_g_object_type_install_info earlier, to emphasize it
	should only be done once.

	* glib/examples/example-signal-emitter.c (main): Ditto.

	* glib/examples/Makefile.am (SUBDIRS): Include statemachine.

	* glib/dbus-gvalue.h (dbus_gtype_to_signature)
	(dbus_gvalue_marshal): Update prototypes.

	* glib/dbus-gvalue.c: Update all marshalling functions to take
	const GValue instead of GValue.
	(signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
	types.
	(dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
	change.
	(dbus_gtype_to_signature): Handle generic collecitons and maps.
	Return a newly-allocated string.
	(demarshal_proxy, demarshal_object_path, demarshal_object)
	(demarshal_strv, demarshal_ghashtable): Set error, don't assert if
	we get the wrong types from message.
	(get_type_demarshaller): New function, extracted from
	dbus_gvalue_demarshal.
	(demarshal_collection): New function, demarshals generic
	collection.
	(dbus_gvalue_demarshal): Just invoke result of
	get_type_demarshaller.  Throw error if we don't have one.
	(marshal_garray_basic): Abort on OOM.
	(get_type_marshaller): New function, extracted from
	dbus_gvalue_marshal.
	(collection_marshal_iterator, marshal_collection): New functions;
	implements generic marshalling for an iteratable specialized
	collection.
	(dbus_gvalue_marshal): Just invoke result of get_type_marshaller.

	* glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
	G_TYPE_STRING.
	(ptrarray_value_from_gvalue): Ditto.
	(ptrarray_append, ptrarray_free): New functions.
	(slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
	(slist_append, slist_end_append, slist_free): New functions.
	(dbus_g_type_specialized_builtins_init): Add append fuctions
	for GPtrArray and GSList.  Register GSList.
	(test_specialized_hash, _dbus_gvalue_utils_test): New functions.

	* glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
	New.
	(dbus_g_type_specialized_collection_init_append)
	(dbus_g_type_specialized_collection_append)
	(dbus_g_type_specialized_collection_end_append): Prototype.
	(DBusGTypeSpecializedCollectionVtable): Add append_func and
	end_append_func.

	* glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
	(dbus_g_type_specialized_collection_append)
	(dbus_g_type_specialized_collection_end_append): New functions.
	(dbus_g_type_map_value_iterate): Take const GValue.
	(dbus_g_type_collection_value_iterate): Ditto.

	* glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
	_dbus_gvalue_utils_test.

	* glib/dbus-gtest.h: Prototype it.

	* glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
	using uninitialized owner_list.
	(dbus_g_proxy_begin_call_internal): Move return_if_fail to
	public API.
	(dbus_g_proxy_end_call_internal): Update to use error set
	from dbus_gvalue_demarshal instead of setting it here.
	(dbus_g_proxy_begin_call): Move return_if_fail here.

	* glib/dbus-gobject.c (write_interface): Update for
	dbus_gtype_to_signature returning new string.

	* configure.in: Add glib/examples/statemachine.
2005-07-08 16:25:39 +00:00
bus 2005-06-16 Colin Walters <walters@verbum.org> 2005-06-16 06:05:09 +00:00
dbus 2005-07-08 Joe Shaw <joeshaw@novell.com> 2005-07-08 14:36:22 +00:00
doc 2005-06-26 Havoc Pennington <hp@redhat.com> 2005-06-27 01:37:03 +00:00
gcj 2003-06-23 Anders Carlsson <andersca@codefactory.se> 2003-06-23 17:39:48 +00:00
glib 2005-07-08 Colin Walters <walters@verbum.org> 2005-07-08 16:25:39 +00:00
mono 2005-06-16 Colin Walters <walters@verbum.org> 2005-06-16 04:32:50 +00:00
python * python/dbus_bindings.pyx.in (cunregister_function_handler, 2005-06-28 19:36:51 +00:00
qt * NEWS: Update for 0.31 2005-03-07 21:10:46 +00:00
test 2005-07-08 Colin Walters <walters@verbum.org> 2005-07-08 16:25:39 +00:00
tools 2005-07-08 Colin Walters <walters@verbum.org> 2005-07-08 16:25:39 +00:00
.cvsignore 2003-02-16 Havoc Pennington <hp@pobox.com> 2003-02-16 07:20:54 +00:00
acinclude.m4 2003-09-21 Seth Nickell <seth@gnome.org> 2003-09-22 05:45:59 +00:00
AUTHORS 2004-10-21 Colin Walters <walters@verbum.org> 2004-10-22 02:14:00 +00:00
autogen.sh 2005-01-30 Havoc Pennington <hp@redhat.com> 2005-01-31 02:55:12 +00:00
ChangeLog 2005-07-08 Colin Walters <walters@verbum.org> 2005-07-08 16:25:39 +00:00
configure.in 2005-07-08 Colin Walters <walters@verbum.org> 2005-07-08 16:25:39 +00:00
COPYING 2004-08-09 Havoc Pennington <hp@redhat.com> 2004-08-10 03:07:01 +00:00
dbus-1.pc.in 2003-04-29 Havoc Pennington <hp@redhat.com> 2003-04-29 21:56:37 +00:00
dbus-glib-1.pc.in 2003-06-22 Anders Carlsson <andersca@codefactory.se> 2003-06-22 06:53:42 +00:00
dbus-sharp.pc.in Remove glib-sharp from Libs flag. 2004-06-10 12:55:28 +00:00
Doxyfile.in 2004-06-02 Kristian Høgsberg <krh@redhat.com> 2004-06-02 13:13:14 +00:00
HACKING * News: Update 0.32 2005-03-29 18:27:35 +00:00
INSTALL initial import of "dbus" skeleton 2002-11-21 16:41:33 +00:00
Makefile.am 2005-03-20 Colin Walters <walters@verbum.org> 2005-03-21 02:31:09 +00:00
Makefile.cvs Match kde schematics 2003-11-23 08:07:04 +00:00
NEWS * NEWS: Update to 0.34 2005-06-15 18:32:32 +00:00
README add a couple of notes about libdbus vs. bindings 2004-08-10 02:18:37 +00:00
update-dbus-docs.sh 2005-01-21 Havoc Pennington <hp@redhat.com> 2005-01-21 06:18:04 +00:00

D-BUS is a simple IPC library based on messages.

See also the file HACKING for notes of interest to developers working on D-BUS.

See http://www.freedesktop.org/software/dbus/ for lots of documentation, 
mailing lists, etc.

Note
===

A core concept of the D-BUS implementation is that "libdbus" is
intended to be a low-level API, similar to Xlib. Most programmers are
intended to use the bindings to GLib, Qt, Python, Mono, Java, or
whatever. These bindings have varying levels of completeness.

Configuration flags
===

These are the dbus-specific configuration flags that can be given to
the ./configure program.

  --enable-qt      enable Qt-friendly client library
  --enable-glib    enable GLib-friendly client library
  --enable-mono    enable mono bindings
  --enable-mono-docs build mono documentation (requires monodoc)
  --enable-tests   enable unit test code
  --enable-ansi    enable -ansi -pedantic gcc flags
  --enable-verbose-mode support verbose debug mode
  --enable-asserts include assertion checks
  --enable-checks  include sanity checks on public API
  --enable-docs    build documentation (requires Doxygen and jade)
  --enable-gcov    compile with coverage profiling instrumentation (gcc only)
  --enable-python  build python bindings (reqires Pyrex >= 0.9)

  --with-xml=libxml/expat           XML library to use
  --with-init-scripts=redhat        Style of init scripts to install
  --with-session-socket-dir=dirname Where to put sockets for the per-login-session message bus
  --with-test-socket-dir=dirname    Where to put sockets for make check
  --with-system-pid-file=pidfile    PID file for systemwide daemon
  --with-system-socket=filename     UNIX domain socket for systemwide daemon


API/ABI Policy
===

D-BUS API/ABI and protocol necessarily remain in flux until we are
sure it will meet the various needs it's intended to meet. This means
we need to see some significant sample usage in the contexts of GNOME,
KDE, desktop applications, and systemwide uses such as print queue
monitoring, hotplug events, or whatever. We need the flexibility to
incorporate feedback from this sample usage.

Once we feel confident in the protocol and the API, we will release a 
version 1.0. At that point, the intent is:

 - The protocol will never be broken again; any message bus should 
   work with any client forever. However, extensions are possible
   where the protocol is extensible.

 - If the library API is modified incompatibly, we will rename it 
   as in http://ometer.com/parallel.html - in other words, 
   it will always be possible to compile against and use the older 
   API, and apps will always get the API they expect.

Until 1.0 is released, feedback that requires API changes may be
incorporated into D-BUS. This may break the API, the ABI, the
protocol, or all three.

To avoid a huge soname, the plan is to increment the soname only
between official stable releases, not with every development snapshot.
Versions numbered 0.x are considered development snapshots.

Until 1.0 is released, you have to define -DDBUS_API_SUBJECT_TO_CHANGE
just as a safety check to be sure everyone is aware of this API/ABI
policy and has the right expectations.

We do need people to test the APIs, so please do use the development
snapshots of D-BUS. They are intended to work and we do actively
address bugs.

However, if you're shipping a commercial binary-only application that
needs to keep running on M future versions of N operating systems, you
might want to include your own copy of D-BUS rather than relying on
the installed copy, for example.