mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-03 17:56:17 +01:00
Merge branch '106-boxed-documentation' into 'master'
docs: Expand introduction to boxed types Closes #106 See merge request GNOME/glib!798
This commit is contained in:
commit
5bb2366a49
@ -37,13 +37,24 @@
|
|||||||
* @see_also: #GParamSpecBoxed, g_param_spec_boxed()
|
* @see_also: #GParamSpecBoxed, g_param_spec_boxed()
|
||||||
* @title: Boxed Types
|
* @title: Boxed Types
|
||||||
*
|
*
|
||||||
* GBoxed is a generic wrapper mechanism for arbitrary C structures. The only
|
* #GBoxed is a generic wrapper mechanism for arbitrary C structures. The only
|
||||||
* thing the type system needs to know about the structures is how to copy and
|
* thing the type system needs to know about the structures is how to copy them
|
||||||
* free them, beyond that they are treated as opaque chunks of memory.
|
* (a #GBoxedCopyFunc) and how to free them (a #GBoxedFreeFunc) — beyond that
|
||||||
|
* they are treated as opaque chunks of memory.
|
||||||
*
|
*
|
||||||
* Boxed types are useful for simple value-holder structures like rectangles or
|
* Boxed types are useful for simple value-holder structures like rectangles or
|
||||||
* points. They can also be used for wrapping structures defined in non-GObject
|
* points. They can also be used for wrapping structures defined in non-#GObject
|
||||||
* based libraries.
|
* based libraries. They allow arbitrary structures to be handled in a uniform
|
||||||
|
* way, allowing uniform copying (or referencing) and freeing (or unreferencing)
|
||||||
|
* of them, and uniform representation of the type of the contained structure.
|
||||||
|
* In turn, this allows any type which can be boxed to be set as the data in a
|
||||||
|
* #GValue, which allows for polymorphic handling of a much wider range of data
|
||||||
|
* types, and hence usage of such types as #GObject property values.
|
||||||
|
*
|
||||||
|
* #GBoxed is designed so that reference counted types can be boxed. Use the
|
||||||
|
* type’s ‘ref’ function as the #GBoxedCopyFunc, and its ‘unref’ function as the
|
||||||
|
* #GBoxedFreeFunc. For example, for #GBytes, the #GBoxedCopyFunc is
|
||||||
|
* g_bytes_ref(), and the #GBoxedFreeFunc is g_bytes_unref().
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static inline void /* keep this function in sync with gvalue.c */
|
static inline void /* keep this function in sync with gvalue.c */
|
||||||
|
Loading…
Reference in New Issue
Block a user