|  |  |  | telepathy-glib Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <telepathy-glib/util.h> void tp_g_hash_table_update (GHashTable *target, GHashTable *source, GBoxedCopyFunc key_dup, GBoxedCopyFunc value_dup); gboolean tp_g_ptr_array_contains (GPtrArray *haystack, gpointer needle); GValue * tp_g_value_slice_new (GType type); GValue * tp_g_value_slice_new_boolean (gboolean b); GValue * tp_g_value_slice_new_boxed (GType type, gconstpointer p); GValue * tp_g_value_slice_new_static_boxed (GType type, gconstpointer p); GValue * tp_g_value_slice_new_take_boxed (GType type, gpointer p); GValue * tp_g_value_slice_new_double (double d); GValue * tp_g_value_slice_new_int (gint n); GValue * tp_g_value_slice_new_int64 (gint64 n); GValue * tp_g_value_slice_new_string (const gchar *string); GValue * tp_g_value_slice_new_static_string (const gchar *string); GValue * tp_g_value_slice_new_take_string (gchar *string); GValue * tp_g_value_slice_new_uint (guint n); GValue * tp_g_value_slice_new_uint64 (guint64 n); void tp_g_value_slice_free (GValue *value); GValue * tp_g_value_slice_dup (const GValue *value); gboolean tp_strdiff (const gchar *left, const gchar *right); gpointer tp_mixin_offset_cast (gpointer instance, guint offset); guint tp_mixin_class_get_offset (gpointer klass, GQuark quark); guint tp_mixin_instance_get_offset (gpointer instance, GQuark quark); gchar * tp_escape_as_identifier (const gchar *name); gboolean tp_strv_contains (const gchar * const *strv, const gchar *str); gint64 tp_g_key_file_get_int64 (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error); guint64 tp_g_key_file_get_uint64 (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);
Some utility functions used in telepathy-glib which could have been in GLib, but aren't.
void tp_g_hash_table_update (GHashTable *target, GHashTable *source, GBoxedCopyFunc key_dup, GBoxedCopyFunc value_dup);
Add each item in source to target, replacing any existing item with the
same key. key_dup and value_dup are used to duplicate the items; in
principle they could also be used to convert between types.
| 
 | The hash table to be updated | 
| 
 | The hash table to update it with (read-only) | 
| 
 | function to duplicate a key from sourceso it can be be stored
          intarget. If NULL, the key is not copied, but is used as-is | 
| 
 | function to duplicate a value from sourceso it can be stored
            intarget. If NULL, the value is not copied, but is used as-is | 
Since 0.7.0
gboolean tp_g_ptr_array_contains (GPtrArray *haystack, gpointer needle);
| 
 | The pointer array to be searched | 
| 
 | The pointer to look for | 
| Returns : | TRUEifneedleis one of the elements ofhaystack | 
GValue * tp_g_value_slice_new (GType type);
Slice-allocate an empty GValue. tp_g_value_slice_new_boolean() and similar
functions are likely to be more convenient to use for the types supported.
| 
 | The type desired for the new GValue | 
| Returns : | a newly allocated, newly initialized GValue, to be freed with tp_g_value_slice_free()org_slice_free(). | 
Since 0.5.14
GValue * tp_g_value_slice_new_boolean (gboolean b);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a boolean value | 
| Returns : | a GValue of type G_TYPE_BOOLEANwith valueb, to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_boxed (GType type, gconstpointer p);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a boxed type | 
| 
 | a pointer of type type, which will be copied | 
| Returns : | a GValue of type typewhose value is a copy ofp,
to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_static_boxed (GType type, gconstpointer p);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a boxed type | 
| 
 | a pointer of type type, which must remain valid forever | 
| Returns : | a GValue of type typewhose value isp,
to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_take_boxed (GType type, gpointer p);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a boxed type | 
| 
 | a pointer of type typewhich will be freed withg_boxed_free()by the
 returned GValue (the caller must own it before calling this function, but
 no longer owns it after this function returns) | 
| Returns : | a GValue of type typewhose value isp,
to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_double (double d);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a number | 
| Returns : | a GValue of type G_TYPE_DOUBLEwith valuen, to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_int (gint n);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | an integer | 
| Returns : | a GValue of type G_TYPE_INTwith valuen, to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_int64 (gint64 n);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a 64-bit integer | 
| Returns : | a GValue of type G_TYPE_INT64with valuen, to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_string (const gchar *string);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a string to be copied into the value | 
| Returns : | a GValue of type G_TYPE_STRINGwhose value is a copy ofstring,
to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_static_string (const gchar *string);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a static string which must remain valid forever, to be pointed to by the value | 
| Returns : | a GValue of type G_TYPE_STRINGwhose value isstring,
to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_take_string (gchar *string);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a string which will be freed with g_free()by the returned GValue
 (the caller must own it before calling this function, but no longer owns
 it after this function returns) | 
| Returns : | a GValue of type G_TYPE_STRINGwhose value isstring,
to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_uint (guint n);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | an unsigned integer | 
| Returns : | a GValue of type G_TYPE_UINTwith valuen, to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
GValue * tp_g_value_slice_new_uint64 (guint64 n);
Slice-allocate and initialize a GValue. This function is convenient to use when constructing hash tables from string to GValue, for example.
| 
 | a 64-bit unsigned integer | 
| Returns : | a GValue of type G_TYPE_UINT64with valuen, to be freed withtp_g_value_slice_free()org_slice_free() | 
Since 0.7.27
void tp_g_value_slice_free (GValue *value);
Unset and free a slice-allocated GValue.
(GDestroyNotify) tp_g_value_slice_free can be used
as a destructor for values in a GHashTable, for example.
| 
 | A GValue which was allocated with the g_slice API | 
GValue * tp_g_value_slice_dup (const GValue *value);
| 
 | A GValue | 
| Returns : | a newly allocated copy of value, to be freed withtp_g_value_slice_free()org_slice_free(). | 
Since 0.5.14
gboolean tp_strdiff (const gchar *left, const gchar *right);
Return TRUE if the given strings are different. Unlike strcmp this
function will handle null pointers, treating them as distinct from any
string.
gpointer tp_mixin_offset_cast (gpointer instance, guint offset);
Extend a pointer by an offset, provided the offset is not 0. This is used to cast from an object instance to one of the telepathy-glib mixin classes.
| 
 | A pointer to a structure | 
| 
 | The offset of a structure member in bytes, which must not be 0 | 
| Returns : | a pointer offsetbytes beyondinstance | 
guint tp_mixin_class_get_offset (gpointer klass, GQuark quark);
If the type of klass, or any of its ancestor types, has had an offset
attached using qdata with the given quark, return that offset. If not,
this indicates a programming error and results are undefined.
This is used to implement the telepathy-glib mixin classes.
| 
 | A pointer to a GObjectClass-derived class structure | 
| 
 | A quark that was used to store the offset with g_type_set_qdata() | 
| Returns : | the offset of the mixin class | 
guint tp_mixin_instance_get_offset (gpointer instance, GQuark quark);
If the type of instance, or any of its ancestor types, has had an offset
attached using qdata with the given quark, return that offset. If not,
this indicates a programming error and results are undefined.
This is used to implement the telepathy-glib mixin classes.
| 
 | A pointer to a GObject-derived instance structure | 
| 
 | A quark that was used to store the offset with g_type_set_qdata() | 
| Returns : | the offset of the mixin | 
gchar * tp_escape_as_identifier (const gchar *name);
Escape an arbitrary string so it follows the rules for a C identifier, and hence an object path component, interface element component, bus name component or member name in D-Bus.
Unlike g_strcanon this is a reversible encoding, so it preserves distinctness.
The escaping consists of replacing all non-alphanumerics, and the first character if it's a digit, with an underscore and two lower-case hex digits:
"0123abc_xyz\x01\xff" -> _30123abc_5fxyz_01_ff
i.e. similar to URI encoding, but with _ taking the role of %, and a smaller allowed set. As a special case, "" is escaped to "_" (just for completeness, really).
| 
 | The string to be escaped | 
| Returns : | the escaped string, which must be freed by the caller with g_free | 
gboolean tp_strv_contains (const gchar * const *strv, const gchar *str);
| 
 | a NULL-terminated array of strings, or NULL(which is treated as an
       empty strv) | 
| 
 | a non-NULL string | 
| Returns : | TRUE if stris an element ofstrv, according tostrcmp(). | 
Since 0.7.15
gint64 tp_g_key_file_get_int64 (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);
Returns the value associated with key under group_name as a signed
64-bit integer. This is similar to g_key_file_get_integer() but can return
64-bit results without truncation.
| 
 | a non- NULLGKeyFile | 
| 
 | a non- NULLgroup name | 
| 
 | a non- NULLkey | 
| 
 | return location for a GError | 
| Returns : | the value associated with the key as a signed 64-bit integer, or 0 if the key was not found or could not be parsed. | 
Since 0.7.31
guint64 tp_g_key_file_get_uint64 (GKeyFile *key_file, const gchar *group_name, const gchar *key, GError **error);
Returns the value associated with key under group_name as an unsigned
64-bit integer. This is similar to g_key_file_get_integer() but can return
large positive results without truncation.
| 
 | a non- NULLGKeyFile | 
| 
 | a non- NULLgroup name | 
| 
 | a non- NULLkey | 
| 
 | return location for a GError | 
| Returns : | the value associated with the key as an unsigned 64-bit integer, or 0 if the key was not found or could not be parsed. | 
Since 0.7.31