[next] telepathy-glib: TpProxy: rewrite signal listening

Simon McVittie smcv at kemper.freedesktop.org
Thu Mar 27 08:42:05 PDT 2014


Module: telepathy-glib
Branch: next
Commit: 6c6d9a547f7d9b7fa81a3360b7ed9acfd93e06c7
URL:    http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=6c6d9a547f7d9b7fa81a3360b7ed9acfd93e06c7

Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date:   Fri Mar 14 19:25:45 2014 +0000

TpProxy: rewrite signal listening

As with async calls, we now use GVariant, don't take ownership of
the arguments in the wrapper function, do more work in
hand-written code and less work in generated code, and don't
need to mess about with DBusGProxy or idles because GDBus is just
better.

I've moved monitoring the TpProxy's lifetime from "signal connection
listens for invalidated signal" to "TpProxy explicitly drops signal
connections" in order to avoid depending on dispose emitting
invalidated, which was always a design flaw really. That also gives
us the opportunity to move the invocation of "drop all signal
connections" into an idle, which is necessary so that other listeners
to the same signal that invalidated the object (e.g. StatusChanged)
will still be notified.

---

 .../telepathy-glib/telepathy-glib-sections.txt     |    4 +-
 telepathy-glib/core-proxy.c                        |   20 +-
 telepathy-glib/proxy-internal.h                    |   23 +-
 telepathy-glib/proxy-signals.c                     |  388 ++++++--------------
 telepathy-glib/proxy-subclass.h                    |   13 +-
 telepathy-glib/proxy.c                             |   74 ++++
 tools/glib-client-gen.py                           |  171 +--------
 7 files changed, 227 insertions(+), 466 deletions(-)

Diff:   http://cgit.freedesktop.org/telepathy/telepathy-glib/diff/?id=6c6d9a547f7d9b7fa81a3360b7ed9acfd93e06c7


More information about the telepathy-commits mailing list