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
,TpChannel
andTpConnectionManager
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