| Top |
GValueArray utilitiesGValueArray utilities — Functions to manipulate GValueArray as used in dbus-glib, despite its deprecation in GLib |
| GValueArray * | tp_value_array_build () |
| void | tp_value_array_unpack () |
| void | tp_value_array_free () |
dbus-glib uses GValueArray to represent a D-Bus struct/tuple, even though it's now deprecated in GLib. These utility functions pack/unpack GValueArray structures and avoid some of the deprecation warnings.
GValueArray * tp_value_array_build (gsize length,GType type,...);
Creates a new GValueArray for use with structs, containing the values passed in as parameters. The values are copied or reffed as appropriate for their type.
Example 2. using tp_value_array_build
1 2 3 4 |
GValueArray *array = tp_value_array_build (2, G_TYPE_STRING, host, G_TYPE_UINT, port, G_TYPE_INVALID); |
length |
The number of elements that should be in the array |
|
type |
The type of the first argument. |
|
... |
The value of the first item in the struct followed by a list of type, value pairs terminated by G_TYPE_INVALID. |
Since 0.9.2
void tp_value_array_unpack (GValueArray *array,gsize len,...);
Unpacks a GValueArray into separate variables.
The contents of the values aren't copied into the variables, and so become
invalid when array
is freed.
Example 3. using tp_value_array_unpack
1 2 3 4 5 6 |
const gchar *host; guint port; tp_value_array_unpack (array, 2, &host, &port); |
array |
the array to unpack |
|
len |
The number of elements that should be in the array |
|
... |
a list of correctly typed pointers to store the values in |
Since 0.11.0
void
tp_value_array_free (GValueArray *va);
Free va
. This is exactly the same as g_value_array_free(), but does not
provoke deprecation warnings from GLib when used in conjunction with
tp_value_array_build() and tp_value_array_unpack().
Since 0.23.0