summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2003-04-11 00:03:06 +0000
committerHavoc Pennington <hp@redhat.com>2003-04-11 00:03:06 +0000
commit6be547d32f018c23ba56426a0bccd08baa2cf440 (patch)
tree00edf1d2628538d66d3f5db7a998c18ffc30ce04 /doc
parent7074a2469521949c706f3b9d789d7c8eb9f3ac85 (diff)
2003-04-10 Havoc Pennington <hp@redhat.com>
* dbus/dbus-connection.c (dbus_connection_flush): don't spin on the connection if it's disconnected * bus/activation.c (bus_activation_service_created): use new transaction features to roll back removal of pending activation if we don't successfully create the service after all. Don't remove pending activation if the function fails. * dbus/dbus-list.c (_dbus_list_insert_before_link) (_dbus_list_insert_after_link): new code to facilitate services.c fixes * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated): new functionality, so we can preallocate the ability to insert into a hash table. * bus/connection.c (bus_transaction_add_cancel_hook): new function allowing us to put custom hooks in a transaction to be used for cancelling said transaction * doc/dbus-specification.sgml: add some discussion of secondary service owners, and disallow zero-length service names * bus/services.c (bus_registry_acquire_service): new function, splits out part of bus_driver_handle_acquire_service() and fixes a bug where we didn't remove the service doing the acquiring from the secondary queue if we failed to remove the current owner from the front of the queue.
Diffstat (limited to 'doc')
-rw-r--r--doc/dbus-specification.sgml40
1 files changed, 28 insertions, 12 deletions
diff --git a/doc/dbus-specification.sgml b/doc/dbus-specification.sgml
index 109e964f..a464a0d6 100644
--- a/doc/dbus-specification.sgml
+++ b/doc/dbus-specification.sgml
@@ -1084,13 +1084,19 @@
</para>
<para>
The message bus keeps track of a set of
- <firstterm>services</firstterm>. A service is simply a name, such
- as <literal>com.yoyodyne.Screensaver</literal>, which can be
- <firstterm>owned</firstterm> by one of the connected applications.
- The message bus itself always owns the special service
+ <firstterm>services</firstterm>. A service is simply a name, such as
+ <literal>com.yoyodyne.Screensaver</literal>, which can be
+ <firstterm>owned</firstterm> by one or more of the connected
+ applications. The message bus itself always owns the special service
<literal>org.freedesktop.DBus</literal>.
</para>
<para>
+ Services may have <firstterm>secondary owners</firstterm>. Secondary owners
+ of a service are kept in a queue; if the primary owner of a service
+ disconnects, or releases the service, the next secondary owner becomes
+ the new owner of the service.
+ </para>
+ <para>
Messages may have a <literal>srvc</literal> field (see <xref
linkend="message-protocol-header-fields">). When the message bus
receives a message, if the <literal>srvc</literal> field is absent, the
@@ -1911,17 +1917,27 @@
</para>
</glossdef>
</glossentry>
+ <glossentry id="term-secondary-owner"><glossterm>Secondary service owner</glossterm>
+ <glossdef>
+ <para>
+ Each service has a primary owner; messages sent to the service name
+ go to the primary owner. However, certain services also maintain
+ a queue of secondary owners "waiting in the wings." If
+ the primary owner releases the service, then the first secondary
+ owner in the queue automatically becomes the primary owner.
+ </para>
+ </glossdef>
+ </glossentry>
<glossentry id="term-service"><glossterm>Service</glossterm>
<glossdef>
<para>
- A service is simply a named application that other
- applications can refer to. For example, the
- hypothetical <literal>com.yoyodyne.Screensaver</literal>
- service might accept messages that affect
- a screensaver from Yoyodyne Corporation.
- An application is said to <firstterm>own</firstterm>
- a service if the message bus has associated the
- application with the service name.
+ A service is simply a named list of applications. For example, the
+ hypothetical <literal>com.yoyodyne.Screensaver</literal> service might
+ accept messages that affect a screensaver from Yoyodyne Corporation.
+ An application is said to <firstterm>own</firstterm> a service if the
+ message bus has associated the application with the service name.
+ Services may also have <firstterm>secondary owners</firstterm> (see
+ <xref linkend="term-secondary-owner">).
</para>
</glossdef>
</glossentry>