|  |  |  | telepathy-glib API Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | Object Hierarchy | ||||
#include <telepathy-glib/telepathy-glib.h>
                    TpIntset;
#define             TP_TYPE_INTSET
void                (*TpIntFunc)                        (guint i,
                                                         gpointer userdata);
TpIntset *          tp_intset_sized_new                 (guint size);
TpIntset *          tp_intset_new                       (void);
TpIntset *          tp_intset_new_containing            (guint element);
void                tp_intset_destroy                   (TpIntset *set);
void                tp_intset_clear                     (TpIntset *set);
void                tp_intset_add                       (TpIntset *set,
                                                         guint element);
gboolean            tp_intset_remove                    (TpIntset *set,
                                                         guint element);
gboolean            tp_intset_is_member                 (const TpIntset *set,
                                                         guint element);
void                tp_intset_foreach                   (const TpIntset *set,
                                                         TpIntFunc func,
                                                         gpointer userdata);
GArray *            tp_intset_to_array                  (const TpIntset *set);
TpIntset *          tp_intset_from_array                (const GArray *array);
gboolean            tp_intset_is_empty                  (const TpIntset *set);
guint               tp_intset_size                      (const TpIntset *set);
gboolean            tp_intset_is_equal                  (const TpIntset *left,
                                                         const TpIntset *right);
TpIntset *          tp_intset_copy                      (const TpIntset *orig);
TpIntset *          tp_intset_intersection              (const TpIntset *left,
                                                         const TpIntset *right);
TpIntset *          tp_intset_union                     (const TpIntset *left,
                                                         const TpIntset *right);
void                tp_intset_union_update              (TpIntset *self,
                                                         const TpIntset *other);
TpIntset *          tp_intset_difference                (const TpIntset *left,
                                                         const TpIntset *right);
void                tp_intset_difference_update         (TpIntset *self,
                                                         const TpIntset *other);
TpIntset *          tp_intset_symmetric_difference      (const TpIntset *left,
                                                         const TpIntset *right);
gchar *             tp_intset_dump                      (const TpIntset *set);
                    TpIntsetFastIter;
void                tp_intset_fast_iter_init            (TpIntsetFastIter *iter,
                                                         const TpIntset *set);
gboolean            tp_intset_fast_iter_next            (TpIntsetFastIter *iter,
                                                         guint *output);
#define             TP_INTSET_ITER_INIT                 (set)
                    TpIntsetIter;
void                tp_intset_iter_init                 (TpIntsetIter *iter,
                                                         const TpIntset *set);
gboolean            tp_intset_iter_next                 (TpIntsetIter *iter);
void                tp_intset_iter_reset                (TpIntsetIter *iter);
A TpIntset is a set of unsigned integers, implemented as a dynamically-allocated sparse bitfield.
typedef struct _TpIntset TpIntset;
Opaque type representing a set of unsigned integers.
Before 0.11.16, this type was called TpIntSet, which is now a backwards compatibility typedef.
#define TP_TYPE_INTSET (tp_intset_get_type ())
The boxed type of a TpIntset.
Since 0.11.3
void (*TpIntFunc) (guint i,gpointer userdata);
A callback function acting on unsigned integers.
| 
 | The relevant integer | 
| 
 | Opaque user data | 
TpIntset *          tp_intset_sized_new                 (guint size);
Allocate a new integer set.
| 
 | ignored (it was previously 1 more than the largest integer you expect to store) | 
| Returns : | a new, empty integer set to be destroyed with tp_intset_destroy() | 
TpIntset *          tp_intset_new                       (void);
Allocate a new integer set.
| Returns : | a new, empty integer set to be destroyed with tp_intset_destroy() | 
TpIntset *          tp_intset_new_containing            (guint element);
Allocate a new integer set containing the given integer.
| 
 | integer to add to a new set | 
| Returns : | a new integer set containing element, to be destroyed withtp_intset_destroy() | 
Since 0.7.26
void                tp_intset_destroy                   (TpIntset *set);
Free all memory used by the set.
| 
 | set | 
void tp_intset_add (TpIntset *set,guint element);
Add an integer into a TpIntset.
| 
 | set | 
| 
 | integer to add | 
gboolean tp_intset_remove (TpIntset *set,guint element);
Remove an integer from a TpIntset
| 
 | set | 
| 
 | integer to add | 
| Returns : | TRUEifelementwas previously inset | 
gboolean tp_intset_is_member (const TpIntset *set,guint element);
Tests if element is a member of set
| 
 | set | 
| 
 | integer to test | 
| Returns : | TRUEifelementis inset | 
void tp_intset_foreach (const TpIntset *set,TpIntFunc func,gpointer userdata);
Call func(element, userdata) for each element of set, in order.
| 
 | set | 
| 
 | TpIntFuncto use to iterate the set. [scope call] | 
| 
 | user data to pass to each call of func | 
GArray *            tp_intset_to_array                  (const TpIntset *set);
| 
 | set to convert | 
| Returns : | a GArray of guint (which must
be freed by the caller) containing the same integers as set. [element-type uint][transfer full] | 
TpIntset *          tp_intset_from_array                (const GArray *array);
| 
 | An array of guint. [element-type uint] | 
| Returns : | A set containing the same integers as array. | 
gboolean            tp_intset_is_empty                  (const TpIntset *set);
Return the same thing as (tp_intset_size (set) == 0),
but calculated more efficiently.
| 
 | a set of integers | 
| Returns : | TRUEifsetis empty | 
Since 0.11.6
guint               tp_intset_size                      (const TpIntset *set);
| 
 | A set of integers | 
| Returns : | The number of integers in set | 
gboolean tp_intset_is_equal (const TpIntset *left,const TpIntset *right);
| 
 | A set of integers | 
| 
 | A set of integers | 
| Returns : | TRUEifleftandrightcontain the same bits | 
TpIntset *          tp_intset_copy                      (const TpIntset *orig);
| 
 | A set of integers | 
| Returns : | A set containing the same integers as orig, to be freed withtp_intset_destroy()by the caller | 
TpIntset * tp_intset_intersection (const TpIntset *left,const TpIntset *right);
| 
 | The left operand | 
| 
 | The right operand | 
| Returns : | The set of those integers which are in both leftandright(analogous to the bitwise operation left & right), to be freed withtp_intset_destroy()by the caller | 
TpIntset * tp_intset_union (const TpIntset *left,const TpIntset *right);
| 
 | The left operand | 
| 
 | The right operand | 
| Returns : | The set of those integers which are in either leftorright(analogous to the bitwise operation left | right), to be freed withtp_intset_destroy()by the caller | 
void tp_intset_union_update (TpIntset *self,const TpIntset *other);
Add each integer in other to self, analogous to the bitwise operation
self |= other.
| 
 | the set to change | 
| 
 | members to add | 
Since 0.13.10
TpIntset * tp_intset_difference (const TpIntset *left,const TpIntset *right);
| 
 | The left operand | 
| 
 | The right operand | 
| Returns : | The set of those integers which are in leftand not inright(analogous to the bitwise operation left & (~right)), to be freed withtp_intset_destroy()by the caller | 
void tp_intset_difference_update (TpIntset *self,const TpIntset *other);
Remove each integer in other from self, analogous to the bitwise
operation self &= (~other).
| 
 | the set to change | 
| 
 | members to remove | 
Since 0.13.10
TpIntset * tp_intset_symmetric_difference (const TpIntset *left,const TpIntset *right);
| 
 | The left operand | 
| 
 | The right operand | 
| Returns : | The set of those integers which are in either leftorrightbut not both (analogous to the bitwise operation left ^ right), to be freed
withtp_intset_destroy()by the caller | 
gchar *             tp_intset_dump                      (const TpIntset *set);
| 
 | An integer set | 
| Returns : | a string which the caller must free with g_free, listing the
numbers in setin a human-readable format | 
typedef struct {
} TpIntsetFastIter;
An opaque structure representing iteration in undefined order over a set of
integers. Must be initialized with tp_intset_fast_iter_init().
Before 0.11.16, this type was called TpIntSetFastIter, which is now a backwards compatibility typedef.
Usage is similar to GHashTableIter:
| 1 2 3 4 5 6 7 8 9 | TpIntsetFastIter iter; guint element; tp_intset_fast_iter_init (&iter, intset); while (tp_intset_fast_iter_next (&iter, &element)) { printf ("%u is in the intset\n", element); } | 
Since 0.11.6
void tp_intset_fast_iter_init (TpIntsetFastIter *iter,const TpIntset *set);
Initialize iter to iterate over set in arbitrary order. iter will become
invalid if set is modified.
| 
 | an iterator | 
| 
 | a set | 
Since 0.11.6
gboolean tp_intset_fast_iter_next (TpIntsetFastIter *iter,guint *output);
Advances iter and retrieves the integer it now points to. Iteration
is not necessarily in numerical order.
| 
 | an iterator | 
| 
 | a location to store a new integer, in arbitrary order | 
| Returns : | FALSEif the end of the set has been reached | 
Since 0.11.6
#define TP_INTSET_ITER_INIT(set) { (set), (guint)(-1) }
TP_INTSET_ITER_INIT is deprecated and should not be used in newly-written code. since 0.19.0. Use TpIntsetFastIter instead
A suitable static initializer for a TpIntsetIter, to be used as follows:
| 1 2 3 4 5 6 | void do_something (const TpIntset *intset) { TpIntsetIter iter = TP_INTSET_ITER_INIT (intset); /* ... do something with iter ... */ } | 
| 
 | A set of integers | 
typedef struct {
    const TpIntset *set;
    guint element;
} TpIntsetIter;
TpIntsetIter is deprecated and should not be used in newly-written code. since 0.19.0. Use TpIntsetFastIter instead
A structure representing iteration over a set of integers. Must be
initialized with either TP_INTSET_ITER_INIT() or tp_intset_iter_init().
Since 0.11.6, consider using TpIntsetFastIter if iteration in numerical order is not required.
Before 0.11.16, this type was called TpIntSetIter, which is now a backwards compatibility typedef.
| const TpIntset * | The set iterated over. | 
| guint  | Must be (guint)(-1) before iteration starts. Set to the next
element in the set by tp_intset_iter_next(); undefined aftertp_intset_iter_next()returnsFALSE. | 
void tp_intset_iter_init (TpIntsetIter *iter,const TpIntset *set);
tp_intset_iter_init is deprecated and should not be used in newly-written code. since 0.19.0. Use TpIntsetFastIter instead
Reset the iterator iter to the beginning and make it iterate over set.
| 
 | An integer set iterator to be initialized. | 
| 
 | An integer set to be used by that iterator | 
gboolean            tp_intset_iter_next                 (TpIntsetIter *iter);
tp_intset_iter_next is deprecated and should not be used in newly-written code.
If there are integers in (iter->set) higher than (iter->element), set
(iter->element) to the next one and return TRUE. Otherwise return FALSE.
Usage:
| 1 2 3 4 5 | TpIntsetIter iter = TP_INTSET_INIT (intset); while (tp_intset_iter_next (&iter)) { printf ("%u is in the intset\n", iter.element); } | 
Since 0.11.6, consider using TpIntsetFastIter if iteration in numerical order is not required.
| 
 | An iterator originally initialized with TP_INTSET_INIT(set) | 
| Returns : | TRUEif (iter->element) has been advanced | 
void                tp_intset_iter_reset                (TpIntsetIter *iter);
tp_intset_iter_reset is deprecated and should not be used in newly-written code. since 0.19.0. Use TpIntsetFastIter instead
Reset the iterator iter to the beginning. It must already be associated
with a set.
| 
 | An integer set iterator to be reset. |