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:
GVariantTypeThe
GVariantTypeof the container.The data is owned by the caller of the method.