Introduction to D-BUS

Matthew Johnson dbus at matthew.ath.cx
Tue Aug 29 00:49:18 PDT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sat, 26 Aug 2006, Jeroen T. Vermeulen wrote:

> The latest draft can be found at:
>
>    http://thaiopensource.org/development/suriyan/wiki/DbusNotes
>
> Remember, I'm new to dbus myself and I may have gotten things wrong.  So
> please help improve this document by reading it, and telling me about
> anything that's not right or could be better!
>

    - It's spelled "D-Bus" not "D-BUS"
    - The Java binding should now be linked to
      http://dbus.freedesktop.org/doc/dbus-java/ and the low-level
      binding to
      http://dbus.freedesktop.org/doc/dbus/libdbus-tutorial.html
    - "D-BUS does not allow clients to invoke methods on objects that
      those objects do not offer" this sounds as if the bus itself
      restricts that. In reality the message will arrive at the
      application regardless, and it is up to the application to decide
      what to do with it. Most bindings will know what methods are valid
      and automatically send an error, but you could always reply with
      the same thing no matter what method was called, for example.
    - " If you use the simple call-and-wait style (synchronous
      invocation), any other messages that come in while you wait will be
      queued up and delivered to your program when it's ready for them."
      again, depends on the binding. The Java binding is reentrant; all
      method calls are executed in a different thread. Actually this
      means that all calls are asynchronous at the libdbus level, but at
      the Java API level they are not.
    - "An object's type remains unchanged over the object's lifetime, as
      do the interfaces themselves: an object's set of methods and
      interfaces is fixed." This is an entirely sensible thing to do, but
      I don't think it's proscribed anywhere? Static languages like Java
      make changing this hard, but more dynamic languages may not.
    - "There is no overloading, as in some programming languages: every
      member name must be unique within its interface" I don't think this
      is true, certainly The Java binding supports it. It is as sensible
      as allowing overloading on interface name imho (and easier to
      implement in Java).

Most of these may be distinctions you don't want to go into in this
tutorial, I'm mainly checking you realize the difference and it's a
conscious choice, rather than a misunderstanding.

Matt

- -- 
Matthew Johnson
http://www.matthew.ath.cx/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Made with pgp4pine 1.76

iD8DBQFE8/GLpldmHVvob7kRAtBKAJ9UFFqk/NWKz3tH55xO5pbIz13+MQCgryPg
19Q+C43xGlzB1xtlkfLdztU=
=LBe1
-----END PGP SIGNATURE-----



More information about the dbus mailing list