Bug 29796 - Extract some non-Gabble-specific base classes for Call-related objects
Summary: Extract some non-Gabble-specific base classes for Call-related objects
Status: RESOLVED FIXED
Alias: None
Product: Telepathy
Classification: Unclassified
Component: gabble (show other bugs)
Version: git master
Hardware: Other All
: medium normal
Assignee: Telepathy bugs list
QA Contact: Telepathy bugs list
URL: http://git.collabora.co.uk/?p=user/wj...
Whiteboard:
Keywords: patch
Depends on: 29778 29790
Blocks:
  Show dependency treegraph
 
Reported: 2010-08-25 03:52 UTC by Will Thompson
Modified: 2011-01-13 07:10 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Will Thompson 2010-08-25 03:52:28 UTC
I have been refactoring Gabble's Call implementation a bit. My branch is a work in progress: http://git.collabora.co.uk/?p=user/wjt/telepathy-gabble-wjt.git;a=shortlog;h=refs/heads/call-base-classes

It depends on bug 29790 and bug 29778, and unfortunately can't be merged as-is because of the bug I haven't fixed I describe in bug 29790.
Comment 1 Simon McVittie 2010-08-25 04:24:56 UTC
http://git.collabora.co.uk/?p=user/wjt/telepathy-gabble-wjt.git;a=commitdiff;h=f2a26e0b66ab5

Please cherry-pick this leak fix.
Comment 3 Will Thompson 2010-09-27 06:35:10 UTC
I have now updated this branch to fix a leak I found while using chunks of GabbleBaseCallChannel in Ring. (Actually, it wasn't a leak in Gabble, kind of by accident; but I fixed Gabble to make the non-leakiness more explicit.)

Really, we should have a GabbleBaseBaseCallChannel for the non-Jingle- and non-media-interface-specific bits of GabbleBaseCallChannel, but my life is too short for that right now. So I just ripped a bunch of code from that file and pasted it into Ring. BaseContent and BaseStream are used verbatim.
Comment 4 David Laban 2010-12-16 03:48:19 UTC
Branch looks good. Had a go at doing the merge, but it's non-trivial thanks to dtmf lalaing. I posted to alsuren/call-base-classes-merged if anyone wants to take a look.
Comment 5 David Laban 2010-12-16 09:43:41 UTC
On second thoughts, sjoerd suggests that I put everything into yell and port gabble to use that before I merge. That forces me to do more thorough review and make sure everything really is portable before I continue. It also avoids too much churn in gabble master.

I feel like I'm going to end up holding quite a lot of state in my head about what's happening in all of the different Call implementations and spec branches by the time this gets merged, but hopefully it won't be too horrible.
Comment 6 Will Thompson 2010-12-16 12:01:17 UTC
(In reply to comment #4)
> Branch looks good. Had a go at doing the merge, but it's non-trivial thanks to
> dtmf lalaing. I posted to alsuren/call-base-classes-merged if anyone wants to
> take a look.

  G_DEFINE_TYPE_WITH_CODE(GabbleBaseCallChannel, gabble_base_call_channel,
-   G_TYPE_OBJECT,
-   G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL, channel_iface_init);
+   TP_TYPE_BASE_CHANNEL,
    G_IMPLEMENT_INTERFACE (GABBLE_TYPE_SVC_CHANNEL_TYPE_CALL,
 -        call_iface_init)
 +        call_iface_init);
 +  G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_DBUS_PROPERTIES,
 +    tp_dbus_properties_mixin_iface_init);
 +  G_IMPLEMENT_INTERFACE (TP_TYPE_EXPORTABLE_CHANNEL, NULL);
 +  G_IMPLEMENT_INTERFACE (TP_TYPE_CHANNEL_IFACE, NULL);
 +  G_IMPLEMENT_INTERFACE (TP_TYPE_SVC_CHANNEL_INTERFACE_DTMF,
 +      dtmf_iface_init);
- 
  );

This looks suspicious. It looks like the merge has restored a whole bunch of interfaces that BaseChannel does for us. Otherwise the merge looks fine (even if you do want to defer it :)).
Comment 7 Will Thompson 2011-01-13 07:10:38 UTC
this got merged by sjoerd.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.