[Bug 29531] high-level API for text channels
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Thu Dec 16 15:55:02 CET 2010
https://bugs.freedesktop.org/show_bug.cgi?id=29531
--- Comment #32 from Guillaume Desmottes <guillaume.desmottes at collabora.co.uk> 2010-12-16 06:55:01 PST ---
(In reply to comment #28)
> > GStrv tp_text_channel_get_supported_content_types (TpTextChannel *self);
>
> Either rename it to _dup_ and make the strv be copied, or cast the strv to
> (const gchar * const *) to return it (in which case you have to do the same
> hack as for tp_protocol_get_authentication_types, to make gtk-doc notice the
> method).
I want for the cast option, no need to dup if not needed.
> > if (self->priv->supported_content_types == NULL)
> > {
> > DEBUG ("Channel doesn't have Messages.SupportedContentTypes in its "
> > "immutable properties");
> > }
>
> I think it'd be worth setting self->priv->supported_content_types to a non-NULL
> value, so that tp_text_channel_get_supported_content_types() always returns
> non-NULL?
>
> Indeed, you could use { "text/plain", NULL } since telepathy-spec mandates that
> plain text is always allowed.
Oh cool; done.
> Having the two numeric things default to 0 is fine, though.
>
> > if (err != NULL)
> > {
> > DEBUG ("Failed to connect to MessageSent: %s", err->message);
>
> This can only happen if the channel has been invalidated, which really
> shouldn't have happened already in the ctor, so I think a WARNING or even
> CRITICAL would be fine.
done.
> find_msg_by_id:
> > return msg_id - id;
>
> I'd use (msg_id != id), to emphasize that this is not a sorting function, just
> a comparator with a strange signature. (Why doesn't g_queue_find_custom take a
> function that returns a boolean? We just don't know.)
done.
> The handling of PendingMessagesRemoved is a bit unfortunate. If we're waiting
> for messages' senders to be resolved, and the message is removed while we wait,
> then we'll ignore the removal, and it'll sit there forever...
>
> The solution would be to have a counter for the number of "pending pending
> messages", and defer processing of removed messages until it reaches 0, I
> suppose. I look forward to Telepathy 1.0 making this unnecessary.
Humm can't we just say that if you really care about this issue then you
should fix your CM?
> PendingMessagesRemoved should also be ignored completely (early-return) until
> the initial PendingMessages have been received, I think - at the moment it'll
> debug a lot and do nothing, because the GQueue is empty.
done
> > self->priv->retrieving_pending = TRUE;
>
> Your logic is correct, but it seems safer to invert the sense: gboolean
> got_initial_messages. Then it'll automatically start off FALSE without you
> needing to do anything special.
done.
> > _tp_proxy_set_feature_prepared (proxy,
> > TP_TEXT_CHANNEL_FEATURE_PENDING_MESSAGES, TRUE);
>
> Do you really want tp_proxy_is_prepared (self, PENDING_MESSAGES) to return TRUE
> if connecting one of the rather important signals failed?
Oops; fixed.
> > tp_text_channel_get_supported_content_types
>
> I'd rather have a TP_IS_TEXT_CHANNEL check in these functions, rather than just
> segfaulting if people get it wrong.
done.
--
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