[Telepathy-commits] [telepathy-haze/master] Implement GetKnownAvatarTokens
Will Thompson
will.thompson at collabora.co.uk
Mon Aug 18 03:49:27 PDT 2008
20080629214654-9f02e-072e486537d15351e3a9fa435d17f5f6b3f81b3f.gz
---
src/connection-avatars.c | 36 ++++++++++++++++++++++++++++++++++++
1 files changed, 36 insertions(+), 0 deletions(-)
diff --git a/src/connection-avatars.c b/src/connection-avatars.c
index 0e00136..31be7a0 100644
--- a/src/connection-avatars.c
+++ b/src/connection-avatars.c
@@ -182,6 +182,41 @@ haze_connection_get_avatar_tokens (TpSvcConnectionInterfaceAvatars *self,
}
void
+haze_connection_get_known_avatar_tokens (TpSvcConnectionInterfaceAvatars *self,
+ const GArray *contacts,
+ DBusGMethodInvocation *context)
+{
+ HazeConnection *conn = HAZE_CONNECTION (self);
+ TpBaseConnection *base_conn = TP_BASE_CONNECTION (conn);
+ GHashTable *tokens = g_hash_table_new_full (NULL, NULL, NULL, g_free);
+ guint i;
+ GError *err = NULL;
+
+ TpHandleRepoIface *contact_repo =
+ tp_base_connection_get_handles (base_conn, TP_HANDLE_TYPE_CONTACT);
+
+ if (!tp_handles_are_valid (contact_repo, contacts, FALSE, &err))
+ {
+ dbus_g_method_return_error (context, err);
+ g_error_free (err);
+ return;
+ }
+
+ for (i = 0; i < contacts->len; i++)
+ {
+ TpHandle handle = g_array_index (contacts, TpHandle, i);
+ gchar *token = get_handle_token (conn, handle);
+
+ g_hash_table_insert (tokens, GUINT_TO_POINTER (handle), token);
+ }
+
+ tp_svc_connection_interface_avatars_return_from_get_known_avatar_tokens (
+ context, tokens);
+
+ g_hash_table_unref (tokens);
+}
+
+void
haze_connection_request_avatar (TpSvcConnectionInterfaceAvatars *self,
guint contact,
DBusGMethodInvocation *context)
@@ -279,6 +314,7 @@ haze_connection_avatars_iface_init (gpointer g_iface,
klass, haze_connection_##x)
IMPLEMENT(get_avatar_requirements);
IMPLEMENT(get_avatar_tokens);
+ IMPLEMENT(get_known_avatar_tokens);
IMPLEMENT(request_avatar);
IMPLEMENT(request_avatars);
IMPLEMENT(set_avatar);
--
1.5.6.3
More information about the Telepathy-commits
mailing list