Method

GLib VariantBuilderopen

since: 2.24

Declaration [src]

void
g_variant_builder_open(
GVariantBuilder*builder,
constGVariantType*type
)

Description [src]

Opens a subcontainer inside the given builder. When done adding items to the subcontainer, g_variant_builder_close() must be called. type is the type of the container: so to build a tuple of several values, type must include the tuple itself.

It is an error to call this function in any way that would cause an inconsistent value to be constructed (ie: adding too many values or a value of an incorrect type).

Example of building a nested variant:

GVariantBuilderbuilder;
guint32some_number=get_number();
g_autoptr(GHashTable)some_dict=get_dict();
GHashTableIteriter;
constgchar*key;
constGVariant*value;
g_autoptr(GVariant)output=NULL;
g_variant_builder_init(&builder,G_VARIANT_TYPE("(ua{sv})"));
g_variant_builder_add(&builder,"u",some_number);
g_variant_builder_open(&builder,G_VARIANT_TYPE("a{sv}"));
g_hash_table_iter_init(&iter,some_dict);
while(g_hash_table_iter_next(&iter,(gpointer*)&key,(gpointer*)&value))
{
g_variant_builder_open(&builder,G_VARIANT_TYPE("{sv}"));
g_variant_builder_add(&builder,"s",key);
g_variant_builder_add(&builder,"v",value);
g_variant_builder_close(&builder);
}
g_variant_builder_close(&builder);
output=g_variant_builder_end(&builder);

Available since: 2.24

Parameters

type

Type: GVariantType

The GVariantType of the container.

The data is owned by the caller of the method.

AltStyle によって変換されたページ (->オリジナル) /