The telepathy-glib library is a GObject-based C binding for the Telepathy D-Bus API. It may be used by client applications. It is also used by connection managers, because it contains code common to GLib-based connection managers such as Gabble, Idle, Sofia-Sip and Salut.

git://anongit.freedesktop.org/telepathy/telepathy-glib
ssh://git.freedesktop.org/telepathy/telepathy-glib

API documentation for the development branch

API documentation for the 0.10.x stable branch

older API documentation is also available

What's provided

For client authors

  • TpConnection — an asynchronous interface to Telepathy connections
  • TpContact — an object representing a Telepathy contact
  • TpChannel — an asynchronous interface to Telepathy channels
  • TpConnectionManager — an asynchronous interface to Telepathy connection managers
  • TpProxy — an base class for extensible D-Bus client objects, used by TpConnection, TpChannel and TpConnectionManager

For connection manager authors

  • TpBaseConnectionManager — a connection manager base class (implements Telepathy.ConnectionManager, you subclass it and specify a protocol and its arguments, and it will handle the listing/argument validation/connection object creation, etc)
  • TpBaseConnection — a connection base class (implements Telepathy.Connection, subclass it to teach it how to connect to the given protocol and which factories to make)
  • TpChannelManagerIface — a channel manager interface (used by the connection to see if any channel managers can service an incoming channel request)
  • handle repositories (provide it with validation/normalisation functions, and off you go...): TpHandleRepoIface, TpDynamicHandleRepo, TpStaticHandleRepo
  • TpPropertiesMixin — a properties mixin
  • TpGroupMixin — a groups mixin
  • TpTextMixin — a text mixin - ported from Gabble

For everyone

  • miscellaneous constants
  • error domain and enumeration
  • debug and other shared utilities (util., handles.)

Things to add

  • a channel base class (implements Telepathy.Channel, you subclass it w/ mixins to implement certain channel types) - deferred for the moment

Dependencies

Telepathy-GLib depends on the last release of the Glib bindings (0.72), since then implementing these mixins as interfaces & doing inheritance & adding in interfaces becomes a lot more practical. Telepathy-GLib looks for D-Bus glue data on all of the GInterfaces and superclasses a given object has, so we no longer have to produce one .xml file for e.g. GabbleConnection and the particular combination of interfaces it has.

Bugs