[Bug 46484] Add high-level Call bindings

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Mar 15 15:02:00 CET 2012


https://bugs.freedesktop.org/show_bug.cgi?id=46484

--- Comment #11 from Andre Moreira Magalhaes <andrunko at gmail.com> 2012-03-15 07:02:00 PDT ---
(In reply to comment #8)
> (In reply to comment #6)
> > (In reply to comment #4)
> > > (In reply to comment #2)
> > > > - I don't get why you have several features which are basically getting all of
> > > > the properties for the same interface. As long as Content makes some sense
> > > > since it just pulls a single property, features CallState and CallMembers
> > > > basically just do the same thing, just storing a different set of properties in
> > > > the end. Given that the whole purpose of Features is to save DBus roundtrips,
> > > > wouldn't it make more sense to merge at least State and Members together? (I'd
> > > > be in favor of merging Contents as well, but there might be a use case for it)
> > > 
> > > FeatureContents should be a separate feature, since it also creates the
> > > CallContent and CallStream objects with all their features.
> > > 
> > > FeatureCallMembers and FeatureCallState maybe... I separated them because they
> > > are basically different things. You may want to know the state, but not the
> > > members and vice versa. Members maintains internal hash tables with contacts
> > > that might cost in memory/cpu if you have a lot of them, but other than that, I
> > > guess the only other thing that prevents me from merging them is how to call
> > > the combined feature :)
> > Features are used exactly to avoid unnecessary D-Bus round-trips. As you said,
> > users may want to just check the call state, not caring about members, etc. So
> > in this case I would keep them as separated features.
> 
> Actually Dario is right, with the extra feature we do one more D-Bus round-trip
> and we only save application resources.

Care to elaborate? I don't see how this is true. With FeatureCallState you just
need to download some properties and that is it. While with FeatureCallMembers
you need to download properties and build Contact objects (that requires D-Bus
round trips). Also CallStateChanged/CallMembersChanged is only connected when
needed with separate features.
So if the user only cares about the state, it will certainly do a lot of extra
unnecessary D-Bus round trips for example.

So please keep it separated.

Btw, now that I saw it, please use PendingVariantMap
*Interface::requestAllProperties() instead of Properties::GetAll

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.
You are the assignee for the bug.



More information about the telepathy-bugs mailing list