[telepathy-gabble/master] Add gabble_capability_set_has_one()
Simon McVittie
simon.mcvittie at collabora.co.uk
Tue Sep 8 04:10:09 PDT 2009
This returns TRUE if at least one capability exists in both sets.
---
src/capabilities.c | 23 +++++++++++++++++++++++
src/capabilities.h | 4 ++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/src/capabilities.c b/src/capabilities.c
index c286f25..6ff1919 100644
--- a/src/capabilities.c
+++ b/src/capabilities.c
@@ -472,6 +472,29 @@ gabble_capability_set_has (const GabbleCapabilitySet *caps,
/* By design, this function can be used as a GabbleCapabilitySetPredicate */
gboolean
+gabble_capability_set_has_one (const GabbleCapabilitySet *caps,
+ const GabbleCapabilitySet *alternatives)
+{
+ TpIntSetIter iter;
+
+ g_return_val_if_fail (caps != NULL, FALSE);
+ g_return_val_if_fail (alternatives != NULL, FALSE);
+
+ tp_intset_iter_init (&iter, tp_handle_set_peek (alternatives->handles));
+
+ while (tp_intset_iter_next (&iter))
+ {
+ if (tp_handle_set_is_member (caps->handles, iter.element))
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+/* By design, this function can be used as a GabbleCapabilitySetPredicate */
+gboolean
gabble_capability_set_at_least (const GabbleCapabilitySet *caps,
const GabbleCapabilitySet *query)
{
diff --git a/src/capabilities.h b/src/capabilities.h
index 0909625..6842341 100644
--- a/src/capabilities.h
+++ b/src/capabilities.h
@@ -67,6 +67,8 @@ void gabble_capability_set_add (GabbleCapabilitySet *caps,
const gchar *cap);
gboolean gabble_capability_set_has (const GabbleCapabilitySet *caps,
const gchar *cap);
+gboolean gabble_capability_set_has_one (const GabbleCapabilitySet *caps,
+ const GabbleCapabilitySet *alternatives);
gboolean gabble_capability_set_at_least (const GabbleCapabilitySet *caps,
const GabbleCapabilitySet *query);
gboolean gabble_capability_set_equals (const GabbleCapabilitySet *a,
@@ -83,6 +85,8 @@ typedef gboolean (*GabbleCapabilitySetPredicate) (
* pass in the desired capabilities as the user_data */
#define gabble_capability_set_predicate_has \
((GabbleCapabilitySetPredicate) gabble_capability_set_has)
+#define gabble_capability_set_predicate_has_one \
+ ((GabbleCapabilitySetPredicate) gabble_capability_set_has_one)
#define gabble_capability_set_predicate_at_least \
((GabbleCapabilitySetPredicate) gabble_capability_set_at_least)
--
1.5.6.5
More information about the telepathy-commits
mailing list