Struct
GObjectValue
Description [src]
struct GValue {
None data;
}
An opaque structure used to hold different types of values.
Before it can be used, a GValue
has to be initialized to a specific type by
calling g_value_init()
on it.
Many types which are stored within a GValue
need to allocate data on the
heap, so g_value_unset()
must always be called on a GValue
to
free any such data once you’re finished with the GValue
, even if the
GValue
itself is stored on the stack.
The data within the structure has protected scope: it is accessible only
to functions within a GTypeValueTable
structure, or
implementations of the g_value_*()
API. That is, code which implements new
fundamental types.
GValue
users cannot make any assumptions about how data is stored
within the 2 element data
union, and the g_type
member should
only be accessed through the G_VALUE_TYPE()
macro and related macros.
Structure members
data
No description available.
Functions
g_value_register_transform_func
Registers a value transformation function for use in
g_value_transform()
.
g_value_type_compatible
Checks whether a g_value_copy()
is able to copy values of type
src_type
into values of type dest_type
.
g_value_type_transformable
Checks whether g_value_transform()
is able to transform values
of type src_type
into values of type dest_type
.
Instance methods
g_value_dup_boxed
Get the contents of a G_TYPE_BOXED
derived GValue
. Upon getting,
the boxed value is duplicated and needs to be later freed with
g_boxed_free(), e.g. like: g_boxed_free (G_VALUE_TYPE (value
), return_value);.
g_value_dup_object
Get the contents of a G_TYPE_OBJECT
derived GValue
, increasing
its reference count. If the contents of the GValue
are NULL
, then
NULL
will be returned.
g_value_dup_variant
Get the contents of a variant GValue
, increasing its refcount. The returned
GVariant
is never floating.
since: 2.26
g_value_get_char
Do not use this function; it is broken on platforms where the %char type is unsigned, such as ARM and PowerPC. See g_value_get_schar().
deprecated: 2.32
g_value_init
Initializes value
to store values of the given type
, and sets its value
to the default for type
.
g_value_reset
Clears the current value in value
and resets it to the default value
(as if the value had just been initialized using
g_value_init()
).
g_value_set_boxed_take_ownership
This is an internal function introduced mainly for C marshallers.
deprecated: 2.4
g_value_set_interned_string
Set the contents of a G_TYPE_STRING
GValue
to v_string
. The string is
assumed to be static and interned (canonical, for example from
g_intern_string()), and is thus not duplicated when setting the GValue
.
since: 2.66
g_value_set_object_take_ownership
This is an internal function introduced mainly for C marshallers.
deprecated: 2.4
g_value_set_param_take_ownership
This is an internal function introduced mainly for C marshallers.
deprecated: 2.4
g_value_set_static_string
Set the contents of a G_TYPE_STRING
GValue
to v_string
.
The string is assumed to be static, and is thus not duplicated
when setting the GValue
.
g_value_set_string_take_ownership
This is an internal function introduced mainly for C marshallers.
deprecated: 2.4
g_value_set_variant
Set the contents of a variant GValue
to variant
.
If the variant is floating, it is consumed.
since: 2.26
g_value_steal_string
Steal ownership on contents of a G_TYPE_STRING
GValue
.
As a result of this operation the value’s contents will be reset to NULL
.
since: 2.80
g_value_take_boxed
Sets the contents of a G_TYPE_BOXED
derived GValue
to v_boxed
and takes over the ownership of the caller’s reference to v_boxed
;
the caller doesn’t have to unref it any more.
since: 2.4
g_value_take_object
Sets the contents of a G_TYPE_OBJECT
derived GValue
to v_object
and takes over the ownership of the caller’s reference to v_object
;
the caller doesn’t have to unref it any more (i.e. the reference
count of the object is not increased).
since: 2.4
g_value_take_param
Sets the contents of a G_TYPE_PARAM
GValue
to param
and takes
over the ownership of the caller’s reference to param
; the caller
doesn’t have to unref it any more.
since: 2.4
g_value_take_variant
Set the contents of a variant GValue
to variant
, and takes over
the ownership of the caller’s reference to variant
;
the caller doesn’t have to unref it any more (i.e. the reference
count of the variant is not increased).
since: 2.26
g_value_transform
Tries to cast the contents of src_value
into a type appropriate
to store in dest_value
.