Variant.this

Creates a new #GVariant instance from serialised data.

@type is the type of #GVariant instance that will be constructed. The interpretation of @data depends on knowing the type.

@data is not modified by this function and must remain valid with an unchanging value until such a time as @notify is called with @user_data. If the contents of @data change before that time then the result is undefined.

If @data is trusted to be serialised data in normal form then @trusted should be %TRUE. This applies to serialised data created within this process or read from a trusted location on the disk (such as a file installed in /usr/lib alongside your application). You should set trusted to %FALSE if @data is read from the network, a file in the user's home directory, etc.

If @data was not stored in this machine's native endianness, any multi-byte numeric values in the returned variant will also be in non-native endianness. g_variant_byteswap() can be used to recover the original values.

@notify will be called with @user_data when @data is no longer needed. The exact time of this call is unspecified and might even be before this function returns.

Note: @data must be backed by memory that is aligned appropriately for the @type being loaded. Otherwise this function will internally create a copy of the memory (since GLib 2.60) or (in older versions) fail and exit the process.

Parameters

type VariantType

a definite #GVariantType

data ubyte[]

the serialised data

trusted bool

%TRUE if @data is definitely in normal form

notify GDestroyNotify

function to call when @data is no longer needed

userData void*

data for @notify

Return Value

a new floating #GVariant of type @type

Throws

ConstructionException GTK+ fails to create the object.

Meta

Since

2.24