[Telepathy] Accessing the ContactList for a connection.

Simon McVittie simon.mcvittie at collabora.co.uk
Fri Feb 15 10:44:24 PST 2008


On Fri, 15 Feb 2008 at 13:06:04 -0500, Michael R. Head wrote:
> On Fri, 2008-02-15 at 01:16 -0500, Michael R. Head wrote:
> > I'm curious about
> > org.freedesktop.Telepathy.Connection.Interface.ContactInfo and why it's
> > deprecated, but apparently not replaced?
> > http://telepathy.freedesktop.org/spec.html#org.freedesktop.Telepathy.Connection.Interface.ContactInfo
> >         THIS INTERFACE IS DEPRECATED AND SHOULD NOT BE USED. A new
> >         version will be proposed in the 0.13 specification branch.
> > 
> > But the spec is version 0.17.1, right?
> 
> Is there a replacement for ContactInfo that I'm missing somewhere?

No. We plan to design one, but there's always been something of a higher
priority. ContactInfo has never actually been implemented, as far as I
know.

> 
> > I'm also curious about how to manage memory. Most things use
> > g_object_ref and _unref, but some things don't need them. For example,
> > interfaces should be unref()fed, but connections and channels don't? 
> 
> I've mostly been looking through the empathy source and libtelepathy
> headers (and performing trial and error by calling g_object_unref()
> unless I get a warning at runtime) to figure out what I can. Am I
> missing some good informative resource on how to answer these questions
> myself?

TpChan is a GObject, see appropriate documentation (which in the case of
libtelepathy is only the source code, I'm afraid...) to see whether each
function returns a new reference or a "borrowed" reference. Any
functions named like *_new() should be returning new references,
so you do need to unref.

> > Also, how is the OUT_arg1 of tp_conn_iface_aliasing_request_aliases
> > meant to be collected?
> 
> OUT_arg1 is is an array of strings. Are they meant to be freed by the
> caller, or are they managed elsewhere? (or, a better question, how can I
> figure out what needs to be g_free()ed, what needs to be
> g_object_unref()ed and what needs to be left alone?)

It's a g_malloc()d array of g_malloc()d strings. You free it with
g_strfreev().

(At some point I'll try to improve the code-gen for telepathy-glib to
make that sort of thing completely clear.)

    Simon


More information about the Telepathy mailing list