[next] telepathy-glib: pass a TpContactGroupList to TpContactGroupListInterface vfuncs
Guillaume Desmottes
gdesmott at kemper.freedesktop.org
Mon May 26 06:16:25 PDT 2014
Module: telepathy-glib
Branch: next
Commit: dd54d9725b449c7dcbd0122c7999d3db99368827
URL: http://cgit.freedesktop.org/telepathy/telepathy-glib/commit/?id=dd54d9725b449c7dcbd0122c7999d3db99368827
Author: Guillaume Desmottes <guillaume.desmottes at collabora.co.uk>
Date: Fri May 16 11:38:41 2014 +0200
pass a TpContactGroupList to TpContactGroupListInterface vfuncs
That's the proper way to do it to keep gir happy.
https://bugs.freedesktop.org/show_bug.cgi?id=77772
---
.../telepathy-glib/telepathy-glib-sections.txt | 8 ++--
examples/cm/contactlist/contact-list.c | 8 ++--
telepathy-glib/base-contact-list.c | 44 ++++++++++++++++----
telepathy-glib/base-contact-list.h | 26 +++++++-----
tests/lib/contact-list-manager.c | 8 ++--
5 files changed, 65 insertions(+), 29 deletions(-)
diff --git a/docs/reference/telepathy-glib/telepathy-glib-sections.txt b/docs/reference/telepathy-glib/telepathy-glib-sections.txt
index aa59268..322714d 100644
--- a/docs/reference/telepathy-glib/telepathy-glib-sections.txt
+++ b/docs/reference/telepathy-glib/telepathy-glib-sections.txt
@@ -4932,13 +4932,15 @@ tp_base_contact_list_unpublish_finish
TP_TYPE_CONTACT_GROUP_LIST
TpContactGroupList
TpContactGroupListInterface
+TpContactGroupListBooleanFunc
+tp_contact_group_list_false_func
TpBaseContactListNormalizeFunc
tp_base_contact_list_normalize_group
-TpBaseContactListDupContactGroupsFunc
+TpContactGroupListDupContactGroupsFunc
tp_base_contact_list_dup_contact_groups
-TpBaseContactListDupGroupsFunc
+TpContactGroupListDupGroupsFunc
tp_base_contact_list_dup_groups
-TpBaseContactListDupGroupMembersFunc
+TpContactGroupListDupGroupMembersFunc
tp_base_contact_list_dup_group_members
tp_base_contact_list_group_renamed
tp_base_contact_list_groups_changed
diff --git a/examples/cm/contactlist/contact-list.c b/examples/cm/contactlist/contact-list.c
index 932a181..f09fb44 100644
--- a/examples/cm/contactlist/contact-list.c
+++ b/examples/cm/contactlist/contact-list.c
@@ -1027,7 +1027,7 @@ example_contact_list_dup_contacts (TpBaseContactList *contact_list)
}
static TpHandleSet *
-example_contact_list_dup_group_members (TpBaseContactList *contact_list,
+example_contact_list_dup_group_members (TpContactGroupList *contact_list,
const gchar *group)
{
ExampleContactList *self = EXAMPLE_CONTACT_LIST (contact_list);
@@ -1529,7 +1529,7 @@ example_contact_list_get_group_storage (
}
static GStrv
-example_contact_list_dup_groups (TpBaseContactList *contact_list)
+example_contact_list_dup_groups (TpContactGroupList *contact_list)
{
ExampleContactList *self = EXAMPLE_CONTACT_LIST (contact_list);
GPtrArray *tags = g_ptr_array_sized_new (
@@ -1547,10 +1547,10 @@ example_contact_list_dup_groups (TpBaseContactList *contact_list)
}
static GStrv
-example_contact_list_dup_contact_groups (TpBaseContactList *contact_list,
+example_contact_list_dup_contact_groups (TpContactGroupList *group_list,
TpHandle contact)
{
- ExampleContactList *self = EXAMPLE_CONTACT_LIST (contact_list);
+ ExampleContactList *self = EXAMPLE_CONTACT_LIST (group_list);
GPtrArray *tags = g_ptr_array_sized_new (
g_hash_table_size (self->priv->all_tags) + 1);
ExampleContactDetails *d = lookup_contact (self, contact);
diff --git a/telepathy-glib/base-contact-list.c b/telepathy-glib/base-contact-list.c
index 2c44e4f..c9714c2 100644
--- a/telepathy-glib/base-contact-list.c
+++ b/telepathy-glib/base-contact-list.c
@@ -824,7 +824,7 @@ tp_blockable_contact_list_default_init (TpBlockableContactListInterface *iface)
static void
tp_contact_group_list_default_init (TpContactGroupListInterface *iface)
{
- iface->has_disjoint_groups = tp_base_contact_list_false_func;
+ iface->has_disjoint_groups = tp_contact_group_list_false_func;
/* there's no default for the other virtual methods */
}
@@ -3079,6 +3079,34 @@ tp_base_contact_list_one_contact_groups_changed (TpBaseContactList *self,
}
/**
+ * TpContactGroupListBooleanFunc:
+ * @self: a contact list manager implementing TpContactGroupListInterface
+ *
+ * Signature of a virtual method that returns a boolean result.
+ *
+ * Returns: a boolean result
+ *
+ * Since: UNRELEASED
+ */
+
+/**
+ * tp_contact_group_list_false_func:
+ * @self: ignored
+ *
+ * An implementation of #TpContactGroupListBooleanFunc that returns %FALSE,
+ * for use in simple cases.
+ *
+ * Returns: %FALSE
+ *
+ * Since: UNRELEASED
+ */
+gboolean
+tp_contact_group_list_false_func (TpContactGroupList *self G_GNUC_UNUSED)
+{
+ return FALSE;
+}
+
+/**
* tp_base_contact_list_has_disjoint_groups:
* @self: a contact list manager
*
@@ -3118,11 +3146,11 @@ tp_base_contact_list_has_disjoint_groups (TpBaseContactList *self)
g_return_val_if_fail (iface != NULL, FALSE);
g_return_val_if_fail (iface->has_disjoint_groups != NULL, FALSE);
- return iface->has_disjoint_groups (self);
+ return iface->has_disjoint_groups (TP_CONTACT_GROUP_LIST (self));
}
/**
- * TpBaseContactListDupGroupsFunc:
+ * TpContactGroupListDupGroupsFunc:
* @self: a contact list manager
*
* Signature of a virtual method that lists every group that exists on a
@@ -3163,11 +3191,11 @@ tp_base_contact_list_dup_groups (TpBaseContactList *self)
g_return_val_if_fail (tp_base_contact_list_get_state (self, NULL) ==
TP_CONTACT_LIST_STATE_SUCCESS, NULL);
- return iface->dup_groups (self);
+ return iface->dup_groups (TP_CONTACT_GROUP_LIST (self));
}
/**
- * TpBaseContactListDupContactGroupsFunc:
+ * TpContactGroupListDupContactGroupsFunc:
* @self: a contact list manager
* @contact: a non-zero contact handle
*
@@ -3217,11 +3245,11 @@ tp_base_contact_list_dup_contact_groups (TpBaseContactList *self,
g_return_val_if_fail (tp_base_contact_list_get_state (self, NULL) ==
TP_CONTACT_LIST_STATE_SUCCESS, NULL);
- return iface->dup_contact_groups (self, contact);
+ return iface->dup_contact_groups (TP_CONTACT_GROUP_LIST (self), contact);
}
/**
- * TpBaseContactListDupGroupMembersFunc:
+ * TpContactGroupListDupGroupMembersFunc:
* @self: a contact list manager
* @group: a normalized group name
*
@@ -3265,7 +3293,7 @@ tp_base_contact_list_dup_group_members (TpBaseContactList *self,
g_return_val_if_fail (tp_base_contact_list_get_state (self, NULL) ==
TP_CONTACT_LIST_STATE_SUCCESS, NULL);
- return iface->dup_group_members (self, group);
+ return iface->dup_group_members (TP_CONTACT_GROUP_LIST (self), group);
}
/**
diff --git a/telepathy-glib/base-contact-list.h b/telepathy-glib/base-contact-list.h
index 5afe0d1..6fa660f 100644
--- a/telepathy-glib/base-contact-list.h
+++ b/telepathy-glib/base-contact-list.h
@@ -396,22 +396,28 @@ void tp_base_contact_list_one_contact_groups_changed (TpBaseContactList *self,
/* ---- Implemented by subclasses for ContactGroups ---- */
+typedef gboolean (*TpContactGroupListBooleanFunc) (
+ TpContactGroupList *self);
+
+gboolean tp_contact_group_list_false_func (
+ TpContactGroupList *self G_GNUC_UNUSED);
+
gboolean tp_base_contact_list_has_disjoint_groups (TpBaseContactList *self);
-typedef GStrv (*TpBaseContactListDupGroupsFunc) (
- TpBaseContactList *self);
+typedef GStrv (*TpContactGroupListDupGroupsFunc) (
+ TpContactGroupList *self);
GStrv tp_base_contact_list_dup_groups (TpBaseContactList *self);
-typedef GStrv (*TpBaseContactListDupContactGroupsFunc) (
- TpBaseContactList *self,
+typedef GStrv (*TpContactGroupListDupContactGroupsFunc) (
+ TpContactGroupList *self,
TpHandle contact);
GStrv tp_base_contact_list_dup_contact_groups (TpBaseContactList *self,
TpHandle contact);
-typedef TpHandleSet *(*TpBaseContactListDupGroupMembersFunc) (
- TpBaseContactList *self,
+typedef TpHandleSet *(*TpContactGroupListDupGroupMembersFunc) (
+ TpContactGroupList *self,
const gchar *group);
TpHandleSet *tp_base_contact_list_dup_group_members (TpBaseContactList *self,
@@ -447,11 +453,11 @@ typedef struct _TpContactGroupListInterface
struct _TpContactGroupListInterface {
GTypeInterface parent;
/* mandatory to implement */
- TpBaseContactListDupGroupsFunc dup_groups;
- TpBaseContactListDupGroupMembersFunc dup_group_members;
- TpBaseContactListDupContactGroupsFunc dup_contact_groups;
+ TpContactGroupListDupGroupsFunc dup_groups;
+ TpContactGroupListDupGroupMembersFunc dup_group_members;
+ TpContactGroupListDupContactGroupsFunc dup_contact_groups;
/* optional to implement */
- TpBaseContactListBooleanFunc has_disjoint_groups;
+ TpContactGroupListBooleanFunc has_disjoint_groups;
TpBaseContactListNormalizeFunc normalize_group;
};
diff --git a/tests/lib/contact-list-manager.c b/tests/lib/contact-list-manager.c
index d51bf42..dd0c30a 100644
--- a/tests/lib/contact-list-manager.c
+++ b/tests/lib/contact-list-manager.c
@@ -189,7 +189,7 @@ contact_list_dup_states (TpBaseContactList *base,
}
static GStrv
-contact_list_dup_groups (TpBaseContactList *base)
+contact_list_dup_groups (TpContactGroupList *base)
{
TpTestsContactListManager *self = TP_TESTS_CONTACT_LIST_MANAGER (base);
GPtrArray *ret;
@@ -218,10 +218,10 @@ contact_list_dup_groups (TpBaseContactList *base)
}
static GStrv
-contact_list_dup_contact_groups (TpBaseContactList *base,
+contact_list_dup_contact_groups (TpContactGroupList *group_list,
TpHandle contact)
{
- TpTestsContactListManager *self = TP_TESTS_CONTACT_LIST_MANAGER (base);
+ TpTestsContactListManager *self = TP_TESTS_CONTACT_LIST_MANAGER (group_list);
ContactDetails *d = lookup_contact (self, contact);
GPtrArray *ret;
@@ -249,7 +249,7 @@ contact_list_dup_contact_groups (TpBaseContactList *base,
}
static TpHandleSet *
-contact_list_dup_group_members (TpBaseContactList *base,
+contact_list_dup_group_members (TpContactGroupList *base,
const gchar *group)
{
TpTestsContactListManager *self = TP_TESTS_CONTACT_LIST_MANAGER (base);
More information about the telepathy-commits
mailing list