| |
Справочное описание GObject | ||||
---|---|---|---|---|
#include <glib-object.h> #define G_CLOSURE_NEEDS_MARSHAL (closure) #define G_CLOSURE_N_NOTIFIERS (cl) #define G_CCLOSURE_SWAP_DATA (cclosure) #define G_CALLBACK (f) void (*GCallback) (void); GClosure; #define G_TYPE_CLOSURE GCClosure; void (*GClosureMarshal) (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void (*GClosureNotify) (gpointer data, GClosure *closure); GClosure* g_cclosure_new (GCallback callback_func, gpointer user_data, GClosureNotify destroy_data); GClosure* g_cclosure_new_swap (GCallback callback_func, gpointer user_data, GClosureNotify destroy_data); GClosure* g_cclosure_new_object (GCallback callback_func, GObject *object); GClosure* g_cclosure_new_object_swap (GCallback callback_func, GObject *object); GClosure* g_closure_new_object (guint sizeof_closure, GObject *object); GClosure* g_closure_ref (GClosure *closure); void g_closure_sink (GClosure *closure); void g_closure_unref (GClosure *closure); void g_closure_invoke (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint); void g_closure_invalidate (GClosure *closure); void g_closure_add_finalize_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func); void g_closure_add_invalidate_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func); void g_closure_remove_finalize_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func); void g_closure_remove_invalidate_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func); GClosure* g_closure_new_simple (guint sizeof_closure, gpointer data); void g_closure_set_marshal (GClosure *closure, GClosureMarshal marshal); void g_closure_add_marshal_guards (GClosure *closure, gpointer pre_marshal_data, GClosureNotify pre_marshal_notify, gpointer post_marshal_data, GClosureNotify post_marshal_notify); void g_closure_set_meta_marshal (GClosure *closure, gpointer marshal_data, GClosureMarshal meta_marshal); void g_source_set_closure (GSource *source, GClosure *closure); #define G_TYPE_IO_CHANNEL #define G_TYPE_IO_CONDITION void g_cclosure_marshal_VOID__VOID (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__CHAR (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__UCHAR (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__INT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__UINT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__LONG (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__ULONG (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__ENUM (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__FLAGS (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__FLOAT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__DOUBLE (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__STRING (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__PARAM (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__BOXED (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__POINTER (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__OBJECT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); #define g_cclosure_marshal_BOOL__FLAGS
GClosure представляет callback-функцию предоставляемую программистом. Это в общем включает функцию некоторого вида и маршаллер используемый для её вызова. Маршаллер конвертирует аргументы вызова из GValue в подходящую форму, выполняет callback-функцию с преобразованными аргументами, и преобразует возвращаемое значение обратно в GValue.
В случае C программ, замыкание обычно просто содержит указатель на функцию и может быть на данные аргумента, а маршаллер конвертирует между GValue и родными типами C. Библиотека GObject обеспечивает тип GCClosure для этой цели. Привязкам для других языков необходимы маршаллеры которые конвертируют между GValue и подходящими представлениями в рабочем цикле языка, чтобы использовать функции написанные на этом языке как callback-функции.
Внутри GObject, замыкания играют важную роль в реализации сигналов. Когда сигнал зарегистрирован,
аргумент c_marshaller
в
g_signal_new()
определяет C маршаллер по умолчанию
для любых замыканий которые подключаются к этому сигналу. GObject обеспечивает несколько C маршаллеров для этих целей,
смотрите g_cclosure_marshal_*() функции. Дополнительные C маршаллеры могут быть сгенерированы с помощью утилиты
glib-genmarshal. Замыкания могут явно подключаться к сигналам с помощью
g_signal_connect_closure()
, но обычно более
удобно позволить GObject создать замыкание автоматически используя одну из функций g_signal_connect_*() которые используют для этого
пары callback-функция/пользовательские данные.
Использование замыканий имеет множество преимуществ перед простой комбинацией callback-функция/указатель данных:
Замыкания позволяют вызывающему получать типы callback-параметров, что позволяет языковым привязкам не писать индивидуальный код совмещения (glue) для каждого callback-типа.
Подсчёт ссылок GClosure облегчает правильную обработку повторного использования; если callback-функция удалена во время вызова, замыкание и его параметры не будут освобождены до завершения вызова.
g_closure_invalidate()
и аннулирующие уведомления
позволяют callback-функциям автоматически удаляться когда объекты уничтожаются.
#define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
Возвращает TRUE
если маршаллер
GClosureMarshal ещё не установлен в
closure
.
Смотрите g_closure_set_marshal()
.
closure : |
GClosure |
#define G_CLOSURE_N_NOTIFIERS(cl)
Возвращает the total number of notifiers connected with the closure cl
.
The count includes the meta marshaller, the finalize and invalidate notifiers
and the marshal guards. Note that each guard counts as two notifiers.
See g_closure_set_meta_marshal()
, g_closure_add_finalize_notifier()
,
g_closure_add_invalidate_notifier()
and g_closure_add_marshal_guards()
.
cl : |
GClosure |
#define G_CCLOSURE_SWAP_DATA(cclosure) (((GClosure*) (closure))->derivative_flag)
Определяет должны ли пользовательские данные GCClosure
помещаться как первый параметр в callback-функцию.
Смотрите g_cclosure_new_swap()
.
cclosure : |
GCClosure |
#define G_CALLBACK(f) ((GCallback) (f))
Приводит указатель функции к типу GCallback.
f : |
указатель функции. |
void (*GCallback) (void);
Тип используемый для callback-функций в определениях структур и сигнатурах функций.
Это не означает что все callback-функции не должны принимать параметры и возвращать void.
Необходимая сигнатура callback-функции определяется контекстом в котором используется
(например сигнал к которому подключена). Используйте
G_CALLBACK()
для приведения callback-функции к типу
GCallback.
typedef struct { volatile guint in_marshal : 1; volatile guint is_invalid : 1; } GClosure;
GClosure представляет callback-функцию подходящую для программиста.
volatile guint in_marshal : 1; |
Указывает вызывается ли замыкание в текущий момент с помощью
g_closure_invoke()
|
volatile guint is_invalid : 1; |
Указывает аннулировано ли замыкание с помощью
g_closure_invalidate()
|
typedef struct { GClosure closure; gpointer callback; } GCClosure;
GCClosure это специализированная GClosure для C callback-функций.
void (*GClosureMarshal) (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Тип используемый для функций маршаллеров.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
GValue для хранения возвращаемого значения.
Может быть NULL если
callback-функция closure не возвращает значение.
|
n_param_values : |
длина массива param_values
|
param_values : |
массив GValue содержащих аргументы
для вызова callback-функции closure
|
invocation_hint : |
подсказка вызова получаемая как последний аргумент для
g_closure_invoke()
|
marshal_data : |
дополнительные данные определяемые при регистрации маршаллера,
смотрите g_closure_set_marshal() и
g_closure_set_meta_marshal()
|
void (*GClosureNotify) (gpointer data, GClosure *closure);
Тип используемый для разных callback-уведомлений которые могут быть зарегистрированы в замыкании.
data : |
данные определяемые при регистрации callback-уведомления |
closure : |
GClosure в которой издаётся уведомление |
GClosure* g_cclosure_new (GCallback callback_func, gpointer user_data, GClosureNotify destroy_data);
Создаёт новое замыкание которое вызывает callback_func
с
user_data
в качестве последнего параметра.
callback_func : |
вызываемая функция |
user_data : |
пользовательские данные помещаемые в callback_func
|
destroy_data : |
уничтожающее уведомление вызываемое когда user_data больше не используются
|
Возвращает : | новая GCClosure |
GClosure* g_cclosure_new_swap (GCallback callback_func, gpointer user_data, GClosureNotify destroy_data);
Создаёт новое замыкание которое вызывает callback_func
с
user_data
в качестве первого параметра.
callback_func : |
вызываемая функция |
user_data : |
пользовательские данные помещаемые в callback_func
|
destroy_data : |
уничтожающее уведомление вызываемое когда user_data больше не используются
|
Возвращает : | новая GCClosure |
GClosure* g_cclosure_new_object (GCallback callback_func, GObject *object);
Вариант g_cclosure_new()
который использует
object
как user_data
вызывает
g_object_watch_closure()
для
object
создавая замыкание. Эта функция полезна когда вам нужна callback-функция
тесно связанная с GObject,
и нужно чтобы callback-функция не запускалась после освобождения объекта.
GClosure* g_cclosure_new_object_swap (GCallback callback_func, GObject *object);
Вариант g_cclosure_new_swap()
который использует
object
как user_data
и вызывает
g_object_watch_closure()
для
object
создавая замыкание. Эта функция полезна когда вам нужна callback-функция тесно связанная с
GObject, и не нужно чтобы callback-функция вызывалась
после освобождения объекта.
GClosure* g_closure_new_object (guint sizeof_closure, GObject *object);
Вариант g_closure_new_simple()
которая сохраняет
object
в поле data
замыкания и вызывает
g_object_watch_closure()
для
object
при создании замыкания. Эта функция полезна главным образом при создании новых типов замыканий.
GClosure* g_closure_ref (GClosure *closure);
Увеличивает количество ссылок замыкания заставляя оставаться существующим в течение вызова содержащего указатель на неё.
closure : |
GClosure для увеличения количества ссылок |
Возвращает : | помещённое замыкание closure , для удобства
|
void g_closure_sink (GClosure *closure);
Принимает владение замыканием. Каждое замыкание инициализируется при создании в плавающее состояние,
это значит что инициализированным счётчиком ссылок никто не владеет.
g_closure_sink()
проверяет находится ли объект в плавающем
состоянии, и если это так, отменяет плавающее состояние и уменьшает количество ссылок. Если замыкание не плавающее,
g_closure_sink()
ничего не делает.
Причина существования плавающих состояний заключается в предотвращении громоздких последовательностей кода, например:
closure = g_cclosure_new (cb_func, cb_data); g_source_set_closure (source, closure); g_closure_unref (closure); /* XXX GObject на самом деле не нуждается в этом */
Поскольку g_source_set_closure()
(и подобные функции) будут владеть начальным счётчиком ссылок (если он не имеет владельца), мы можем написать следующее:
g_source_set_closure (source, g_cclosure_new (cb_func, cb_data));
Обычно эта функция используется вместе с g_closure_ref()
.
Например сохранение замыкания для более позднего уведомления выглядит так:
static GClosure *notify_closure = NULL; void foo_notify_set_closure (GClosure *closure) { if (notify_closure) g_closure_unref (notify_closure); notify_closure = closure; if (notify_closure) { g_closure_ref (notify_closure); g_closure_sink (notify_closure); } }
Поскольку g_closure_sink()
может уменьшить количество
ссылок замыкания (если она была вызвана для closure
) так же как
g_closure_unref()
, функция
g_closure_ref()
должна быть вызвана перед этой функцией.
closure : |
GClosure для уменьшения начального количества ссылок, если они всё ещё есть. |
void g_closure_unref (GClosure *closure);
Уменьшает количество ссылок замыкания после того как оно было увеличено подобным вызовом. Если нет других вызовов использующих замыкание, то замыкание будет уничтожено и освобождено.
closure : |
GClosure для уменьшения количества ссылок |
void g_closure_invoke (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint);
Вызывает замыкание, то есть выполняет вызов предоставляемый замыканием closure
.
closure : |
GClosure |
return_value : |
GValue для хранения возвращаемого значения.
Может быть NULL если
callback-функция closure не возвращает значение.
|
n_param_values : |
длина массива param_values
|
param_values : |
массив GValue содержащих аргументы
для вызова callback-функции closure
|
invocation_hint : |
зависящая от контекста подсказка вызова |
void g_closure_invalidate (GClosure *closure);
Устанавливает флаг в замыкание указывая что вызов невозможен, таким образом заставляет игнорировать любые последующие вызовы
g_closure_invoke()
в этом closure
. Кроме того, аннулирующее уведомление установленное в этом замыкании
будет вызвано в этой точке. Помните, если вы не удерживаете ссылку на замыкание самостоятельно, аннулирующее уведомление может
отменить ссылку на замыкание и таким образом уничтожить его, поэтому если вам нужен доступ к замыканию после вызова
g_closure_invalidate()
, убедитесь что вы
предварительно вызвали g_closure_ref()
.
Заметьте, g_closure_invalidate()
будет также вызвана когда количество ссылок замыкания сброшено в ноль (если оно не было аннулировано раньше).
closure : |
GClosure для аннулирования |
void g_closure_add_finalize_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func);
Регистрирует финализирующее уведомление которое вызывается когда количество ссылок
closure
достигает 0. Множество финализирующих уведомлений в единственном замыкании
вызываются в неопределённом порядке. Если единственный вызов
g_closure_unref()
приводит замыкание и к аннулированию и к
финализации, то уведомление аннулирования выполняется перед уведомлением финализации.
closure : |
GClosure |
notify_data : |
данные помещаемые в notify_func
|
notify_func : |
callback-функция для регистрации |
void g_closure_add_invalidate_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func);
Регистрирует уведомление аннулирования которое вызывается когда closure
аннулируется с помощью g_closure_invalidate()
.
Уведомления аннулирования вызываются перед уведомлениями финализации, в неопределённом порядке.
closure : |
GClosure |
notify_data : |
данные помещаемые в notify_func
|
notify_func : |
callback-функция для регистрации |
void g_closure_remove_finalize_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func);
Удаляет уведомление финализации.
Помните что уведомление удаляется автоматически после выполнения.
closure : |
GClosure |
notify_data : |
данные которые были помещены в
g_closure_add_finalize_notifier()
при регистрации notify_func
|
notify_func : |
callback-функция для удаления |
void g_closure_remove_invalidate_notifier (GClosure *closure, gpointer notify_data, GClosureNotify notify_func);
Удаляет аннулирующее уведомление.
Помните что уведомления автоматически удаляются после выполнения.
closure : |
GClosure |
notify_data : |
данные которые были помещены в
g_closure_add_invalidate_notifier()
при регистрации notify_func
|
notify_func : |
callback-функция для удаления |
GClosure* g_closure_new_simple (guint sizeof_closure, gpointer data);
Распределяет структуру с полученным размером и инициализирует начальную часть как GClosure. Эта функция в основном полезна при реализации новых типов замыканий.
typedef struct _MyClosure MyClosure; struct _MyClosure { GClosure closure; /* дополнительные данные расположены здесь */ }; static void my_closure_finalize (gpointer notify_data, GClosure *closure) { MyClosure *my_closure = (MyClosure *)closure; /* здесь освобождаем дополнительные данные */ } MyClosure *my_closure_new (gpointer data) { GClosure *closure; MyClosure *my_closure; closure = g_closure_new_simple (sizeof (MyClosure), data); my_closure = (MyClosure *) closure; /* здесь инициализируем дополнительные данные */ g_closure_add_finalize_notifier (closure, notify_data, my_closure_finalize); return my_closure; }
void g_closure_set_marshal (GClosure *closure, GClosureMarshal marshal);
Устанавливает маршаллер closure
. marshal_data
для
marshal
обеспечивает способ для мета-маршаллера обеспечивающего дополнительную информацию
для маршаллера. (Смотрите g_closure_set_meta_marshal()
). Для С маршаллеров предопределённых в GObject (функциями g_cclosure_marshal_*()), обеспечивается callback-функция для использования
вместо closure->callback
.
closure : |
GClosure |
marshal : |
функция GClosureMarshal |
void g_closure_add_marshal_guards (GClosure *closure, gpointer pre_marshal_data, GClosureNotify pre_marshal_notify, gpointer post_marshal_data, GClosureNotify post_marshal_notify);
Добавляет пары уведомлений которые получают вызов перед и после callback-функции замыкания, соответственно.
Это обычно используется для защиты дополнительных аргументов для продолжения callback-вызова.
Смотрите пример защиты маршаллера в g_object_watch_closure()
.
closure : |
GClosure |
pre_marshal_data : |
данные помещаемые в pre_marshal_notify
|
pre_marshal_notify : |
функция вызываемая перед callback-функцией замыкания |
post_marshal_data : |
данные помещаемые в post_marshal_notify
|
post_marshal_notify : |
функция вызываемая после callback-функции замыкания |
void g_closure_set_meta_marshal (GClosure *closure, gpointer marshal_data, GClosureMarshal meta_marshal);
Устанавливает мета-маршаллер для closure
.
Мета-маршаллер является оболочкой для closure->marshal
и изменяет способ вызова в той же манере.
В основном это используется для C callback-функций. Такие же маршаллеры (сгенирированные с помощью
glib-genmarshal) используются повсюду,
но способ которыми вы получаете callback-функции отличаются. В большинстве случаев вы используете
closure->callback
, но в некоторых случаях мы используем несколько другую методику поиска
callback-функций.
Например, классовое замыкание для сигналов
(смотрите g_signal_type_cclosure_new()
)
находит callback-функцию из фиксированного смещения в классовой структуре.
Мета-маршаллер отыскивает правильную callback-функцию и помещает её в маршаллер как аргумент
marshal_data
.
closure : |
GClosure |
marshal_data : |
зависимые от контекста данные помещаемые в meta_marshal
|
meta_marshal : |
функция GClosureMarshal |
void g_source_set_closure (GSource *source, GClosure *closure);
Устанавливает callback-функцию для источника подобного GClosure.
Если источник не относится к стандартным типам GLib, поля closure_callback
и closure_marshal
сструктуры
GSourceFuncs должны быть заполнены
указателями подходящих функций.
source : |
источник |
closure : |
GClosure |
#define G_TYPE_IO_CONDITION (g_io_condition_get_type ())
GType для GIOCondition.
void g_cclosure_marshal_VOID__VOID (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gpointer user_data)
.
closure : |
GClosure которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
1 |
param_values : |
массив GValue содержащих только экземпляр |
invocation_hint : |
подсказка вызова получаемая как последний аргумент
g_closure_invoke()
|
marshal_data : |
дополнительные данные определяемые при регистрации маршаллера |
void g_cclosure_marshal_VOID__BOOLEAN (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gboolean arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и gboolean параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент для
g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__CHAR (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gchar arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляры и gchar параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент для
g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__UCHAR (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, guchar arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и guchar параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__INT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gint arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и gint параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__UINT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, guint arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и guint параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__LONG (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, glong arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и glong параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__ULONG (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gulong arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и gulong параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__ENUM (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gint arg1, gpointer user_data)
где gint параметр указывает тип перечисления..
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и перечислимый параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__FLAGS (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gint arg1, gpointer user_data)
где gint параметр указывает тип флагов.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и флаговый параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__FLOAT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gfloat arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и gfloat параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__DOUBLE (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gdouble arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и gdouble параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__STRING (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, const gchar *arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и gchar* параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__PARAM (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, GParamSpec *arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и GParamSpec* параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__BOXED (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, GBoxed *arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и GBoxed* параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__POINTER (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, gpointer arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и gpointer параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__OBJECT (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, GOBject *arg1, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и GObject* параметр |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_STRING__OBJECT_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, GObject *arg1, gpointer arg2, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
3 |
param_values : |
массив GValue содержащих экземпляр, arg1 и arg2 |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_VOID__UINT_POINTER (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
void (*callback) (gpointer instance, guint arg1, gpointer arg2, gpointer user_data)
.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
игнорируется |
n_param_values : |
3 |
param_values : |
массив GValue содержащих экземпляр, arg1 и arg2 |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
void g_cclosure_marshal_BOOLEAN__FLAGS (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data);
Маршаллер для GCClosure с callback-функцией типа
gboolean (*callback) (gpointer instance, gint arg1, gpointer user_data)
где gint параметр
указывает тип флагов.
closure : |
GClosure к которой принадлежит маршаллер |
return_value : |
GValue которая может хранить возвращаемое gboolean |
n_param_values : |
2 |
param_values : |
массив GValue содержащих экземпляр и arg1 |
invocation_hint : |
подсказка вызова полученная как последний аргумент
для g_closure_invoke()
|
marshal_data : |
дополнительные данные определённые при регистрации маршаллера |
#define g_cclosure_marshal_BOOL__FLAGS
Другое имя для g_cclosure_marshal_BOOLEAN__FLAGS()
.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |