|  |  |  | telepathy-glib Reference Manual |  | 
|---|---|---|---|---|
#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); 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); gchar* tp_escape_as_identifier (const gchar *name);
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);
| 
 | 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
void tp_g_value_slice_free (GValue *value);
Unset and free a slice-allocated GValue.
| 
 | 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 | 
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 |