[Bug 30338] TpRoomList - High level API for RoomList channel

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Sep 23 12:27:28 CEST 2010


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

Simon McVittie <simon.mcvittie at collabora.co.uk> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|medium                      |low

--- Comment #3 from Simon McVittie <simon.mcvittie at collabora.co.uk> 2010-09-23 03:27:28 PDT ---
I'd personally give this low priority: if you want to do a straightforward port
from Empathy you're welcome to do so, but text and tubes channels are more
important IMO.

(In reply to comment #1)
> TpRoomList * tp_room_list_new (TpConnection *conn,

Perhaps TpRoomListChannel. I'm not sure whether we should enforce a "Channel"
suffix for all tp-glib TpChannel subclasses.

(Precedent: in telepathy-qt4, I initially only added Channel where the channel
type didn't make sense as a noun - so we had Tp::TextChannel and
Tp::StreamedMediaChannel, but Tp::RoomList and Tp::StreamTube - but Andre
decided it was better to add Channel to all of them, consistently, and that's
now the convention.)

> gboolean tp_room_list_get_listing (TpRoomList *self);

This is mutable, so it'll need a Feature if you want it.

> void tp_room_list_start_listing_async (TpRoomList *self,
>     GAsyncReadyCallback callback,
>     gpointer user_data);
> 
> gboolean tp_room_list_start_listing_finish (TpRoomList *self,
>     GAsyncResult *result,
>     GError **error);

We should document in the spec whether ListRooms raises an error if this
channel is already in the middle of listing rooms. I think we should define
Create semantics as the only ones that make sense and delete the possibility of
the channel being a per-connection singleton, tbh (i.e. make it look like
ContactSearch) - does Empathy actually cope with being given a room list that's
already listing?

> got-rooms (GPtrArray *rooms) with rooms containing TP_STRUCT_TYPE_ROOM_INFO
> Or maybe we should have a small TpRoomInfo object?

A TpRoomInfo struct or small-GObject, please:

    TpRoomInfo *tp_room_info_new (GValueArray *dbus_glib_struct);
or perhaps
    TpRoomInfo *tp_room_info_new (TpHandle handle, const gchar *ctype,
GHashTable *asv);

and in either case

    TpHandle tp_room_info_get_handle (TpRoomInfo *self);
    const gchar *tp_room_info_get_channel_type (TpRoomInfo *self);
    const gchar *tp_room_info_get_handle_name (TpRoomInfo *self);
    const gchar *tp_room_info_get_name (TpRoomInfo *self);
    const gchar *tp_room_info_get_description (TpRoomInfo *self);
    const gchar *tp_room_info_get_subject (TpRoomInfo *self);
    guint tp_room_info_get_members (TpRoomInfo *self, gboolean *known);
    /* "password" on D-Bus */
    gboolean tp_room_info_get_requires_password (TpRoomInfo *self, gboolean
*known);
    gboolean tp_room_info_get_invite_only (TpRoomInfo *self, gboolean *known);
    const gchar *tp_room_info_get_room_id (TpRoomInfo *self);
    const gchar *tp_room_info_get_server (TpRoomInfo *self);

All the string accessors would have tp_asv_get_string() semantics. The int and
boolean accessors would have tp_asv_get_uint32 semantics, with valid mapped to
known.

-- 
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