GBoxed
GBoxed — Механизм упаковки непрозрачных C структур регистрируемых системой типов
Краткое описание
#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_HASH_TABLE
#define G_TYPE_DATE
#define G_TYPE_GSTRING
#define G_TYPE_STRV
#define G_TYPE_REGEX
typedef GStrv;
Описание
GBoxed это родной механизм упаковки для произвольных C структур. Единственная вещь которую нужно знать системе типов о структурах - как копировать и освобождать их, за тем они обрабатываются как непрозрачные участки памяти.
Упаковочные типы полезны для простых структур содержащих значения как прямоугольники или точки. Они так же могут быть использованы для упаковки структур определённых в библиотеках основанных не на GObject.
Детали
GBoxedCopyFunc ()
Эта функция обеспечивается пользователем и должна производить копию помещённой в контейнер сструктуры.
boxed :
Упакованная структура для копирования.
Возвращает :
Вновь созданная копия упакованной сструктуры.
GBoxedFreeFunc ()
Эта функция обеспечивается пользователем и должна освобождать структуру помещённую в контейнере.
boxed :
Упакованная структура для освобождения.
g_boxed_copy ()
Обеспечивает копию упакованной сструктуры src_boxed с типом boxed_type.
boxed_type :
Тип src_boxed.
src_boxed :
Упакованная структура для копирования.
Возвращает :
Вновь созданная копия упакованной сструктуры.
g_boxed_free ()
Освобождает упакованную структуру boxed с типом boxed_type.
boxed_type :
Тип boxed.
boxed :
Упакованная структура для освобождения.
g_boxed_type_register_static ()
Эта функция создаёт новый G_TYPE_BOXED производный типовой id для нового упаковочного типа с именем name. Упаковочный тип необходимо обеспечить функциями обработки для копирования и освобождения непрозрачных упакованных структур этого типа.
name :
Имя нового упаковочного типа.
boxed_copy :
Функция копирования упакованной сструктуры.
boxed_free :
Функция освобождения упакованной сструктуры.
Возвращает :
Новый произведённый G_TYPE_BOXED типовой id для name.
g_pointer_type_register_static ()
Создаёт новый производный G_TYPE_POINTER типовой id для нового типа указателя с именем name.
name :
имя нового типа указателя.
Возвращает :
новый производный G_TYPE_POINTER типовой id для name.
G_TYPE_HASH_TABLE
GType упаковочного типа для содержания ссылки GHashTable.
Начиная с версии 2.10
G_TYPE_DATE
G_TYPE_GSTRING
G_TYPE_STRV
GType для упаковочного типа содержащего NULL-завершённый массив строк.
Фрагменты кода в следующем примере демонстрируют использование типового свойства G_TYPE_STRV с помощью g_object_class_install_property(), g_object_set() и g_object_get().
Начиная с версии 2.4
G_TYPE_REGEX
GType упаковочного типа содержащий ссылку GRegex.
Начиная с версии 2.14
GStrv
'C' репрезентабельное типовое имя для G_TYPE_STRV.
Смотрите также
Last updated
Was this helpful?