结构
GObjectParamSpecTypeInfo
描述 [源代码]
struct GParamSpecTypeInfo {
guint16 instance_size;
guint16 n_preallocs;
void (* instance_init) (
GParamSpec* pspec
);
GType value_type;
void (* finalize) (
GParamSpec* pspec
);
void (* value_set_default) (
GParamSpec* pspec,
GValue* value
);
gboolean (* value_validate) (
GParamSpec* pspec,
GValue* value
);
gint (* values_cmp) (
GParamSpec* pspec,
const GValue* value1,
const GValue* value2
);
}
此结构用于为类型系统提供初始化和销毁参数的类及其实例所需的信息。
已初始化的结构传递给 g_param_type_register_static()
。类型系统将对该结构执行深度复制,因此其内存不需要跨 g_param_type_register_static() 的调用保持持久性。
结构成员
instance_size
实例(对象)结构的大小。
n_preallocs
在 GLib 2.10 之前,它指定要预先分配(缓存)的实例数,以保留内存(0 表示不缓存)。自 GLib 2.10 以来,此值被忽略,因为现在使用 [slice 分配器][glib-Memory-Slices] 分配实例。
instance_init
实例初始化函数的位置(可选)。
value_type
符合此
GParamSpec
的值的GType
。finalize
实例终结函数(可选)。
value_set_default
将
value
重置为pspec
的默认值(推荐,默认值为 g_value_reset()),请参阅 g_param_value_set_default()。value_validate
确保
value
的内容符合pspec
规定的规范(可选),请参阅 g_param_value_validate()。values_cmp
根据
pspec
将value1
与value2
进行比较(推荐,默认值为 memcmp()),请参阅 g_param_values_cmp()。