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 connectionsTpContact— an object representing a Telepathy contactTpChannel— an asynchronous interface to Telepathy channelsTpConnectionManager— an asynchronous interface to Telepathy connection managersTpProxy— an base class for extensible D-Bus client objects, used byTpConnection,TpChannelandTpConnectionManager
For connection manager authors
TpBaseConnectionManager— a connection manager base class (implementsTelepathy.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 mixinTpGroupMixin— a groups mixinTpTextMixin— 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
- Submit a telepathy-glib bug (A component in the telepathy bugzilla component)
- Open telepathy-glib bugs
