GBoxed 3 GOBJECT Library GBoxedA mechanism to wrap opaque C structures registered by the type system Synopsis #include <glib-object.h> gpointer (*GBoxedCopyFunc) (gpointer boxed); void (*GBoxedFreeFunc) (gpointer boxed); gpointer g_boxed_copy (GType boxed_type, gconstpointer src_boxed); void g_boxed_free (GType boxed_type, gpointer boxed); GType g_boxed_type_register_static (const gchar *name, GBoxedCopyFunc boxed_copy, GBoxedFreeFunc boxed_free); GType g_pointer_type_register_static (const gchar *name); #define G_TYPE_GSTRING #define G_TYPE_STRV typedef GStrv; Description Details <anchor id="GBoxedCopyFunc"/>GBoxedCopyFunc () GBoxedCopyFuncgpointer (*GBoxedCopyFunc) (gpointer boxed); This function is provided by the user and should produce a copy of the passed in boxed structure. boxed : The boxed structure to be copied. Returns :The newly created copy of the boxed structure. <anchor id="GBoxedFreeFunc"/>GBoxedFreeFunc () GBoxedFreeFuncvoid (*GBoxedFreeFunc) (gpointer boxed); This function is provided by the user and should free the boxed structure passed. boxed : The boxed structure to be freed. <anchor id="g-boxed-copy"/>g_boxed_copy () g_boxed_copygpointer g_boxed_copy (GType boxed_type, gconstpointer src_boxed); Provide a copy of a boxed structure src_boxed which is of type boxed_type. boxed_type : The type of src_boxed. src_boxed : The boxed structure to be copied. Returns : The newly created copy of the boxed structure. <anchor id="g-boxed-free"/>g_boxed_free () g_boxed_freevoid g_boxed_free (GType boxed_type, gpointer boxed); Free the boxed structure boxed which is of type boxed_type. boxed_type : The type of boxed. boxed : The boxed structure to be freed. <anchor id="g-boxed-type-register-static"/>g_boxed_type_register_static () g_boxed_type_register_staticGType g_boxed_type_register_static (const gchar *name, GBoxedCopyFunc boxed_copy, GBoxedFreeFunc boxed_free); This function creates a new G_TYPE_BOXED derived type id for a new boxed type with name name. Boxed type handling functions have to be provided to copy and free opaque boxed structures of this type. name : Name of the new boxed type. boxed_copy : Boxed structure copy function. boxed_free : Boxed structure free function. Returns :New G_TYPE_BOXED derived type id for name. <anchor id="g-pointer-type-register-static"/>g_pointer_type_register_static () g_pointer_type_register_staticGType g_pointer_type_register_static (const gchar *name); Creates a new G_TYPE_POINTER derived type id for a new pointer type with name name. name : the name of the new pointer type. Returns :a new G_TYPE_POINTER derived type id for name. <anchor id="G-TYPE-GSTRING-CAPS"/>G_TYPE_GSTRING G_TYPE_GSTRING#define G_TYPE_GSTRING (g_gstring_get_type ()) The GType for GString. <anchor id="G-TYPE-STRV-CAPS"/>G_TYPE_STRV G_TYPE_STRV#define G_TYPE_STRV (g_strv_get_type ()) The GType for a boxed type holding a NULL-terminated array of strings. The code fragments in the following example show the use of a property of type G_TYPE_STRV with g_object_class_install_property(), g_object_set() and g_object_get(). g_object_class_install_property (object_class, PROP_AUTHORS, g_param_spec_boxed ("authors", _("Authors"), _("List of authors"), G_TYPE_STRV, G_PARAM_READWRITE)); gchar *authors[] = { "Owen", "Tim", NULL }; g_object_set (obj, "authors", authors, NULL); gchar *writers[]; g_object_get (obj, "authors", &writers, NULL); /* do something with writers */ g_strfreev (writers); Since 2.4 <anchor id="GStrv"/>GStrv GStrvtypedef gchar** GStrv; A C representable type name for G_TYPE_STRV. See Also GParamSpecBoxed, g_param_spec_boxed()