📄 gtype.h
字号:
GQuark quark, gpointer data);gpointer g_type_get_qdata (GType type, GQuark quark);void g_type_query (GType type, GTypeQuery *query);/* --- type registration --- */typedef void (*GBaseInitFunc) (gpointer g_class);typedef void (*GBaseFinalizeFunc) (gpointer g_class);typedef void (*GClassInitFunc) (gpointer g_class, gpointer class_data);typedef void (*GClassFinalizeFunc) (gpointer g_class, gpointer class_data);typedef void (*GInstanceInitFunc) (GTypeInstance *instance, gpointer g_class);typedef void (*GInterfaceInitFunc) (gpointer g_iface, gpointer iface_data);typedef void (*GInterfaceFinalizeFunc) (gpointer g_iface, gpointer iface_data);typedef gboolean (*GTypeClassCacheFunc) (gpointer cache_data, GTypeClass *g_class);typedef enum /*< skip >*/{ G_TYPE_FLAG_CLASSED = (1 << 0), G_TYPE_FLAG_INSTANTIATABLE = (1 << 1), G_TYPE_FLAG_DERIVABLE = (1 << 2), G_TYPE_FLAG_DEEP_DERIVABLE = (1 << 3)} GTypeFundamentalFlags;typedef enum /*< skip >*/{ G_TYPE_FLAG_ABSTRACT = (1 << 4), G_TYPE_FLAG_VALUE_ABSTRACT = (1 << 5)} GTypeFlags;struct _GTypeInfo{ /* interface types, classed types, instantiated types */ guint16 class_size; GBaseInitFunc base_init; GBaseFinalizeFunc base_finalize; /* classed types, instantiated types */ GClassInitFunc class_init; GClassFinalizeFunc class_finalize; gconstpointer class_data; /* instantiated types */ guint16 instance_size; guint16 n_preallocs; GInstanceInitFunc instance_init; /* value handling */ const GTypeValueTable *value_table;};struct _GTypeFundamentalInfo{ GTypeFundamentalFlags type_flags;};struct _GInterfaceInfo{ GInterfaceInitFunc interface_init; GInterfaceFinalizeFunc interface_finalize; gpointer interface_data;};struct _GTypeValueTable{ void (*value_init) (GValue *value); void (*value_free) (GValue *value); void (*value_copy) (const GValue *src_value, GValue *dest_value); /* varargs functionality (optional) */ gpointer (*value_peek_pointer) (const GValue *value); gchar *collect_format; gchar* (*collect_value) (GValue *value, guint n_collect_values, GTypeCValue *collect_values, guint collect_flags); gchar *lcopy_format; gchar* (*lcopy_value) (const GValue *value, guint n_collect_values, GTypeCValue *collect_values, guint collect_flags);};GType g_type_register_static (GType parent_type, const gchar *type_name, const GTypeInfo *info, GTypeFlags flags);GType g_type_register_dynamic (GType parent_type, const gchar *type_name, GTypePlugin *plugin, GTypeFlags flags);GType g_type_register_fundamental (GType type_id, const gchar *type_name, const GTypeInfo *info, const GTypeFundamentalInfo *finfo, GTypeFlags flags);void g_type_add_interface_static (GType instance_type, GType interface_type, const GInterfaceInfo *info);void g_type_add_interface_dynamic (GType instance_type, GType interface_type, GTypePlugin *plugin);void g_type_interface_add_prerequisite (GType interface_type, GType prerequisite_type);/* --- protected (for fundamental type implementations) --- */GTypePlugin* g_type_get_plugin (GType type);GTypePlugin* g_type_interface_get_plugin (GType instance_type, GType implementation_type);GType g_type_fundamental_next (void);GType g_type_fundamental (GType type_id);GTypeInstance* g_type_create_instance (GType type);void g_type_free_instance (GTypeInstance *instance);void g_type_add_class_cache_func (gpointer cache_data, GTypeClassCacheFunc cache_func);void g_type_remove_class_cache_func (gpointer cache_data, GTypeClassCacheFunc cache_func);void g_type_class_unref_uncached (gpointer g_class);GTypeValueTable* g_type_value_table_peek (GType type);/*< private >*/gboolean g_type_check_instance (GTypeInstance *instance);GTypeInstance* g_type_check_instance_cast (GTypeInstance *instance, GType iface_type);gboolean g_type_check_instance_is_a (GTypeInstance *instance, GType iface_type);GTypeClass* g_type_check_class_cast (GTypeClass *g_class, GType is_a_type);gboolean g_type_check_class_is_a (GTypeClass *g_class, GType is_a_type);gboolean g_type_check_is_value_type (GType type);gboolean g_type_check_value (GValue *value);gboolean g_type_check_value_holds (GValue *value, GType type);gboolean g_type_test_flags (GType type, guint flags);/* --- debugging functions --- */G_CONST_RETURN gchar* g_type_name_from_instance (GTypeInstance *instance);G_CONST_RETURN gchar* g_type_name_from_class (GTypeClass *g_class);/* --- implementation bits --- */#ifndef G_DISABLE_CAST_CHECKS# define _G_TYPE_CIC(ip, gt, ct) \ ((ct*) g_type_check_instance_cast ((GTypeInstance*) ip, gt))# define _G_TYPE_CCC(cp, gt, ct) \ ((ct*) g_type_check_class_cast ((GTypeClass*) cp, gt))#else /* G_DISABLE_CAST_CHECKS */# define _G_TYPE_CIC(ip, gt, ct) ((ct*) ip)# define _G_TYPE_CCC(cp, gt, ct) ((ct*) cp)#endif /* G_DISABLE_CAST_CHECKS */#define _G_TYPE_CHI(ip) (g_type_check_instance ((GTypeInstance*) ip))#define _G_TYPE_CVH(vl, gt) (g_type_check_value_holds ((GValue*) vl, gt))#define _G_TYPE_CHV(vl) (g_type_check_value ((GValue*) vl))#define _G_TYPE_IGC(ip, gt, ct) ((ct*) (((GTypeInstance*) ip)->g_class))#define _G_TYPE_IGI(ip, gt, ct) ((ct*) g_type_interface_peek (((GTypeInstance*) ip)->g_class, gt))#ifdef __GNUC__# define _G_TYPE_CIT(ip, gt) (G_GNUC_EXTENSION ({ \ GTypeInstance *__inst = (GTypeInstance*) ip; GType __t = gt; gboolean __r; \ if (__inst && __inst->g_class && __inst->g_class->g_type == __t) \ __r = TRUE; \ else \ __r = g_type_check_instance_is_a (__inst, __t); \ __r; \}))# define _G_TYPE_CCT(cp, gt) (G_GNUC_EXTENSION ({ \ GTypeClass *__class = (GTypeClass*) cp; GType __t = gt; gboolean __r; \ if (__class && __class->g_type == __t) \ __r = TRUE; \ else \ __r = g_type_check_class_is_a (__class, __t); \ __r; \}))#else /* !__GNUC__ */# define _G_TYPE_CIT(ip, gt) (g_type_check_instance_is_a ((GTypeInstance*) ip, gt))# define _G_TYPE_CCT(cp, gt) (g_type_check_class_is_a ((GTypeClass*) cp, gt))#endif /* !__GNUC__ */#define G_TYPE_FLAG_RESERVED_ID_BIT ((GType) (1 << 0))extern GTypeDebugFlags _g_type_debug_flags;G_END_DECLS#endif /* __G_TYPE_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -