D-BUS

From OLPC
Jump to: navigation, search

D-BUS is a message bus system, rather like AppleScript and DCOM, that allows applications to send messages to one another. Sugar uses D-BUS extensively, and requires that all apps interact with it via D-BUS.

The GCompris activity is a native (C language) app which uses glib to implement D-BUS ability. See dbus.c for the code.

D-BUS Services on the OLPC-XO

The python code for the following services is in share/<service> , while much of the code that uses them is in site-packages/sugar or in share/activities .

  • NetworkManager -- Standard Linux desktop component that provides a D-BUS API for controlling network connectivity
  • Activity DBus API -- Describes the API an activity must implement on D-BUS in order to interact with the Sugar desktop
    • Activity Service (Python implementation of the Activity DBus API)
    • Activity Factory Service (Python implementation of the Activity-launching Factory DBus API)
  • Presence Service DBus API -- friend discovery and collaboration primitives, including a description of the Telepathy API
    • Telepathy Connection Manager
    • Telepathy StreamEngine
  • Data Store Service (Journal) -- the core data-storage operation of the laptop
  • Clipboard Service -- manages cross-activity sharing of data and files
  • Hardware Manager Service -- provides access to the OLPC-specific hardware on the laptop
  • Activity Registry Service -- registry of installed activity bundles on the laptop
  • Object Type Registry Service -- MIME-type registry service
  • Sugar Console Service

D-BUS services can also be used from Squeak EToys: http://etoys-squeak-and-sugar.blogspot.com/2010/01/dbus-and-etoys-dbus-interface.html

Look at the code on the D-BUS SqueakSource repository: http://squeaksource.com/dbus.html

References

D-BUS website.