GBoxed

GBoxed — A 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

GBoxedCopyFunc ()

gpointer    (*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.

GBoxedFreeFunc ()

void        (*GBoxedFreeFunc)               (gpointer boxed);

This function is provided by the user and should free the boxed structure passed.

boxed :The boxed structure to be freed.

g_boxed_copy ()

gpointer    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.

g_boxed_free ()

void        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.

g_boxed_type_register_static ()

GType       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.

g_pointer_type_register_static ()

GType       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.

G_TYPE_GSTRING

#define	G_TYPE_GSTRING		(g_gstring_get_type ())

The GType for GString.


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


GStrv

typedef gchar** GStrv;

A C representable type name for G_TYPE_STRV.

See Also

GParamSpecBoxed, g_param_spec_boxed()