libsoup Reference Manual | ||||
---|---|---|---|---|
GHashTable* soup_value_hash_new (void); GHashTable* soup_value_hash_new_with_vals (const char *first_key, ...); void soup_value_hash_insert_value (GHashTable *hash, const char *key, GValue *value); void soup_value_hash_insert (GHashTable *hash, const char *key, GType type, ...); void soup_value_hash_insert_vals (GHashTable *hash, const char *first_key, ...); gboolean soup_value_hash_lookup (GHashTable *hash, const char *key, GType type, ...); gboolean soup_value_hash_lookup_vals (GHashTable *hash, const char *first_key, ...); GValueArray* soup_value_array_from_args (va_list args); gboolean soup_value_array_to_args (GValueArray *array, va_list args); GValueArray* soup_value_array_new (void); GValueArray* soup_value_array_new_with_vals (GType first_type, ...); void soup_value_array_insert (GValueArray *array, guint index_, GType type, ...); void soup_value_array_append (GValueArray *array, GType type, ...); void soup_value_array_append_vals (GValueArray *array, GType first_type, ...); gboolean soup_value_array_get_nth (GValueArray *array, guint index_, GType type, ...); #define SOUP_VALUE_SETV (val, type, args) #define SOUP_VALUE_GETV (val, type, args) #define SOUP_TYPE_BYTE_ARRAY
These methods are useful for manipulating GValues, and in particular, arrays and hash tables of GValues, in a slightly nicer way than the standard GValue API.
They are written for use with soup-xmlrpc, but they also work with types not used by XML-RPC.
GHashTable* soup_value_hash_new (void);
Creates a GHashTable whose keys are strings and whose values are GValue.
Returns : | a new empty GHashTable |
GHashTable* soup_value_hash_new_with_vals (const char *first_key, ...);
Creates a GHashTable whose keys are strings and whose values
are GValue, and initializes it with the provided data. As
with soup_value_hash_insert()
, the keys and values are copied
rather than being inserted directly.
first_key : |
the key for the first value |
... : |
the type of first_key , followed by the value, followed
by additional key/type/value triplets, terminated by NULL
|
Returns : | a new GHashTable, initialized with the given values |
void soup_value_hash_insert_value (GHashTable *hash, const char *key, GValue *value);
Inserts value
into hash
. (Unlike with g_hash_table_insert()
, both
the key and the value are copied).
hash : |
a value hash |
key : |
the key |
value : |
a value |
void soup_value_hash_insert (GHashTable *hash, const char *key, GType type, ...);
Inserts the provided value of type type
into hash
. (Unlike with
g_hash_table_insert()
, both the key and the value are copied).
hash : |
a value hash |
key : |
the key |
type : |
a GType |
... : |
a value of type type
|
void soup_value_hash_insert_vals (GHashTable *hash, const char *first_key, ...);
Inserts the given data into hash
. As with
soup_value_hash_insert()
, the keys and values are copied rather
than being inserted directly.
hash : |
a value hash |
first_key : |
the key for the first value |
... : |
the type of first_key , followed by the value, followed
by additional key/type/value triplets, terminated by NULL
|
gboolean soup_value_hash_lookup (GHashTable *hash, const char *key, GType type, ...);
Looks up key
in hash
and stores its value into the provided
location.
hash : |
a value hash |
key : |
the key to look up |
type : |
a GType |
... : |
a value of type pointer-to-type
|
Returns : | TRUE if hash contained a value with key key and
type type , FALSE if not.
|
gboolean soup_value_hash_lookup_vals (GHashTable *hash, const char *first_key, ...);
Looks up a number of keys in hash
and returns their values.
hash : |
a value hash |
first_key : |
the first key to look up |
... : |
the type of first_key , a pointer to that type, and
then additional key/type/pointer triplets, terminated
by NULL .
|
Returns : | TRUE if all of the keys were found, FALSE
if any were missing; note that you will generally need to
initialize each destination variable to a reasonable default
value, since there is no way to tell which keys were found
and which were not.
|
GValueArray* soup_value_array_from_args (va_list args);
Creates a GValueArray from the provided arguments, which must
consist of pairs of a GType and a value of that type, terminated
by G_TYPE_INVALID
. (The array will contain copies of the provided
data rather than pointing to the passed-in data directly.)
args : |
arguments to create a GValueArray from |
Returns : | a new GValueArray, or NULL if an error occurred.
|
gboolean soup_value_array_to_args (GValueArray *array, va_list args);
Extracts a GValueArray into the provided arguments, which must
consist of pairs of a GType and a value of pointer-to-that-type,
terminated by G_TYPE_INVALID
. The returned values will point to the
same memory as the values in the array.
array : |
a GValueArray |
args : |
arguments to extract array into
|
Returns : | success or failure |
GValueArray* soup_value_array_new (void);
Creates a new GValueArray
. (This is just a wrapper around
g_value_array_new()
, for naming consistency purposes.)
Returns : | a new GValueArray
|
GValueArray* soup_value_array_new_with_vals (GType first_type, ...);
Creates a new GValueArray
and copies the provided values
into it.
first_type : |
the type of the first value to add |
... : |
the first value to add, followed by other type/value
pairs, terminated by G_TYPE_INVALID
|
Returns : | a new GValueArray
|
void soup_value_array_insert (GValueArray *array, guint index_, GType type, ...);
Inserts the provided value of type type
into array
as with
g_value_array_insert()
. (The provided data is copied rather than
being inserted directly.)
array : |
a GValueArray |
index_ : |
the index to insert at |
type : |
a GType |
... : |
a value of type type
|
void soup_value_array_append (GValueArray *array, GType type, ...);
Appends the provided value of type type
to array
as with
g_value_array_append()
. (The provided data is copied rather than
being inserted directly.)
array : |
a GValueArray |
type : |
a GType |
... : |
a value of type type
|
void soup_value_array_append_vals (GValueArray *array, GType first_type, ...);
Appends the provided values into array
as with
g_value_array_append()
. (The provided data is copied rather than
being inserted directly.)
array : |
a GValueArray |
first_type : |
the type of the first value to add |
... : |
the first value to add, followed by other type/value
pairs, terminated by G_TYPE_INVALID
|
gboolean soup_value_array_get_nth (GValueArray *array, guint index_, GType type, ...);
Gets the index_
element of array
and stores its value into the
provided location.
array : |
a GValueArray |
index_ : |
the index to look up |
type : |
a GType |
... : |
a value of type pointer-to-type
|
Returns : | TRUE if array contained a value with index index_
and type type , FALSE if not.
|
#define SOUP_VALUE_SETV(val, type, args)
Copies an argument of type type
from args
into val
. val
will
point directly to the value in args
rather than copying it, so you
must g_value_copy()
it if you want it to remain valid.
val : |
a GValue |
type : |
a GType |
args : |
va_list pointing to a value of type type
|
#define SOUP_VALUE_GETV(val, type, args)
Extracts a value of type type
from val
into args
. The return
value will point to the same data as val
rather than being a copy
of it.
val : |
a GValue |
type : |
a GType |
args : |
va_list pointing to a value of type pointer-to-type
|